[FFmpeg-devel] [PATCH v2 0/2] avcodec/dvbsubdec, dvdsubdec: don't dump images to disk based on DEBUG define

Soft Works softworkz at hotmail.com
Fri Feb 4 00:08:30 EET 2022



> -----Original Message-----
> From: ffmpegagent <ffmpegagent at gmail.com>
> Sent: Monday, January 10, 2022 8:56 PM
> To: ffmpeg-devel at ffmpeg.org
> Cc: Hendrik Leppkes <h.leppkes at gmail.com>; Soft Works
> <softworkz at hotmail.com>; Marton Balint <cus at passwd.hu>; softworkz
> <softworkz at hotmail.com>
> Subject: [PATCH v2 0/2] avcodec/dvbsubdec,dvdsubdec: don't dump images
> to disk based on DEBUG define
> 
> It's annoying and unexpected, but still useful at times (as I've
> realized
> just recently).
> 
> This is a follow-up to the earlier submission here:
> https://www.mail-archive.com/ffmpeg-devel@ffmpeg.org/msg128080.html
> 
> There has been a comment from Anton, questioning whether the dump-
> feature is
> useful. Meanwhile I came to the conclusion that it can be useful in-
> fact. It
> just shouldn't happen automatically when DEBUG is defined. That's what
> these
> patches do.
> 
> I also added fixes for the fopen() call.
> 
> softworkz (2):
>   avcodec/dvdsubdec,dvbsubdec: don't dump images to disk based on
> DEBUG
>     define
>   avcodec/dvdsubdec,dvbsubdec: fix writing ppm
> 
>  libavcodec/dvbsubdec.c | 20 +++++++++++++-------
>  libavcodec/dvdsubdec.c | 11 ++++++++---
>  2 files changed, 21 insertions(+), 10 deletions(-)
> 
> 
> base-commit: 6c4074e4234edacfb3f37184fd68771df3cb2b7f
> Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-
> ffstaging-17%2Fsoftworkz%2Fsubmit_dvb_subs-v2
> Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-
> ffstaging-17/softworkz/submit_dvb_subs-v2
> Pull-Request: https://github.com/ffstaging/FFmpeg/pull/17
> 
> Range-diff vs v1:
> 
>  1:  6ca8905c3d ! 1:  2f12ac7f1f avcodec/dvbsubdec: don't dump images
> to disk based on DEBUG define
>      @@ Metadata
>       Author: softworkz <softworkz at hotmail.com>
> 
>        ## Commit message ##
>      -    avcodec/dvbsubdec: don't dump images to disk based on DEBUG
> define
>      +    avcodec/dvdsubdec,dvbsubdec: don't dump images to disk based
> on DEBUG define
> 
>           It's been a regular annoyance.
>           Introduce a debug-only parameter for this.
>      @@ libavcodec/dvbsubdec.c: static const AVOption options[] = {
>            {NULL}
>        };
>        static const AVClass dvbsubdec_class = {
>      +
>      + ## libavcodec/dvdsubdec.c ##
>      +@@ libavcodec/dvdsubdec.c: typedef struct DVDSubContext
>      +   uint8_t  used_color[256];
>      + #ifdef DEBUG
>      +   int sub_id;
>      ++  int dump_imgs;
>      + #endif
>      + } DVDSubContext;
>      +
>      +@@ libavcodec/dvdsubdec.c: static int
> dvdsub_decode(AVCodecContext *avctx,
>      +     ff_dlog(NULL, "start=%d ms end =%d ms\n",
>      +             sub->start_display_time,
>      +             sub->end_display_time);
>      +-    ppm_save(ppm_name, sub->rects[0]->data[0],
>      +-             sub->rects[0]->w, sub->rects[0]->h, (uint32_t*)
> sub->rects[0]->data[1]);
>      ++    if (ctx->dump_imgs)
>      ++        ppm_save(ppm_name, sub->rects[0]->data[0],
>      ++                 sub->rects[0]->w, sub->rects[0]->h,
> (uint32_t*) sub->rects[0]->data[1]);
>      +     }
>      + #endif
>      +
>      +@@ libavcodec/dvdsubdec.c: static const AVOption options[] = {
>      +     { "palette", "set the global palette", OFFSET(palette_str),
> AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, SD },
>      +     { "ifo_palette", "obtain the global palette from .IFO
> file", OFFSET(ifo_str), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, SD
> },
>      +     { "forced_subs_only", "Only show forced subtitles",
> OFFSET(forced_subs_only), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, SD},
>      ++#ifdef DEBUG
>      ++    { "dump_imgs", "Dump subtitle images to disk",
> OFFSET(dump_imgs), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, SD},
>      ++#endif
>      +     { NULL }
>      + };
>      + static const AVClass dvdsub_class = {
>  2:  8da6e4ab17 ! 2:  0cd2c77f31 avcodec/dvbsubdec: fix writing ppm
>      @@ Metadata
>       Author: softworkz <softworkz at hotmail.com>
> 
>        ## Commit message ##
>      -    avcodec/dvbsubdec: fix writing ppm
>      +    avcodec/dvdsubdec,dvbsubdec: fix writing ppm
> 
>           fopen needs (b)inary mode
> 
>      @@ libavcodec/dvbsubdec.c: static void png_save(DVBSubContext
> *ctx, const char *fil
>            if (!f) {
>                perror(fname2);
>                return;
>      +
>      + ## libavcodec/dvdsubdec.c ##
>      +@@ libavcodec/dvdsubdec.c: static void ppm_save(const char
> *filename, uint8_t *bitmap, int w, int h,
>      +     int back[3] = {0, 255, 0};  /* green background */
>      +     FILE *f;
>      +
>      +-    f = fopen(filename, "w");
>      ++    f = fopen(filename, "wb");
>      +     if (!f) {
>      +         perror(filename);
>      +         return;
>  3:  9186ff48ec < -:  ---------- avcodec/dvdsubdec: don't dump images
> to disk based on DEBUG define
>  4:  341474e338 < -:  ---------- avcodec/dvdsubdec: fix writing ppm
> 
> --
> ffmpeg-codebot

Ping. (this v2 has squashed the commits as requested)




More information about the ffmpeg-devel mailing list