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

Clément Bœsch u at pkh.me
Sun Dec 29 01:36:36 CET 2013

On Sat, Dec 28, 2013 at 10:11:56PM +0000, JULIAN GARDNER wrote:
> >>OK, ive posted this here as requested,
> >>
> >>What is needed to get working in order to fix other things
> >>
> >>1. When creating a DVBSUBS encoder stream, need the extradata and extradata_size to have the associated values from the input source copied across if dvbsubs, if not dvbsubs then ths needs creating with the defailt values of 0x0001 0x0001. Pointers please as to where this should be done.
> >>
> >>2. The timeout value from the incoming dvbsubs needs to be taken into account in the ffmpeg transcode loop so if this expires a new subtitle packet is created with 0 objects, in essence a clear screen, BUT only when the timer expires
> >>
> >>joolz
> >
> >
> >Can someone point me to the area i should be looking so i can fix one of the dvbsubs bugs.
> >
> >The problem is as follows
> >
> >mpegts->dvbsubs->(composition_page_Id,ancilllary_page_id)->COPY->dvbsub(0x0001,0x001)->pmt(0x0001,0x001)->mpegts
> >
> >What is happening is we are getting the 2 page_ids correctly but when we copy the pmt has the defaults 0x0001,0x0001. 
> >
> >Now i see a !osd->stream_copy in new_subtitle_stream in ffmpeg_opt.s but i cannot/dont know how to find the input that is tied to this so i can copy across the extradata from the input.
> >
> >Can someone help me on this.
> Anybody able to help me on this?
> All i need is some example, new code or a place in the current tree that will allow me to find the source extradata pointer so i can copy over the ids.

I have great difficulties trying to figure out what this gibberish is all
about, so please excuse if I completely misunderstand your question.

The dvbsub decoder (libavcodec/dvbsubdec.c) is reading from extradata to
extract the composition and ancillary id. You seem to be saying that this
information is incorrectly set. If you need to update this extradata based
on the information in the input stream, the MPEG-TS demuxer
(libavformat/mpegts.c) is probably where you need to look (because AFAIK
that's the only format supporting DVB sub right now). Try to run git grep
'extradata.*alloc' to see how it's done in other demuxers.

Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20131229/9a72b0c2/attachment.asc>

More information about the ffmpeg-devel mailing list