Re: vdr + h264

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 15 January 2008, Stefan Lucke wrote:
> 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 .

And now I know that softdevice can switch between h264 and mpeg2
when using the following addition (file remux.c line ~2552):

#define TEST_cVideoRepacker
#ifdef TEST_cVideoRepacker
     ts2pes[numTracks++] = new cTS2PES(VPid, resultBuffer, IPACKS, 0xE0, 0x00, new cVideoRepacker(h264));
#else
     ts2pes[numTracks++] = new cTS2PES(VPid, resultBuffer, IPACKS, 0xE0);
#endif
-- cut --
     if (h264) {
        resultBuffer->Put (psm_map_0xe0_to_h264, sizeof (psm_map_0xe0_to_h264));
fprintf(stderr, "---- is h264\n");
	} else {
fprintf(stderr, "---- is NO h264\n");
        }
-- cut --

The bad thing is, PSM info should be repeated more often, as the decoder
may reset itself due to bad reception (ahead of each video packet ??).

Or is there a simpler way to recognize h264 (or other codecs)
as Klaus demands?


Stefan Lucke

_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux