[FFmpeg-cvslog] Merge commit 'a2fd547839d3ef8f342b6f2c096d0887675d3b1a'

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


ffmpeg | branch: master | Clément Bœsch <u at pkh.me> | Sun Jun 19 13:03:31 2016 +0200| [902862bb4be4492c040b7e3b6d657ebb4b36bbc7] | committer: Clément Bœsch

Merge commit 'a2fd547839d3ef8f342b6f2c096d0887675d3b1a'

* commit 'a2fd547839d3ef8f342b6f2c096d0887675d3b1a':
  h264_refs: reorder functions to avoid forward declarations

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

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

 libavcodec/h264_refs.c |   69 +++++++++++++++++++++++-------------------------
 1 file changed, 33 insertions(+), 36 deletions(-)

diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index 2b90168..d00ceb8 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -212,8 +212,39 @@ static void h264_initialise_ref_list(H264Context *h, H264SliceContext *sl)
         h->default_ref[i] = sl->ref_list[i][0];
 }
 
-static void print_short_term(H264Context *h);
-static void print_long_term(H264Context *h);
+/**
+ * print short term list
+ */
+static void print_short_term(H264Context *h)
+{
+    uint32_t i;
+    if (h->avctx->debug & FF_DEBUG_MMCO) {
+        av_log(h->avctx, AV_LOG_DEBUG, "short term list:\n");
+        for (i = 0; i < h->short_ref_count; i++) {
+            H264Picture *pic = h->short_ref[i];
+            av_log(h->avctx, AV_LOG_DEBUG, "%"PRIu32" fn:%d poc:%d %p\n",
+                   i, pic->frame_num, pic->poc, pic->f->data[0]);
+        }
+    }
+}
+
+/**
+ * print long term list
+ */
+static void print_long_term(H264Context *h)
+{
+    uint32_t i;
+    if (h->avctx->debug & FF_DEBUG_MMCO) {
+        av_log(h->avctx, AV_LOG_DEBUG, "long term list:\n");
+        for (i = 0; i < 16; i++) {
+            H264Picture *pic = h->long_ref[i];
+            if (pic) {
+                av_log(h->avctx, AV_LOG_DEBUG, "%"PRIu32" fn:%d poc:%d %p\n",
+                       i, pic->frame_num, pic->poc, pic->f->data[0]);
+            }
+        }
+    }
+}
 
 /**
  * Extract structure information about the picture described by pic_num in
@@ -537,40 +568,6 @@ void ff_h264_remove_all_refs(H264Context *h)
     }
 }
 
-/**
- * print short term list
- */
-static void print_short_term(H264Context *h)
-{
-    uint32_t i;
-    if (h->avctx->debug & FF_DEBUG_MMCO) {
-        av_log(h->avctx, AV_LOG_DEBUG, "short term list:\n");
-        for (i = 0; i < h->short_ref_count; i++) {
-            H264Picture *pic = h->short_ref[i];
-            av_log(h->avctx, AV_LOG_DEBUG, "%"PRIu32" fn:%d poc:%d %p\n",
-                   i, pic->frame_num, pic->poc, pic->f->data[0]);
-        }
-    }
-}
-
-/**
- * print long term list
- */
-static void print_long_term(H264Context *h)
-{
-    uint32_t i;
-    if (h->avctx->debug & FF_DEBUG_MMCO) {
-        av_log(h->avctx, AV_LOG_DEBUG, "long term list:\n");
-        for (i = 0; i < 16; i++) {
-            H264Picture *pic = h->long_ref[i];
-            if (pic) {
-                av_log(h->avctx, AV_LOG_DEBUG, "%"PRIu32" fn:%d poc:%d %p\n",
-                       i, pic->frame_num, pic->poc, pic->f->data[0]);
-            }
-        }
-    }
-}
-
 static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int n_mmcos)
 {
     int i;


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

diff --cc libavcodec/h264_refs.c
index 2b90168,0a0cc8d..d00ceb8
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@@ -181,39 -167,41 +181,70 @@@ static void h264_initialise_ref_list(H2
          if (len < sl->ref_count[0])
              memset(&sl->ref_list[0][len], 0, sizeof(H264Ref) * (sl->ref_count[0] - len));
      }
 +#ifdef TRACE
 +    for (i = 0; i < sl->ref_count[0]; i++) {
 +        ff_tlog(h->avctx, "List0: %s fn:%d 0x%p\n",
 +                (sl->ref_list[0][i].parent ? (sl->ref_list[0][i].parent->long_ref ? "LT" : "ST") : "??"),
 +                sl->ref_list[0][i].pic_id,
 +                sl->ref_list[0][i].data[0]);
 +    }
 +    if (sl->slice_type_nos == AV_PICTURE_TYPE_B) {
 +        for (i = 0; i < sl->ref_count[1]; i++) {
 +            ff_tlog(h->avctx, "List1: %s fn:%d 0x%p\n",
 +                    (sl->ref_list[1][i].parent ? (sl->ref_list[1][i].parent->long_ref ? "LT" : "ST") : "??"),
 +                    sl->ref_list[1][i].pic_id,
 +                    sl->ref_list[1][i].data[0]);
 +        }
 +    }
 +#endif
 +
 +    for (j = 0; j<1+(sl->slice_type_nos == AV_PICTURE_TYPE_B); j++) {
 +        for (i = 0; i < sl->ref_count[j]; i++) {
 +            if (sl->ref_list[j][i].parent) {
 +                if (mismatches_ref(h, sl->ref_list[j][i].parent)) {
 +                    av_log(h->avctx, AV_LOG_ERROR, "Discarding mismatching reference\n");
 +                    memset(&sl->ref_list[j][i], 0, sizeof(sl->ref_list[j][i]));
 +                }
 +            }
 +        }
 +    }
 +    for (i = 0; i < sl->list_count; i++)
 +        h->default_ref[i] = sl->ref_list[i][0];
  }
  
- static void print_short_term(H264Context *h);
- static void print_long_term(H264Context *h);
+ /**
+  * print short term list
+  */
+ static void print_short_term(H264Context *h)
+ {
+     uint32_t i;
+     if (h->avctx->debug & FF_DEBUG_MMCO) {
+         av_log(h->avctx, AV_LOG_DEBUG, "short term list:\n");
+         for (i = 0; i < h->short_ref_count; i++) {
+             H264Picture *pic = h->short_ref[i];
+             av_log(h->avctx, AV_LOG_DEBUG, "%"PRIu32" fn:%d poc:%d %p\n",
+                    i, pic->frame_num, pic->poc, pic->f->data[0]);
+         }
+     }
+ }
+ 
+ /**
+  * print long term list
+  */
+ static void print_long_term(H264Context *h)
+ {
+     uint32_t i;
+     if (h->avctx->debug & FF_DEBUG_MMCO) {
+         av_log(h->avctx, AV_LOG_DEBUG, "long term list:\n");
+         for (i = 0; i < 16; i++) {
+             H264Picture *pic = h->long_ref[i];
+             if (pic) {
+                 av_log(h->avctx, AV_LOG_DEBUG, "%"PRIu32" fn:%d poc:%d %p\n",
+                        i, pic->frame_num, pic->poc, pic->f->data[0]);
+             }
+         }
+     }
+ }
  
  /**
   * Extract structure information about the picture described by pic_num in
@@@ -528,49 -504,8 +559,15 @@@ void ff_h264_remove_all_refs(H264Contex
          h->short_ref[i] = NULL;
      }
      h->short_ref_count = 0;
 +
 +    memset(h->default_ref, 0, sizeof(h->default_ref));
 +    for (i = 0; i < h->nb_slice_ctx; i++) {
 +        H264SliceContext *sl = &h->slice_ctx[i];
 +        sl->list_count = sl->ref_count[0] = sl->ref_count[1] = 0;
 +        memset(sl->ref_list, 0, sizeof(sl->ref_list));
 +    }
  }
  
- /**
-  * print short term list
-  */
- static void print_short_term(H264Context *h)
- {
-     uint32_t i;
-     if (h->avctx->debug & FF_DEBUG_MMCO) {
-         av_log(h->avctx, AV_LOG_DEBUG, "short term list:\n");
-         for (i = 0; i < h->short_ref_count; i++) {
-             H264Picture *pic = h->short_ref[i];
-             av_log(h->avctx, AV_LOG_DEBUG, "%"PRIu32" fn:%d poc:%d %p\n",
-                    i, pic->frame_num, pic->poc, pic->f->data[0]);
-         }
-     }
- }
- 
- /**
-  * print long term list
-  */
- static void print_long_term(H264Context *h)
- {
-     uint32_t i;
-     if (h->avctx->debug & FF_DEBUG_MMCO) {
-         av_log(h->avctx, AV_LOG_DEBUG, "long term list:\n");
-         for (i = 0; i < 16; i++) {
-             H264Picture *pic = h->long_ref[i];
-             if (pic) {
-                 av_log(h->avctx, AV_LOG_DEBUG, "%"PRIu32" fn:%d poc:%d %p\n",
-                        i, pic->frame_num, pic->poc, pic->f->data[0]);
-             }
-         }
-     }
- }
- 
  static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int n_mmcos)
  {
      int i;



More information about the ffmpeg-cvslog mailing list