[FFmpeg-devel] [PATCH 06/24] ffmpeg: Enable generic hwaccel support for VAAPI
Mark Thompson
sw at jkqxz.net
Wed Jun 14 01:01:44 EEST 2017
On 13/06/17 21:19, Michael Niedermayer wrote:
> On Mon, Jun 12, 2017 at 11:40:23PM +0100, Mark Thompson wrote:
>> (cherry picked from commit 62a1ef9f26c654a3e988aa465c4ac1d776c4c356)
>> ---
>> Makefile | 1 -
>> ffmpeg.h | 2 -
>> ffmpeg_opt.c | 20 ++++-
>> ffmpeg_vaapi.c | 233 ---------------------------------------------------------
>> 4 files changed, 16 insertions(+), 240 deletions(-)
>> delete mode 100644 ffmpeg_vaapi.c
>>
>> diff --git a/Makefile b/Makefile
>> index 913a890a78..26f9d93d85 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -34,7 +34,6 @@ $(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog)-$(CONFIG_OPENCL) += cmdutils_o
>> OBJS-ffmpeg += ffmpeg_opt.o ffmpeg_filter.o ffmpeg_hw.o
>> OBJS-ffmpeg-$(CONFIG_VIDEOTOOLBOX) += ffmpeg_videotoolbox.o
>> OBJS-ffmpeg-$(CONFIG_LIBMFX) += ffmpeg_qsv.o
>> -OBJS-ffmpeg-$(CONFIG_VAAPI) += ffmpeg_vaapi.o
>> ifndef CONFIG_VIDEOTOOLBOX
>> OBJS-ffmpeg-$(CONFIG_VDA) += ffmpeg_videotoolbox.o
>> endif
>> diff --git a/ffmpeg.h b/ffmpeg.h
>> index 5c115cf9a3..231d362f5f 100644
>> --- a/ffmpeg.h
>> +++ b/ffmpeg.h
>> @@ -665,8 +665,6 @@ int dxva2_init(AVCodecContext *s);
>> int vda_init(AVCodecContext *s);
>> int videotoolbox_init(AVCodecContext *s);
>> int qsv_init(AVCodecContext *s);
>> -int vaapi_decode_init(AVCodecContext *avctx);
>> -int vaapi_device_init(const char *device);
>> int cuvid_init(AVCodecContext *s);
>>
>> HWDevice *hw_device_get_by_name(const char *name);
>> diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
>> index 6755e09e47..51671e0dd4 100644
>> --- a/ffmpeg_opt.c
>> +++ b/ffmpeg_opt.c
>> @@ -87,8 +87,8 @@ const HWAccel hwaccels[] = {
>> AV_HWDEVICE_TYPE_NONE },
>> #endif
>> #if CONFIG_VAAPI
>> - { "vaapi", vaapi_decode_init, HWACCEL_VAAPI, AV_PIX_FMT_VAAPI,
>> - AV_HWDEVICE_TYPE_NONE },
>> + { "vaapi", hwaccel_decode_init, HWACCEL_VAAPI, AV_PIX_FMT_VAAPI,
>> + AV_HWDEVICE_TYPE_VAAPI },
>> #endif
>> #if CONFIG_CUVID
>> { "cuvid", cuvid_init, HWACCEL_CUVID, AV_PIX_FMT_CUDA,
>> @@ -462,10 +462,22 @@ static int opt_sdp_file(void *optctx, const char *opt, const char *arg)
>> #if CONFIG_VAAPI
>> static int opt_vaapi_device(void *optctx, const char *opt, const char *arg)
>> {
>> + HWDevice *dev;
>> + const char *prefix = "vaapi:";
>> + char *tmp;
>> int err;
>> - err = vaapi_device_init(arg);
>
>> + tmp = av_malloc(strlen(prefix) + strlen(arg) + 1);
>> + if (!tmp)
>> + return AVERROR(ENOMEM);
>> + strcpy(tmp, prefix);
>> + strcat(tmp, arg);
>
> You can simplify this with av_asprintf()
Yep, changed. (Also a similar instance in 4/24.)
Thanks,
- Mark
More information about the ffmpeg-devel
mailing list