[FFmpeg-cvslog] mmaldec: add vc1 decoding support
wm4
git at videolan.org
Sat Nov 7 19:29:05 CET 2015
ffmpeg | branch: master | wm4 <nfxjfg at googlemail.com> | Fri Nov 6 12:59:16 2015 +0100| [b07cbf6724207ba768ebb2ccdee1b6749fd6ca31] | committer: wm4
mmaldec: add vc1 decoding support
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b07cbf6724207ba768ebb2ccdee1b6749fd6ca31
---
configure | 3 +++
libavcodec/Makefile | 1 +
libavcodec/allcodecs.c | 2 ++
libavcodec/mmaldec.c | 12 ++++++++++++
4 files changed, 18 insertions(+)
diff --git a/configure b/configure
index f770534..d5e76de 100755
--- a/configure
+++ b/configure
@@ -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 06d3ddd..68a573f 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 4a21fe7..9f60d7c 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 91fb084..8d74b3f 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)
More information about the ffmpeg-cvslog
mailing list