[FFmpeg-devel] [PATCH] Pass "forced" flag to dvdsubenc
Anshul
anshul.ffmpeg at gmail.com
Sun May 18 22:28:21 CEST 2014
On May 18, 2014 6:59:28 PM IST, Oliver Fromme <oliver at fromme.com> wrote:
>Hi,
>
>I hope this is the right place to submit a patch.
>Please let me know if there's something wrong with it.
>The patch was made against a recent snapshot downloaded
>from ffmpeg.org on 2014-05-16. I'm not familiar with
>git at all (my version-control background is rather cvs,
>subversion and perforce), so I just used "diff -u".
>The patch is fairly trivial and small, so it shouldn't
>be an issue.
>
>The problem is that I'm working with a lot with subtitle
>tracks that are either completely forced or that contain
>some captions that are forced (and some that are not).
>At the moment, ffmpeg and libavcodec don't support this
>very well. I'll try to improve this in small steps.
>
>My first observation when looking at the source code was
>that there is already a flag: AV_SUBTITLE_FLAG_FORCED.
>However, at the moment this flag is only set by pgssubdec
>dvdsubdec, but it is never used anywhere. That means,
>if subtitles are read from a PGS or VOBSUB track and
>then later written to the destination file, the "forced"
>flag is lost.
>
>The patch presented below causes the flag to be used when
>writing a VOBSUB track ("dvdsub" in ffmpeg parlance), so
>the flag is preserved. I've tested the patch with various
>VOBSUB tracks successfully.
>
>By the way, a good way for testing VOBSUB subtitles files
>(i.e. pairs of *.idx and *.sub files) is the BDSup2Sub
>utility. It's written in Java and supports both a GUI
>and a pure command-line interface (I only use the latter).
>The good thing about it is that it has a very strict
>parser. If anything is wrong with the VOBSUB input, it
>prints appropriate warnings and error messages. It also
>prints the number of captions marked as forced, and allows
>to extract them separately. ffmpeg doesn't support this
>yet, but I'll try to implement something like that when
>I have some spare time. Yes, I know, there already is the
>-forced_subs_only option, but it's specific to the PGS
>decoder, and it doesn't work anyway because of a bug.
>
>Best regards
> Oliver
>
>PS: Here's the patch to use the "forced" flag in dvdsubenc:
>
>--- libavcodec/dvdsubenc.c.orig 2014-04-25 19:20:06.000000000 +0200
>+++ libavcodec/dvdsubenc.c 2014-05-16 23:35:29.000000000 +0200
>@@ -259,6 +259,7 @@
> 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 @@
> 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 @@
> 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
>_______________________________________________
>ffmpeg-devel mailing list
>ffmpeg-devel at ffmpeg.org
>http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Hi
In dvb subtitle rfc, I dont find anything related to force flag.
If you are following some documentation then can u please point section.
It would be better if you also share the input, where forced flag is lost.
-Anshul
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
More information about the ffmpeg-devel
mailing list