[FFmpeg-devel] [PATCH v2 0/2] avcodec/dvbsubdec, dvdsubdec: don't dump images to disk based on DEBUG define
ffmpegagent
ffmpegagent at gmail.com
Mon Jan 10 21:55:31 EET 2022
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
More information about the ffmpeg-devel
mailing list