On Tuesday 15 January 2008, Reinhard Nissl wrote:
> Hi,
> Stefan Lucke schrieb:
> > is it correct that h264 is written as PES via PlayVideo() ?
> > 
> > For decoding with ffmpeg it would be useful to have a 
> > PROGRAM_STREAM_MAP in front of a new video stream.
> Basically not a bad idea, but where do you put it in live
> streaming? 

I think it should be transmitted first, after a stream reset.
A basic PSM that maps from PES 0x01e0 to h264 could
look like:
unsigned char psm_map_0xe0_to_h264 [] =
  { 0x00, 0x00, 0x01, 0xbc,
    0x00, 0x10,             // psm length
    0x00, 0x00,             // unknown
    0x00, 0x00,             // info length
                            // info data here
    0x00, 0x04              // map length
                            // map data here
    0x1b, 0xe0, 0x00, 0x00  // h264 map entry / NO map info
    0x00, 0x00, 0x00, 0x00  // crc32

That is inspired by ffmpegs: libavformat/mpeg.c
mpegps_psm_parse() line ~220 .

> Or after a seek in VDR's recording player? 

By above, it's just (pinned) at the beginning of the file.
Don't know if we should expect changes in between
(but all bad things happen).

> Mplayer does some nice tests to determine PES vs. ES. It has just
> not been extended to detect H.264 in the same way. 

Aren't users beeing told to feed mplayer with PSM too ?

> H.264 uses a 
> limited start code set compared to MPEG1/2 so it should be easy
> to detect the content, due to the distribution of start codes.

Stefan Lucke

vdr mailing list

Reply via email to