mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
lavc: Extend hardware config metadata to encoders
This commit is contained in:
parent
2594f6a362
commit
858eba0ca4
@ -2541,6 +2541,10 @@ enum {
|
||||
* AVCodecContext.hw_frames_ctx should be set to a suitable frames
|
||||
* context inside the get_format() callback. The frames context
|
||||
* must have been created on a device of the specified type.
|
||||
*
|
||||
* When selecting this format for an encoder,
|
||||
* AVCodecContext.hw_frames_ctx should be set to the context which
|
||||
* will be used for the input frames before calling avcodec_open2().
|
||||
*/
|
||||
AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02,
|
||||
/**
|
||||
@ -2563,7 +2567,12 @@ enum {
|
||||
|
||||
typedef struct AVCodecHWConfig {
|
||||
/**
|
||||
* A hardware pixel format which the codec can use.
|
||||
* For decoders, a hardware pixel format which that decoder may be
|
||||
* able to decode to if suitable hardware is available.
|
||||
*
|
||||
* For encoders, a pixel format which the encoder may be able to
|
||||
* accept. If set to AV_PIX_FMT_NONE, this applies to all pixel
|
||||
* formats supported by the codec.
|
||||
*/
|
||||
enum AVPixelFormat pix_fmt;
|
||||
/**
|
||||
|
@ -81,4 +81,22 @@ typedef struct AVCodecHWConfigInternal {
|
||||
#define HWACCEL_XVMC(codec) \
|
||||
HW_CONFIG_HWACCEL(0, 0, 1, XVMC, NONE, ff_ ## codec ## _xvmc_hwaccel)
|
||||
|
||||
#define HW_CONFIG_ENCODER(device, frames, ad_hoc, format, device_type_) \
|
||||
&(const AVCodecHWConfigInternal) { \
|
||||
.public = { \
|
||||
.pix_fmt = AV_PIX_FMT_ ## format, \
|
||||
.methods = (device ? AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX : 0) | \
|
||||
(frames ? AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX : 0) | \
|
||||
(ad_hoc ? AV_CODEC_HW_CONFIG_METHOD_AD_HOC : 0), \
|
||||
.device_type = AV_HWDEVICE_TYPE_ ## device_type_, \
|
||||
}, \
|
||||
.hwaccel = NULL, \
|
||||
}
|
||||
|
||||
#define HW_CONFIG_ENCODER_DEVICE(format, device_type_) \
|
||||
HW_CONFIG_ENCODER(1, 0, 0, format, device_type_)
|
||||
|
||||
#define HW_CONFIG_ENCODER_FRAMES(format, device_type_) \
|
||||
HW_CONFIG_ENCODER(0, 1, 0, format, device_type_)
|
||||
|
||||
#endif /* AVCODEC_HWCONFIG_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user