diff options
author | wm4 <nfxjfg@googlemail.com> | 2015-11-06 12:59:16 +0100 |
---|---|---|
committer | wm4 <nfxjfg@googlemail.com> | 2015-11-07 19:24:49 +0100 |
commit | b07cbf6724207ba768ebb2ccdee1b6749fd6ca31 (patch) | |
tree | 619b785a1ab13994103562b35947bbbabf1587bc | |
parent | 785ac437be6b8e12bf58bc2c53547a891cd7d5f1 (diff) | |
download | ffmpeg-b07cbf6724207ba768ebb2ccdee1b6749fd6ca31.tar.gz |
mmaldec: add vc1 decoding support
-rwxr-xr-x | configure | 3 | ||||
-rw-r--r-- | libavcodec/Makefile | 1 | ||||
-rw-r--r-- | libavcodec/allcodecs.c | 2 | ||||
-rw-r--r-- | libavcodec/mmaldec.c | 12 |
4 files changed, 18 insertions, 0 deletions
@@ -2516,6 +2516,9 @@ vc1_vdpau_decoder_deps="vdpau" vc1_vdpau_decoder_select="vc1_decoder" vc1_vdpau_hwaccel_deps="vdpau" vc1_vdpau_hwaccel_select="vc1_decoder" +vc1_mmal_decoder_deps="mmal" +vc1_mmal_hwaccel_deps="mmal" +vc1_mmal_decoder_select="vc1_decoder" vc1_qsv_hwaccel_deps="libmfx" vc1_qsv_hwaccel_select="qsvdec_vc1" wmv3_crystalhd_decoder_select="crystalhd" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 06d3ddd918..68a573fc13 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -534,6 +534,7 @@ OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1_block.o vc1_loopfilter.o vc1dsp.o \ msmpeg4dec.o msmpeg4.o msmpeg4data.o \ wmv2dsp.o +OBJS-$(CONFIG_VC1_MMAL_DECODER) += mmaldec.o OBJS-$(CONFIG_VC1_QSV_DECODER) += qsvdec_vc1.o OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c index 4a21fe7b4b..9f60d7c568 100644 --- a/libavcodec/allcodecs.c +++ b/libavcodec/allcodecs.c @@ -108,6 +108,7 @@ void avcodec_register_all(void) REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2); REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi); REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau); + REGISTER_HWACCEL(VC1_MMAL, vc1_mmal); REGISTER_HWACCEL(VC1_QSV, vc1_qsv); REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va); REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2); @@ -326,6 +327,7 @@ void avcodec_register_all(void) REGISTER_DECODER(VC1_VDPAU, vc1_vdpau); #endif REGISTER_DECODER(VC1IMAGE, vc1image); + REGISTER_DECODER(VC1_MMAL, vc1_mmal); REGISTER_DECODER(VC1_QSV, vc1_qsv); REGISTER_DECODER(VCR1, vcr1); REGISTER_DECODER(VMDVIDEO, vmdvideo); diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c index 91fb084e10..8d74b3f0b3 100644 --- a/libavcodec/mmaldec.c +++ b/libavcodec/mmaldec.c @@ -355,6 +355,10 @@ static av_cold int ffmmal_init_decoder(AVCodecContext *avctx) format_in->encoding = MMAL_ENCODING_MP2V; av_log(avctx, AV_LOG_DEBUG, "Use MMAL MP2V encoding\n"); break; + case AV_CODEC_ID_VC1: + format_in->encoding = MMAL_ENCODING_WVC1; + av_log(avctx, AV_LOG_DEBUG, "Use MMAL WVC1 encoding\n"); + break; case AV_CODEC_ID_H264: default: format_in->encoding = MMAL_ENCODING_H264; @@ -783,6 +787,13 @@ AVHWAccel ff_mpeg2_mmal_hwaccel = { .pix_fmt = AV_PIX_FMT_MMAL, }; +AVHWAccel ff_vc1_mmal_hwaccel = { + .name = "vc1_mmal", + .type = AVMEDIA_TYPE_VIDEO, + .id = AV_CODEC_ID_VC1, + .pix_fmt = AV_PIX_FMT_MMAL, +}; + static const AVOption options[]={ {"extra_buffers", "extra buffers", offsetof(MMALDecodeContext, extra_buffers), AV_OPT_TYPE_INT, {.i64 = 10}, 0, 256, 0}, {NULL} @@ -817,3 +828,4 @@ static const AVOption options[]={ FFMMAL_DEC(h264, AV_CODEC_ID_H264) FFMMAL_DEC(mpeg2, AV_CODEC_ID_MPEG2VIDEO) +FFMMAL_DEC(vc1, AV_CODEC_ID_VC1) |