Merge commit 'b34c6cd57a2e8aad5f773aea933f77883de320ec'
authorClément Bœsch <u@pkh.me>
Mon, 3 Apr 2017 19:02:54 +0000 (21:02 +0200)
committerClément Bœsch <u@pkh.me>
Mon, 3 Apr 2017 19:02:54 +0000 (21:02 +0200)
* commit 'b34c6cd57a2e8aad5f773aea933f77883de320ec':
  dvbsub: cosmetics: Group all debug code together

Merged-by: Clément Bœsch <u@pkh.me>
1  2 
libavcodec/dvbsubdec.c

@@@ -1395,6 -1060,67 +1332,67 @@@ static int dvbsub_parse_page_segment(AV
  
  
  #ifdef DEBUG
 -        printf("Error running pnmtopng\n");
+ static void png_save(const char *filename, uint32_t *bitmap, int w, int h)
+ {
+     int x, y, v;
+     FILE *f;
+     char fname[40], fname2[40];
+     char command[1024];
+     snprintf(fname, sizeof(fname), "%s.ppm", filename);
+     f = fopen(fname, "w");
+     if (!f) {
+         perror(fname);
+         return;
+     }
+     fprintf(f, "P6\n"
+             "%d %d\n"
+             "%d\n",
+             w, h, 255);
+     for(y = 0; y < h; y++) {
+         for(x = 0; x < w; x++) {
+             v = bitmap[y * w + x];
+             putc((v >> 16) & 0xff, f);
+             putc((v >> 8) & 0xff, f);
+             putc((v >> 0) & 0xff, f);
+         }
+     }
+     fclose(f);
+     snprintf(fname2, sizeof(fname2), "%s-a.pgm", filename);
+     f = fopen(fname2, "w");
+     if (!f) {
+         perror(fname2);
+         return;
+     }
+     fprintf(f, "P5\n"
+             "%d %d\n"
+             "%d\n",
+             w, h, 255);
+     for(y = 0; y < h; y++) {
+         for(x = 0; x < w; x++) {
+             v = bitmap[y * w + x];
+             putc((v >> 24) & 0xff, f);
+         }
+     }
+     fclose(f);
+     snprintf(command, sizeof(command), "pnmtopng -alpha %s %s > %s.png 2> /dev/null", fname2, fname, filename);
+     if (system(command) != 0) {
 -        printf("Error removing %s and %s\n", fname, fname2);
++        fprintf(stderr, "Error running pnmtopng\n");
+         return;
+     }
+     snprintf(command, sizeof(command), "rm %s %s", fname, fname2);
+     if (system(command) != 0) {
++        fprintf(stderr, "Error removing %s and %s\n", fname, fname2);
+         return;
+     }
+ }
  static int save_display_set(DVBSubContext *ctx)
  {
      DVBSubRegion *region;