[FFmpeg-devel] [PATCH] dvbsub fix transcoding

anshul anshul.ffmpeg at gmail.com
Fri May 23 12:19:45 CEST 2014

On 05/22/2014 06:43 PM, Wim Vander Schelden wrote:
> On Thu, May 22, 2014 at 3:01 PM, Wim Vander Schelden <lists at fixnum.org>wrote:
>> These subtitles not disappearing is exactly the issue that's introduced by
>> sending the second (empty, "clearing") packet (by removing the nb = 2).
you mean not sending second packet here.
>> Note that you are now relying on the DVB subtitle timeout value, which is
>> only for "safety" purposes (ie, the encoder crashed), and is only required
>> by the specification to be followed with a 5 second accuracy (so it is
>> completely useless for functioning subtitles)!
agree its for safety purpose, but as you see -0/+5 accuracy means that 
it might be possible that subtitle
are on screen +5 second ie more then required time. so using timeout 
does not have any harm.
though relying only on it, is harmful.
following is copy pasted from ETSI EN 300 743 V1.3.1 (2006-11)
page_time_out: The period, expressed in seconds, after which a page 
instance is no longer valid and consequently shall
be erased from the screen, should it not have been redefined before 
that. The time-out period starts when the page
instance is first displayed. The page_time_out value applies to each 
page instance until its value is redefined. The
purpose of the time-out period is to avoid a page instance remaining on 
the screen "for ever" if the IRD happens to have
missed the redefinition or deletion of the page instance. The time-out 
period does not need to be counted very
accurately by the IRD: a reaction accuracy of -0/+5 s is accurate enough.

> I seem to have misformulated my ordering issue in my earlier mail: the
> problem occurs when subtitle X only disappears after subtitle X+1 should
> start being displayed, as the "clear" packet for X is emitted immediately
> after the "show" packet for X, so before the "show" packet for X+1.
yes agree :)

So problem is
end_display_time is not reliable in case of dvbsub decoder,
since end_display_time in dvbsub decoder is calculated using page_time_out.
which is only for safety purpose.

I am trying to fix end_display_time in dvbsub decoder.
I want to know should i cache the subtitle till i get clear_display 
region/overlap region
or should i try to overwrite end_display_time when i have recieved some 
new region.

just now i have attached patch which stop second loop only when stream 
was decoded by

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-dvbsub-fix-transcoding.patch
Type: text/x-patch
Size: 1878 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140523/447d9c01/attachment.bin>

More information about the ffmpeg-devel mailing list