avcodec/dvdsubenc: accept forced flag
authorOliver Fromme <oliver@fromme.com>
Sun, 18 May 2014 13:29:28 +0000 (15:29 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 19 May 2014 22:08:08 +0000 (00:08 +0200)
Reviewed-by: Anshul <anshul.ffmpeg@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/dvdsubenc.c

index 11858c7..d19d071 100644 (file)
@@ -259,6 +259,7 @@ static int encode_dvd_subtitles(AVCodecContext *avctx,
     AVSubtitleRect vrect;
     uint8_t *vrect_data = NULL;
     int x2, y2;
+    int forced = 0;
 
     if (rects == 0 || h->rects == NULL)
         return AVERROR(EINVAL);
@@ -267,6 +268,12 @@ static int encode_dvd_subtitles(AVCodecContext *avctx,
             av_log(avctx, AV_LOG_ERROR, "Bitmap subtitle required\n");
             return AVERROR(EINVAL);
         }
+    /* Mark this subtitle forced if any of the rectangles is forced. */
+    for (i = 0; i < rects; i++)
+        if ((h->rects[i]->flags & AV_SUBTITLE_FLAG_FORCED) != 0) {
+            forced = 1;
+            break;
+        }
     vrect = *h->rects[0];
 
     if (rects > 1) {
@@ -371,7 +378,7 @@ static int encode_dvd_subtitles(AVCodecContext *avctx,
     bytestream_put_be16(&q, offset1);
     bytestream_put_be16(&q, offset2);
 
-    *q++ = 0x01; // start command
+    *q++ = forced ? 0x00 : 0x01; // start command
     *q++ = 0xff; // terminating command
 
     // send stop display command last