mmaldec: add vc1 decoding support
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
		
							parent
							
								
									d52208e8d5
								
							
						
					
					
						commit
						9a382f3639
					
				@ -55,7 +55,7 @@ version <next>:
 | 
			
		||||
- libnpp/CUDA-accelerated format conversion and scaling
 | 
			
		||||
- VAAPI-accelerate H.264/HEVC/MJPEG encoding
 | 
			
		||||
- Generic OpenMAX IL encoder with support for Raspberry Pi
 | 
			
		||||
- MMAL-accelerated MPEG-2 decoding
 | 
			
		||||
- MMAL-accelerated MPEG-2 and VC-1 decoding
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
version 11:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@ -2154,6 +2154,9 @@ vc1_vaapi_hwaccel_deps="vaapi"
 | 
			
		||||
vc1_vaapi_hwaccel_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"
 | 
			
		||||
wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel"
 | 
			
		||||
wmv3_dxva2_hwaccel_select="vc1_dxva2_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 \
 | 
			
		||||
                                          msmpeg4dec.o msmpeg4.o msmpeg4data.o \
 | 
			
		||||
                                          wmv2data.o
 | 
			
		||||
OBJS-$(CONFIG_VC1_MMAL_DECODER)        += mmaldec.o
 | 
			
		||||
OBJS-$(CONFIG_VCR1_DECODER)            += vcr1.o
 | 
			
		||||
OBJS-$(CONFIG_VMDAUDIO_DECODER)        += vmdaudio.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_VAAPI,         vc1_vaapi);
 | 
			
		||||
    REGISTER_HWACCEL(VC1_VDPAU,         vc1_vdpau);
 | 
			
		||||
    REGISTER_HWACCEL(VC1_MMAL,          vc1_mmal);
 | 
			
		||||
    REGISTER_HWACCEL(WMV3_D3D11VA,      wmv3_d3d11va);
 | 
			
		||||
    REGISTER_HWACCEL(WMV3_DXVA2,        wmv3_dxva2);
 | 
			
		||||
    REGISTER_HWACCEL(WMV3_VAAPI,        wmv3_vaapi);
 | 
			
		||||
@ -275,6 +276,7 @@ void avcodec_register_all(void)
 | 
			
		||||
    REGISTER_DECODER(VBLE,              vble);
 | 
			
		||||
    REGISTER_DECODER(VC1,               vc1);
 | 
			
		||||
    REGISTER_DECODER(VC1IMAGE,          vc1image);
 | 
			
		||||
    REGISTER_DECODER(VC1_MMAL,          vc1_mmal);
 | 
			
		||||
    REGISTER_DECODER(VCR1,              vcr1);
 | 
			
		||||
    REGISTER_DECODER(VMDVIDEO,          vmdvideo);
 | 
			
		||||
    REGISTER_DECODER(VMNC,              vmnc);
 | 
			
		||||
 | 
			
		||||
@ -356,6 +356,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;
 | 
			
		||||
@ -777,6 +781,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}
 | 
			
		||||
@ -811,3 +822,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)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user