... | ... |
@@ -2516,6 +2516,9 @@ vc1_vdpau_decoder_deps="vdpau" |
2516 | 2516 |
vc1_vdpau_decoder_select="vc1_decoder" |
2517 | 2517 |
vc1_vdpau_hwaccel_deps="vdpau" |
2518 | 2518 |
vc1_vdpau_hwaccel_select="vc1_decoder" |
2519 |
+vc1_mmal_decoder_deps="mmal" |
|
2520 |
+vc1_mmal_hwaccel_deps="mmal" |
|
2521 |
+vc1_mmal_decoder_select="vc1_decoder" |
|
2519 | 2522 |
vc1_qsv_hwaccel_deps="libmfx" |
2520 | 2523 |
vc1_qsv_hwaccel_select="qsvdec_vc1" |
2521 | 2524 |
wmv3_crystalhd_decoder_select="crystalhd" |
... | ... |
@@ -534,6 +534,7 @@ OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1_block.o vc1_loopfilter.o |
534 | 534 |
vc1dsp.o \ |
535 | 535 |
msmpeg4dec.o msmpeg4.o msmpeg4data.o \ |
536 | 536 |
wmv2dsp.o |
537 |
+OBJS-$(CONFIG_VC1_MMAL_DECODER) += mmaldec.o |
|
537 | 538 |
OBJS-$(CONFIG_VC1_QSV_DECODER) += qsvdec_vc1.o |
538 | 539 |
OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o |
539 | 540 |
OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o |
... | ... |
@@ -108,6 +108,7 @@ void avcodec_register_all(void) |
108 | 108 |
REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2); |
109 | 109 |
REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi); |
110 | 110 |
REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau); |
111 |
+ REGISTER_HWACCEL(VC1_MMAL, vc1_mmal); |
|
111 | 112 |
REGISTER_HWACCEL(VC1_QSV, vc1_qsv); |
112 | 113 |
REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va); |
113 | 114 |
REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2); |
... | ... |
@@ -326,6 +327,7 @@ void avcodec_register_all(void) |
326 | 326 |
REGISTER_DECODER(VC1_VDPAU, vc1_vdpau); |
327 | 327 |
#endif |
328 | 328 |
REGISTER_DECODER(VC1IMAGE, vc1image); |
329 |
+ REGISTER_DECODER(VC1_MMAL, vc1_mmal); |
|
329 | 330 |
REGISTER_DECODER(VC1_QSV, vc1_qsv); |
330 | 331 |
REGISTER_DECODER(VCR1, vcr1); |
331 | 332 |
REGISTER_DECODER(VMDVIDEO, vmdvideo); |
... | ... |
@@ -355,6 +355,10 @@ static av_cold int ffmmal_init_decoder(AVCodecContext *avctx) |
355 | 355 |
format_in->encoding = MMAL_ENCODING_MP2V; |
356 | 356 |
av_log(avctx, AV_LOG_DEBUG, "Use MMAL MP2V encoding\n"); |
357 | 357 |
break; |
358 |
+ case AV_CODEC_ID_VC1: |
|
359 |
+ format_in->encoding = MMAL_ENCODING_WVC1; |
|
360 |
+ av_log(avctx, AV_LOG_DEBUG, "Use MMAL WVC1 encoding\n"); |
|
361 |
+ break; |
|
358 | 362 |
case AV_CODEC_ID_H264: |
359 | 363 |
default: |
360 | 364 |
format_in->encoding = MMAL_ENCODING_H264; |
... | ... |
@@ -783,6 +787,13 @@ AVHWAccel ff_mpeg2_mmal_hwaccel = { |
783 | 783 |
.pix_fmt = AV_PIX_FMT_MMAL, |
784 | 784 |
}; |
785 | 785 |
|
786 |
+AVHWAccel ff_vc1_mmal_hwaccel = { |
|
787 |
+ .name = "vc1_mmal", |
|
788 |
+ .type = AVMEDIA_TYPE_VIDEO, |
|
789 |
+ .id = AV_CODEC_ID_VC1, |
|
790 |
+ .pix_fmt = AV_PIX_FMT_MMAL, |
|
791 |
+}; |
|
792 |
+ |
|
786 | 793 |
static const AVOption options[]={ |
787 | 794 |
{"extra_buffers", "extra buffers", offsetof(MMALDecodeContext, extra_buffers), AV_OPT_TYPE_INT, {.i64 = 10}, 0, 256, 0}, |
788 | 795 |
{NULL} |
... | ... |
@@ -817,3 +828,4 @@ static const AVOption options[]={ |
817 | 817 |
|
818 | 818 |
FFMMAL_DEC(h264, AV_CODEC_ID_H264) |
819 | 819 |
FFMMAL_DEC(mpeg2, AV_CODEC_ID_MPEG2VIDEO) |
820 |
+FFMMAL_DEC(vc1, AV_CODEC_ID_VC1) |