ducatih264dec: write out a MB error map when codec debug info is on
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fri, 9 Nov 2012 09:42:31 +0000 (09:42 +0000)
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fri, 9 Nov 2012 11:51:35 +0000 (11:51 +0000)
src/gstducatih264dec.c

index 6abf84292826e40ee5c183f52252a4d1f9fc0f66..6c049e76e6501708b6aab257158c4e6b54c02dac 100644 (file)
@@ -161,6 +161,8 @@ gst_ducati_h264dec_handle_error (GstDucatiVidDec * self, gint ret,
   unsigned mbw, mbh, nmb;
   uint16_t mbwr, mbhr;
   size_t n, nerr = 0;
+  char *line;
+  unsigned x, y;
 
   if (h264dec->bo_mberror) {
     mberror = omap_bo_map (h264dec->bo_mberror);
@@ -180,6 +182,15 @@ gst_ducati_h264dec_handle_error (GstDucatiVidDec * self, gint ret,
       }
       GST_INFO_OBJECT (self, "Frame has %zu MB errors over %zu (%u x %u) MBs",
           nerr, nmb, mbwr, mbhr);
+      line = g_malloc (mbw + 1);
+      for (y = 0; y < mbh; y++) {
+        line[mbw] = 0;
+        for (x = 0; x < mbw; x++) {
+          line[x] = mberror[x + y * mbw] ? '!' : '.';
+        }
+        GST_INFO_OBJECT (self, "MB: %4u: %s", y, line);
+      }
+      g_free (line);
     }
   }