Merge branch 'master' of https://github.com/upsuper/ffmpeg-vdadec
* 'master' of https://github.com/upsuper/ffmpeg-vdadec: vda_h264_dec: remove check_format Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
						commit
						e4bf3a97de
					
				@ -135,48 +135,6 @@ static av_cold int vdadec_close(AVCodecContext *avctx)
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static av_cold int check_format(AVCodecContext *avctx)
 | 
			
		||||
{
 | 
			
		||||
    AVCodecParserContext *parser;
 | 
			
		||||
    uint8_t *pout;
 | 
			
		||||
    int psize;
 | 
			
		||||
    int index;
 | 
			
		||||
    H264Context *h;
 | 
			
		||||
    int ret = -1;
 | 
			
		||||
 | 
			
		||||
    /* init parser & parse file */
 | 
			
		||||
    parser = av_parser_init(avctx->codec->id);
 | 
			
		||||
    if (!parser) {
 | 
			
		||||
        av_log(avctx, AV_LOG_ERROR, "Failed to open H.264 parser.\n");
 | 
			
		||||
        goto final;
 | 
			
		||||
    }
 | 
			
		||||
    parser->flags = PARSER_FLAG_COMPLETE_FRAMES;
 | 
			
		||||
    index = av_parser_parse2(parser, avctx, &pout, &psize, NULL, 0, 0, 0, 0);
 | 
			
		||||
    if (index < 0) {
 | 
			
		||||
        av_log(avctx, AV_LOG_ERROR, "Failed to parse this file.\n");
 | 
			
		||||
        goto release_parser;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* check if support */
 | 
			
		||||
    h = parser->priv_data;
 | 
			
		||||
    switch (h->sps.bit_depth_luma) {
 | 
			
		||||
    case 8:
 | 
			
		||||
        if (!CHROMA444(h) && !CHROMA422(h)) {
 | 
			
		||||
            // only this will H.264 decoder switch to hwaccel
 | 
			
		||||
            ret = 0;
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    default:
 | 
			
		||||
        av_log(avctx, AV_LOG_ERROR, "Unsupported file.\n");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
release_parser:
 | 
			
		||||
    av_parser_close(parser);
 | 
			
		||||
 | 
			
		||||
final:
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static av_cold int vdadec_init(AVCodecContext *avctx)
 | 
			
		||||
{
 | 
			
		||||
    VDADecoderContext *ctx = avctx->priv_data;
 | 
			
		||||
@ -194,10 +152,6 @@ static av_cold int vdadec_init(AVCodecContext *avctx)
 | 
			
		||||
            ff_h264_vda_decoder.pix_fmts = vda_pixfmts;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* check if VDA supports this file */
 | 
			
		||||
    if (check_format(avctx) < 0)
 | 
			
		||||
        goto failed;
 | 
			
		||||
 | 
			
		||||
    /* init vda */
 | 
			
		||||
    memset(vda_ctx, 0, sizeof(struct vda_context));
 | 
			
		||||
    vda_ctx->width = avctx->width;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user