[FFmpeg-devel] BUG in use of extradata and extradata_size with dvb subtitles and teletext

Reimar Döffinger Reimar.Doeffinger at gmx.de
Mon Dec 30 19:07:37 CET 2013


On 30.12.2013, at 17:47, Andriy Lysnevych <andriy.lysnevych at gmail.com> wrote:

> Hi,
> 
> Copy does not work because of different formats AVPacket payload for DVB
> subtitles. I described the issue here: https://trac.ffmpeg.org/ticket/2989
> 
> Patch for DVB subtitles attached. Please review it. After accepting it we
> will create patch to fix Teletext issues.
> 
> The patch does the following:
> 1) Uses the same AVPacket payload for DVB subtitles across all FFmpeg
> (Fixed: DVB subtitles parser, DVB subtitles encoder, DVB subtitles encoder,
> MPEGTS muxer)

Obviously not all, DVB subtitles should be possible inside MKV and MXF (as far as I remember), too, at least.
Would have to check if FFmpeg really misses support for that...

> 2) Binary extradata moved to metadata fields. Now it is easy for developers
> that use FFmpeg libraries to manipulate this metadata.

Sorry, but putting data critical for decoding is completely unacceptable IMHO.
It could be put into side data, but that still would be bad style.
Metadata is for metadata not "randomly sprinkle the data stream across it".
If an application wants to set something, we already do have option support for it.
In addition there is another issue: as far as I can tell this patch breaks backward-compatibility.
So an application that uses its own MPEG-TS demuxer together with our DVB subtitle decoder will break after this change.

> On Mon, Dec 30, 2013 at 4:24 PM, JULIAN GARDNER <joolzg at btinternet.com>wrote:
>>> ________________________________
>>> From: Clément Bœsch <u at pkh.me>
>>> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
>>> Cc: serhii.marchuk at gmail.com
>>> Sent: Monday, 30 December 2013, 13:50
>>> Subject: Re: [FFmpeg-devel] BUG in use of extradata and extradata_size
>> with dvb subtitles and teletext
>>> 
>>> 
>>> On Mon, Dec 30, 2013 at 11:53:48AM +0200, Andriy Lysnevych wrote:
>>>> Hi,
>>>> 
>>>> We are almost done with patch that fixes DVB subtitles and teletext
>> issues.
>>>> 
>>>> We are doing 2 things in this patch:
>>>> 
>>>> 1) Removing dependency on extradata. All the values that currently
>> stored
>>>> in extradatata will be generated from metadata. For example in case of
>> DVB
>>>> subtitles metadata will hold the following values:
>>>> 
>>>> language
>>>> subtitling_type
>>>> composition_page_id
>>>> ancillary_page_id
>>>> 
>>>> This values will be used for correct PMT generation. The values can be
>>>> comma separated because one DVB subtitle stream can carry few subtitle
>>>> substreams of different language, type, etc.
>>>> 
>>>> a) In case of copy scenario the values will be copied from metadata of
>>>> MPEGTS demuxer subtitle stream to metadata of MPEGTS muxer subtitle
>> stream.
>>>> 
>>>> b) In case when you generate subtitles (i.e. using FFmpeg libraries and
>> DVB
>>>> subtitles encoder) you should set the fields in metadata correctly for
>>>> output subtitles stream of MPEGTS muxer otherwise default values will be
>>>> used.
>>>> 
>>>> 2) Currently there 2 different formats of DVB subtitles payload in
>>>> AVPacket.data. Fore details you can read this thread
>>>> https://trac.ffmpeg.org/ticket/2989
>>>> 
>>>> We are fixing FFmpeg so only one common format of DVB subtitles will be
>>>> used across all the components. AVPacket payload of DVB subtitles will
>>>> contain all the fields from standard:
>>>> 
>>>> data_identifier 8bit - always set to 0x20
>>>> subtitle_stream_id 8bit - always set to 0x00
>>>> subtitling_segments - actual payload
>>>> end_of_PES_data_field_makrer 8bit - always set to 0xFF
>>>> 
>>> 
>>>> Feel free to ask any questions.
>>>> 
>>> 
>>> Can we see the patch, even if it's a work in progress? What's remaining?
>>> I'm uncertain about using metadata for the information you're trying to
>>> transmit: typical problem is that it will be transmitted to the muxer.
>>> Typically you might end up with a format adding strings metadata in the
>>> destination format if it doesn't understand them.
>>> 
>>> --
>>> Clément B.
>>> 
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>> 
>> 
>> Please can we see your patches as I would like to make sure all the work i
>> have done wont be wasted for one.
>> 
>> Also want to check some of the problems i found and fixed as as the moment
>> the only thing not working is the dvbsubs copy
>> 
>> joolz
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> 
> <0001-Fix-dvbsubtitling.patch>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


More information about the ffmpeg-devel mailing list