[FFmpeg-devel] [PATCH] dvbsub fix transcoding

Anshul Maheshwari anshul.ffmpeg at gmail.com
Sun Jun 1 19:14:48 CEST 2014


On Fri, May 23, 2014 at 3:50 PM, anshul <anshul.ffmpeg at gmail.com> wrote:
> 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
> dvbsubtile.
>
> -Anshul

Hi

I have attached new patch which fix end_display_time in subtitle.

> 7.2.6
>  End of display set segment
> The end_of_display_set_segment provides an explicit indication to the
decoder that transmission of a display set is
> complete. The end_of_display_set_segment shall be inserted into the
stream immediately after the last
> object_data_segment for each display set. It shall be present for each
subtitle service in a subtitle stream,
*although> decoders need not take advantage of this segment* and may apply
other strategies to determine when they have sufficient
> information from a display set to commence decoding.
As spec say not to use end of display segment for any purpose. I removed
use of eod segment

Thanks
Anshul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-fix-transcoding-dvbsub-to-dvbsub.patch
Type: text/x-patch
Size: 7263 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140601/6550b32b/attachment.bin>


More information about the ffmpeg-devel mailing list