X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffmpeg.h;h=20a1bf7776c6e773546769791eaee3d28fe9b3fc;hb=9591ca704b0e64af5f52471349f800043ec81199;hp=403b0986870ca438b9b5f71c0a211246d8e67915;hpb=014fb816d104fef876f7044c0f6876e890c93c0a;p=ffmpeg diff --git a/ffmpeg.h b/ffmpeg.h index 403b0986870..20a1bf7776c 100644 --- a/ffmpeg.h +++ b/ffmpeg.h @@ -65,6 +65,7 @@ enum HWAccelID { HWACCEL_VDA, HWACCEL_VIDEOTOOLBOX, HWACCEL_QSV, + HWACCEL_VAAPI, }; typedef struct HWAccel { @@ -126,6 +127,8 @@ typedef struct OptionsContext { int nb_hwaccels; SpecifierOpt *hwaccel_devices; int nb_hwaccel_devices; + SpecifierOpt *hwaccel_output_formats; + int nb_hwaccel_output_formats; SpecifierOpt *autorotate; int nb_autorotate; @@ -325,6 +328,7 @@ typedef struct InputStream { /* hwaccel options */ enum HWAccelID hwaccel_id; char *hwaccel_device; + enum AVPixelFormat hwaccel_output_format; /* hwaccel context */ enum HWAccelID active_hwaccel_id; @@ -334,6 +338,7 @@ typedef struct InputStream { int (*hwaccel_retrieve_data)(AVCodecContext *s, AVFrame *frame); enum AVPixelFormat hwaccel_pix_fmt; enum AVPixelFormat hwaccel_retrieved_pix_fmt; + AVBufferRef *hw_frames_ctx; /* stats */ // combined size of all the packets read @@ -544,6 +549,8 @@ extern const AVIOInterruptCB int_cb; extern const OptionDef options[]; extern const HWAccel hwaccels[]; +extern int hwaccel_lax_profile_check; +extern AVBufferRef *hw_device_ctx; void term_init(void); @@ -576,5 +583,7 @@ int vda_init(AVCodecContext *s); int videotoolbox_init(AVCodecContext *s); int qsv_init(AVCodecContext *s); int qsv_transcode_init(OutputStream *ost); +int vaapi_decode_init(AVCodecContext *avctx); +int vaapi_device_init(const char *device); #endif /* FFMPEG_H */