@ -811,15 +811,6 @@ fail:
return ret ;
}
static void exchange_uv ( MpegEncContext * s )
{
int16_t ( * tmp ) [ 64 ] ;
tmp = s - > pblocks [ 4 ] ;
s - > pblocks [ 4 ] = s - > pblocks [ 5 ] ;
s - > pblocks [ 5 ] = tmp ;
}
static int init_duplicate_context ( MpegEncContext * s )
{
int y_size = s - > b8_stride * ( 2 * s - > mb_height + 1 ) ;
@ -853,8 +844,13 @@ static int init_duplicate_context(MpegEncContext *s)
for ( i = 0 ; i < 12 ; i + + ) {
s - > pblocks [ i ] = & s - > block [ i ] ;
}
if ( s - > avctx - > codec_tag = = AV_RL32 ( " VCR2 " ) )
exchange_uv ( s ) ;
if ( s - > avctx - > codec_tag = = AV_RL32 ( " VCR2 " ) ) {
// exchange uv
int16_t ( * tmp ) [ 64 ] ;
tmp = s - > pblocks [ 4 ] ;
s - > pblocks [ 4 ] = s - > pblocks [ 5 ] ;
s - > pblocks [ 5 ] = tmp ;
}
if ( s - > out_format = = FMT_H263 ) {
/* ac values */
@ -929,8 +925,13 @@ int ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src)
for ( i = 0 ; i < 12 ; i + + ) {
dst - > pblocks [ i ] = & dst - > block [ i ] ;
}
if ( dst - > avctx - > codec_tag = = AV_RL32 ( " VCR2 " ) )
exchange_uv ( dst ) ;
if ( dst - > avctx - > codec_tag = = AV_RL32 ( " VCR2 " ) ) {
// exchange uv
int16_t ( * tmp ) [ 64 ] ;
tmp = dst - > pblocks [ 4 ] ;
dst - > pblocks [ 4 ] = dst - > pblocks [ 5 ] ;
dst - > pblocks [ 5 ] = tmp ;
}
if ( ! dst - > edge_emu_buffer & &
( ret = frame_size_alloc ( dst , dst - > linesize ) ) < 0 ) {
av_log ( dst - > avctx , AV_LOG_ERROR , " failed to allocate context "