libavcodec: Handle param change side data in avcodec_decode_video2, too
Also call avcodec_set_dimensions on dimension param change packets. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
		@@ -879,6 +879,7 @@ static void apply_param_change(AVCodecContext *avctx, AVPacket *avpkt)
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        avctx->width  = bytestream_get_le32(&data);
 | 
					        avctx->width  = bytestream_get_le32(&data);
 | 
				
			||||||
        avctx->height = bytestream_get_le32(&data);
 | 
					        avctx->height = bytestream_get_le32(&data);
 | 
				
			||||||
 | 
					        avcodec_set_dimensions(avctx, avctx->width, avctx->height);
 | 
				
			||||||
        size -= 8;
 | 
					        size -= 8;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -894,6 +895,7 @@ int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi
 | 
				
			|||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    avctx->pkt = avpkt;
 | 
					    avctx->pkt = avpkt;
 | 
				
			||||||
 | 
					    apply_param_change(avctx, avpkt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size || (avctx->active_thread_type&FF_THREAD_FRAME)){
 | 
					    if((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size || (avctx->active_thread_type&FF_THREAD_FRAME)){
 | 
				
			||||||
        if (HAVE_THREADS && avctx->active_thread_type&FF_THREAD_FRAME)
 | 
					        if (HAVE_THREADS && avctx->active_thread_type&FF_THREAD_FRAME)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user