@ -1482,6 +1482,12 @@ FF_DISABLE_DEPRECATION_WARNINGS
av_frame_copy_props ( s - > avctx - > coded_frame , s - > current_picture . f ) ;
FF_ENABLE_DEPRECATION_WARNINGS
# endif
# if FF_API_ERROR_FRAME
FF_DISABLE_DEPRECATION_WARNINGS
memcpy ( s - > current_picture . f - > error , s - > current_picture . encoding_error ,
sizeof ( s - > current_picture . encoding_error ) ) ;
FF_ENABLE_DEPRECATION_WARNINGS
# endif
}
static void update_noise_reduction ( MpegEncContext * s )
@ -1688,8 +1694,8 @@ vbv_retry:
ff_write_pass1_stats ( s ) ;
for ( i = 0 ; i < 4 ; i + + ) {
s - > current_picture_ptr - > f - > error [ i ] = s - > current_picture . f - > error [ i ] ;
avctx - > error [ i ] + = s - > current_picture_ptr - > f - > error [ i ] ;
s - > current_picture_ptr - > encoding_ error[ i ] = s - > current_picture . encoding_ error[ i ] ;
avctx - > error [ i ] + = s - > current_picture_ptr - > encoding_ error[ i ] ;
}
if ( s - > avctx - > flags & AV_CODEC_FLAG_PASS1 )
@ -2590,7 +2596,7 @@ static int encode_thread(AVCodecContext *c, void *arg){
/* note: quant matrix value (8) is implied here */
s - > last_dc [ i ] = 128 < < s - > intra_dc_precision ;
s - > current_picture . f - > error [ i ] = 0 ;
s - > current_picture . encoding_ error[ i ] = 0 ;
}
s - > mb_skip_run = 0 ;
memset ( s - > last_mv , 0 , sizeof ( s - > last_mv ) ) ;
@ -3148,13 +3154,13 @@ static int encode_thread(AVCodecContext *c, void *arg){
if ( s - > mb_x * 16 + 16 > s - > width ) w = s - > width - s - > mb_x * 16 ;
if ( s - > mb_y * 16 + 16 > s - > height ) h = s - > height - s - > mb_y * 16 ;
s - > current_picture . f - > error [ 0 ] + = sse (
s - > current_picture . encoding_ error[ 0 ] + = sse (
s , s - > new_picture . f - > data [ 0 ] + s - > mb_x * 16 + s - > mb_y * s - > linesize * 16 ,
s - > dest [ 0 ] , w , h , s - > linesize ) ;
s - > current_picture . f - > error [ 1 ] + = sse (
s - > current_picture . encoding_ error[ 1 ] + = sse (
s , s - > new_picture . f - > data [ 1 ] + s - > mb_x * 8 + s - > mb_y * s - > uvlinesize * chr_h ,
s - > dest [ 1 ] , w > > 1 , h > > s - > chroma_y_shift , s - > uvlinesize ) ;
s - > current_picture . f - > error [ 2 ] + = sse (
s - > current_picture . encoding_ error[ 2 ] + = sse (
s , s - > new_picture . f - > data [ 2 ] + s - > mb_x * 8 + s - > mb_y * s - > uvlinesize * chr_h ,
s - > dest [ 2 ] , w > > 1 , h > > s - > chroma_y_shift , s - > uvlinesize ) ;
}
@ -3207,9 +3213,9 @@ static void merge_context_after_encode(MpegEncContext *dst, MpegEncContext *src)
MERGE ( misc_bits ) ;
MERGE ( er . error_count ) ;
MERGE ( padding_bug_score ) ;
MERGE ( current_picture . f - > error [ 0 ] ) ;
MERGE ( current_picture . f - > error [ 1 ] ) ;
MERGE ( current_picture . f - > error [ 2 ] ) ;
MERGE ( current_picture . encoding_ error[ 0 ] ) ;
MERGE ( current_picture . encoding_ error[ 1 ] ) ;
MERGE ( current_picture . encoding_ error[ 2 ] ) ;
if ( dst - > avctx - > noise_reduction ) {
for ( i = 0 ; i < 64 ; i + + ) {