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) |