---
libavcodec/mpegvideo.c | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 9d38d28..9280ab8 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -364,7 +364,10 @@ void ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src){
}
void MPV_update_picture_pointers(MpegEncContext *dst, MpegEncContext *src){
+ int mb_array_size = src->mb_stride*src->mb_height;
+
memcpy(dst->picture, src->picture, src->picture_count * sizeof(Picture));
+ memcpy(dst->prev_pict_types, src->prev_pict_types, PREV_PICT_TYPES_BUFFER_SIZE);
dst->last_picture_ptr = src->last_picture_ptr ? &dst->picture[src->last_picture_ptr - src->picture] : NULL;
dst->current_picture_ptr = src->current_picture_ptr ? &dst->picture[src->current_picture_ptr - src->picture] : NULL;
@@ -373,6 +376,26 @@ void MPV_update_picture_pointers(MpegEncContext *dst, MpegEncContext *src){
dst->coded_picture_number = src->coded_picture_number;
dst->picture_number = src->picture_number;
dst->input_picture_number = src->input_picture_number;
+
+ dst->last_pict_type = src->pict_type;
+ if (src->current_picture_ptr) dst->last_lambda_for[src->pict_type] = src->current_picture_ptr->quality;
+
+ if(src->pict_type!=FF_B_TYPE){
+ dst->last_non_b_pict_type= src->pict_type;
+ }
+
+ //copy mpeg4 pts info
+ memcpy(&dst->time_increment_bits, &src->time_increment_bits, (char*)&src->shape - (char*)&src->time_increment_bits);
+ dst->padding_bug_score = src->padding_bug_score;
+
+ //memcpy(dst->mbintra_table, src->mbintra_table, mb_array_size); //FIXME why does copying this break decoding?
+ memset(dst->mbskip_table, 0, mb_array_size+2);
+
+ if (src->bitstream_buffer) {
+ dst->bitstream_buffer = av_fast_realloc(dst->bitstream_buffer, &dst->allocated_bitstream_buffer_size, src->allocated_bitstream_buffer_size);
+ dst->bitstream_buffer_size = src->bitstream_buffer_size;
+ memcpy(dst->bitstream_buffer, src->bitstream_buffer, src->bitstream_buffer_size);
+ }
}
/**
_______________________________________________
FFmpeg-soc mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc