[MPlayer-dev-eng] Transport Stream demuxer help

Arpi arpi at thot.banki.hu
Sat Feb 15 14:09:37 CET 2003


Hi,

> I'm trying to implement a very basic demuxer for Transport Stream based 
> on ffmpeg's own.
> 
> I guess I have to make my ts_fill_buffer() function so as to fill 
> demuxer->video and demuxer->audio with the corresponding Mpeg ES streams 
> (including 0x000001C0 (and similar) headers) right?

no. if you fill the audio/video ES streams (ds) you need only the raw data,
not the PS packets with the 1C0/1E0 headers! so either you have to implement
PS demuxer too (to parse out PS headers) or queue PS packets into the
existing PS demuxer (ie. link teh 2 demuxers together).

> Ideally, if I filled  these buffers with the content of a real ES video 
> file would it be read? Or would it need to be parsed and modified?

ES will work.

> The questions are:
> - do I need to feed packets corresponding to a required length or is any 
> length accepted?

any length accepted

> A question regarding PES:
> as far as I understood a PES can have a maximum payload length of 65536 
> bytes, right?

65535, since length is stored in 16 bits.

> Is it possible that for a given PTS there is more than 1 PES packet for 
> the same stream (i.e. packets A, B e C each belonging to PTS 11000)?

of course. packets are usually 2048 bytes long, fragmented.
afaik PES only differs from PS only in that new frames starts in new PES
packets dislike in PS.


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu
    "However, many people beg for its inclusion in Debian. Why?" - Gabucino
  "Because having new software in Debian is good." - Josselin Mouette
"Because having good software in Debian is new." - Gabucino


More information about the MPlayer-dev-eng mailing list