[FFmpeg-devel] [RFC] General design for subtitles demuxers

Clément Bœsch ubitux at gmail.com
Wed Jun 13 09:29:17 CEST 2012


On Wed, Jun 13, 2012 at 08:20:48AM +0100, JULIAN GARDNER wrote:
[...]
> >>  >    events from lavf/assdec.c.
> >> 
> >>  This part I am not sure I understand. Do you mean that the demuxer is
> >>  supposed to translate into ASS?
> >> 
> > 
> > I'm just refering here to:
> > 
> >     static int event_cmp(uint8_t **a, uint8_t **b)
> >     {
> >         return get_pts(*a) - get_pts(*b);
> >     }
> > 
> >     [...]
> > 
> >     qsort(ass->event, ass->event_count, sizeof(*ass->event), 
> > (void*)event_cmp);
> > 
> >>  >    We should take out read_seek2() from lavf/assdec.
> >> 
> >>  Looks reasonable.
> >> 
> > 
> > We just need to find a better way of storing the events & pts; maybe to
> > something simple like
> > 
> >     typedef struct {
> >         int64_t pts;
> >         uint8_t *data;
> >     } FFSubtitle;
> > 
> > We will BTW be able to have a generic read_packet() as well, and greatly
> > simplify again all this stuff.
> > 
> 
> Dont we already have that information in the AVSubtitle structure, this is what i used, i created a FIFO of pointers to structs as all subtitles are alreardy read in fully, which is what caused me problems in getting the conversion to dvb subtitles.
> 

It might be a possibility, though, from a demuxer point of view, this list
will be used to create AVPacket (in the read_packet() callback). Which
will then be used by the main application to create an AVPacket. So the
situation will looks like:

  AVSubtitles (demux/read_header) -> AVPacket (demux/read_packet) -> AVSubtitles (decode)

Sure we can do that (AVSubtitles stores the start & end, and we can put
some text in it), but it looks very confusing.

OTOH, we could use AVPacket directly: read_header() constructs a list of
read-to-use AVPacket (pts, duration and data are in it), and we can raise
them directly. It should also works for bitmap-based subtitles demuxer.

-- 
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/20120613/5f1e5e47/attachment.asc>


More information about the ffmpeg-devel mailing list