libavcodec/dvdsubdec: Add option forced_subs_only to only decode forced subtitle...
authorNicholas Robbins <nickrobbins-at-yahoo.com@ffmpeg.org>
Sat, 20 Sep 2014 11:53:44 +0000 (07:53 -0400)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 22 Sep 2014 19:01:13 +0000 (21:01 +0200)
Signed-off-by: Nicholas Robbins <nickrobbins@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/dvdsubdec.c

index c7973f0..bb28d9e 100644 (file)
@@ -39,6 +39,7 @@ typedef struct DVDSubContext
   uint8_t  alpha[256];
   uint8_t *buf;
   int      buf_size;
+  int      forced_subs_only;
 #ifdef DEBUG
   int sub_id;
 #endif
@@ -548,6 +549,9 @@ static int dvdsub_decode(AVCodecContext *avctx,
     if (!is_menu && find_smallest_bounding_rectangle(sub) == 0)
         goto no_subtitle;
 
+    if (ctx->forced_subs_only && !(sub->rects[0]->flags & AV_SUBTITLE_FLAG_FORCED))
+        goto no_subtitle;
+
 #if defined(DEBUG)
     {
     char ppm_name[32];
@@ -652,6 +656,7 @@ static av_cold int dvdsub_close(AVCodecContext *avctx)
 #define SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM
 static const AVOption options[] = {
     { "palette", "set the global palette", OFFSET(palette_str), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, SD },
+    { "forced_subs_only", "Only show forced subtitles", OFFSET(forced_subs_only), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, SD},
     { NULL }
 };
 static const AVClass dvdsub_class = {