Signed-off-by: Anton Khirnov <anton@khirnov.net>tags/n3.1
| @@ -55,7 +55,7 @@ version <next>: | |||||
| - libnpp/CUDA-accelerated format conversion and scaling | - libnpp/CUDA-accelerated format conversion and scaling | ||||
| - VAAPI-accelerate H.264/HEVC/MJPEG encoding | - VAAPI-accelerate H.264/HEVC/MJPEG encoding | ||||
| - Generic OpenMAX IL encoder with support for Raspberry Pi | - Generic OpenMAX IL encoder with support for Raspberry Pi | ||||
| - MMAL-accelerated MPEG-2 decoding | |||||
| - MMAL-accelerated MPEG-2 and VC-1 decoding | |||||
| version 11: | version 11: | ||||
| @@ -2154,6 +2154,9 @@ vc1_vaapi_hwaccel_deps="vaapi" | |||||
| vc1_vaapi_hwaccel_select="vc1_decoder" | vc1_vaapi_hwaccel_select="vc1_decoder" | ||||
| vc1_vdpau_hwaccel_deps="vdpau" | vc1_vdpau_hwaccel_deps="vdpau" | ||||
| vc1_vdpau_hwaccel_select="vc1_decoder" | vc1_vdpau_hwaccel_select="vc1_decoder" | ||||
| vc1_mmal_decoder_deps="mmal" | |||||
| vc1_mmal_hwaccel_deps="mmal" | |||||
| vc1_mmal_decoder_select="vc1_decoder" | |||||
| wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel" | wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel" | ||||
| wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel" | wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel" | ||||
| wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" | wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" | ||||
| @@ -440,6 +440,7 @@ OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1_block.o vc1_loopfilter.o | |||||
| vc1_mc.o vc1_pred.o vc1.o vc1data.o \ | vc1_mc.o vc1_pred.o vc1.o vc1data.o \ | ||||
| msmpeg4dec.o msmpeg4.o msmpeg4data.o \ | msmpeg4dec.o msmpeg4.o msmpeg4data.o \ | ||||
| wmv2data.o | wmv2data.o | ||||
| OBJS-$(CONFIG_VC1_MMAL_DECODER) += mmaldec.o | |||||
| OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o | OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o | ||||
| OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o | OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o | ||||
| OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdvideo.o | OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdvideo.o | ||||
| @@ -93,6 +93,7 @@ void avcodec_register_all(void) | |||||
| REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2); | REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2); | ||||
| REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi); | REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi); | ||||
| REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau); | REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau); | ||||
| REGISTER_HWACCEL(VC1_MMAL, vc1_mmal); | |||||
| REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va); | REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va); | ||||
| REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2); | REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2); | ||||
| REGISTER_HWACCEL(WMV3_VAAPI, wmv3_vaapi); | REGISTER_HWACCEL(WMV3_VAAPI, wmv3_vaapi); | ||||
| @@ -275,6 +276,7 @@ void avcodec_register_all(void) | |||||
| REGISTER_DECODER(VBLE, vble); | REGISTER_DECODER(VBLE, vble); | ||||
| REGISTER_DECODER(VC1, vc1); | REGISTER_DECODER(VC1, vc1); | ||||
| REGISTER_DECODER(VC1IMAGE, vc1image); | REGISTER_DECODER(VC1IMAGE, vc1image); | ||||
| REGISTER_DECODER(VC1_MMAL, vc1_mmal); | |||||
| REGISTER_DECODER(VCR1, vcr1); | REGISTER_DECODER(VCR1, vcr1); | ||||
| REGISTER_DECODER(VMDVIDEO, vmdvideo); | REGISTER_DECODER(VMDVIDEO, vmdvideo); | ||||
| REGISTER_DECODER(VMNC, vmnc); | REGISTER_DECODER(VMNC, vmnc); | ||||
| @@ -356,6 +356,10 @@ static av_cold int ffmmal_init_decoder(AVCodecContext *avctx) | |||||
| format_in->encoding = MMAL_ENCODING_MP2V; | format_in->encoding = MMAL_ENCODING_MP2V; | ||||
| av_log(avctx, AV_LOG_DEBUG, "Use MMAL MP2V encoding\n"); | av_log(avctx, AV_LOG_DEBUG, "Use MMAL MP2V encoding\n"); | ||||
| break; | 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: | case AV_CODEC_ID_H264: | ||||
| default: | default: | ||||
| format_in->encoding = MMAL_ENCODING_H264; | format_in->encoding = MMAL_ENCODING_H264; | ||||
| @@ -777,6 +781,13 @@ AVHWAccel ff_mpeg2_mmal_hwaccel = { | |||||
| .pix_fmt = AV_PIX_FMT_MMAL, | .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[]={ | static const AVOption options[]={ | ||||
| {"extra_buffers", "extra buffers", offsetof(MMALDecodeContext, extra_buffers), AV_OPT_TYPE_INT, {.i64 = 10}, 0, 256, 0}, | {"extra_buffers", "extra buffers", offsetof(MMALDecodeContext, extra_buffers), AV_OPT_TYPE_INT, {.i64 = 10}, 0, 256, 0}, | ||||
| {NULL} | {NULL} | ||||
| @@ -811,3 +822,4 @@ static const AVOption options[]={ | |||||
| FFMMAL_DEC(h264, AV_CODEC_ID_H264) | FFMMAL_DEC(h264, AV_CODEC_ID_H264) | ||||
| FFMMAL_DEC(mpeg2, AV_CODEC_ID_MPEG2VIDEO) | FFMMAL_DEC(mpeg2, AV_CODEC_ID_MPEG2VIDEO) | ||||
| FFMMAL_DEC(vc1, AV_CODEC_ID_VC1) | |||||