[FFmpeg-cvslog] Merge commit '0ba471d7d864c712f45d7ac6aca4829aba025adc'

Clément Bœsch git at videolan.org
Sun Jun 19 13:03:09 CEST 2016


ffmpeg | branch: master | Clément Bœsch <u at pkh.me> | Sun Jun 19 12:53:19 2016 +0200| [98456d4d69e0fdcc328bb9e684ae776f5bc824e1] | committer: Clément Bœsch

Merge commit '0ba471d7d864c712f45d7ac6aca4829aba025adc'

* commit '0ba471d7d864c712f45d7ac6aca4829aba025adc':
  h264: eliminate copy_fields

Added a copy of default_ref which isn't present in Libav.

Merged-by: Clément Bœsch <u at pkh.me>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=98456d4d69e0fdcc328bb9e684ae776f5bc824e1
---

 libavcodec/h264_slice.c |   25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 45e076b..2ef3065 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -292,10 +292,6 @@ static void copy_picture_range(H264Picture **to, H264Picture **from, int count,
     }
 }
 
-#define copy_fields(to, from, start_field, end_field)                   \
-    memcpy(&(to)->start_field, &(from)->start_field,                        \
-           (char *)&(to)->end_field - (char *)&(to)->start_field)
-
 static int h264_slice_header_init(H264Context *h);
 
 int ff_h264_update_thread_context(AVCodecContext *dst,
@@ -420,8 +416,25 @@ int ff_h264_update_thread_context(AVCodecContext *dst,
     h->nal_length_size = h1->nal_length_size;
     h->sei.unregistered.x264_build = h1->sei.unregistered.x264_build;
 
-    // POC timing
-    copy_fields(h, h1, poc, current_slice);
+    memcpy(&h->poc,        &h1->poc,        sizeof(h->poc));
+
+    h->curr_pic_num      = h1->curr_pic_num;
+    h->max_pic_num       = h1->max_pic_num;
+
+    memcpy(h->default_ref, h1->default_ref, sizeof(h->default_ref));
+    memcpy(h->short_ref,   h1->short_ref,   sizeof(h->short_ref));
+    memcpy(h->long_ref,    h1->long_ref,    sizeof(h->long_ref));
+    memcpy(h->delayed_pic, h1->delayed_pic, sizeof(h->delayed_pic));
+    memcpy(h->last_pocs,   h1->last_pocs,   sizeof(h->last_pocs));
+
+    h->next_output_pic   = h1->next_output_pic;
+    h->next_outputed_poc = h1->next_outputed_poc;
+
+    memcpy(h->mmco, h1->mmco, sizeof(h->mmco));
+    h->mmco_index      = h1->mmco_index;
+    h->mmco_reset      = h1->mmco_reset;
+    h->long_ref_count  = h1->long_ref_count;
+    h->short_ref_count = h1->short_ref_count;
 
     copy_picture_range(h->short_ref, h1->short_ref, 32, h, h1);
     copy_picture_range(h->long_ref, h1->long_ref, 32, h, h1);


======================================================================

diff --cc libavcodec/h264_slice.c
index 45e076b,8f92164..2ef3065
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@@ -418,10 -403,25 +414,27 @@@ int ff_h264_update_thread_context(AVCod
      // extradata/NAL handling
      h->is_avc = h1->is_avc;
      h->nal_length_size = h1->nal_length_size;
 +    h->sei.unregistered.x264_build = h1->sei.unregistered.x264_build;
  
-     // POC timing
-     copy_fields(h, h1, poc, current_slice);
+     memcpy(&h->poc,        &h1->poc,        sizeof(h->poc));
+ 
+     h->curr_pic_num      = h1->curr_pic_num;
+     h->max_pic_num       = h1->max_pic_num;
+ 
++    memcpy(h->default_ref, h1->default_ref, sizeof(h->default_ref));
+     memcpy(h->short_ref,   h1->short_ref,   sizeof(h->short_ref));
+     memcpy(h->long_ref,    h1->long_ref,    sizeof(h->long_ref));
+     memcpy(h->delayed_pic, h1->delayed_pic, sizeof(h->delayed_pic));
+     memcpy(h->last_pocs,   h1->last_pocs,   sizeof(h->last_pocs));
+ 
+     h->next_output_pic   = h1->next_output_pic;
+     h->next_outputed_poc = h1->next_outputed_poc;
+ 
+     memcpy(h->mmco, h1->mmco, sizeof(h->mmco));
+     h->mmco_index      = h1->mmco_index;
+     h->mmco_reset      = h1->mmco_reset;
+     h->long_ref_count  = h1->long_ref_count;
+     h->short_ref_count = h1->short_ref_count;
  
      copy_picture_range(h->short_ref, h1->short_ref, 32, h, h1);
      copy_picture_range(h->long_ref, h1->long_ref, 32, h, h1);



More information about the ffmpeg-cvslog mailing list