Hi all.
I want to parse a pes packet, which a vdr-device gets via its cDevice method (int cDevice::PlayVideo(const uchar* data, int length). I have looked at this page: http://dvd.sourceforge.net/dvdinfo/pes-hdr.html and i can parse pes, dts and other stuff. But i need some more informations like horizontal size and vertical size, which can be found in a sequence header (http://dvd.sourceforge.net/dvdinfo/mpeghdrs.html#seq). Can somebody help me with this task? I must say, that i dont know where to find the sequence header in the pes packet.
Thanks, Christian
I have looked at this page: http://dvd.sourceforge.net/dvdinfo/pes-hdr.html and i can parse pes, dts and other stuff. But i need some more informations like horizontal size and vertical size, which can be found in a sequence header (http://dvd.sourceforge.net/dvdinfo/mpeghdrs.html#seq). Can somebody help me with this task? I must say, that i dont know where to find the sequence header in the pes packet.
Hi Christian G.,
AFAIK (and a quick check in a VDR recording seems to validate this), the sequence header can be found in the video elementary stream. You need to extract the payload of all PES-packets flagged with stream ID 0x224 (video stream 00) to get the elementary stream, and then parse this one according to ISO/IEC 13818-2.
As far as I can see (in my example VDR recording here on my disk), the first PES-packet in each 00?.vdr-file belongs to the video stream 00 and its payload starts with the sequence header right away. Most likely this is because VDR starts and splits the recordings always at GOP-boundaries.
hope this helps a bit... Christian V. :-)