[vdr] [ANNOUNCE] H.264 updates for VDR-1.5.9

Reinhard Nissl rnissl at gmx.de
Thu Aug 30 01:02:01 CEST 2007


Hi,

Reinhard Nissl wrote:

> The line will write the PES packet's content into file
> /video/sample.es.h264 when a h264parser exists. Then please send me some
> MB of the file.

The file you've sent me doesn't contain any useful data. You can have a
look at it yourself:

od -Ax -t x1 -v sample2.es.h264 | less -S

You need to find at least the sequence 00 00 01. Otherwise it's garbage.

I'll go to bed soon, so here's a quick description how to go on:

- add this function to cRepacker
  virtual void LogTS(const uint8_t *Buf) {}
- add this function to cVideoRepacker
  virtual void LogTS(const uint8_t *Buf) { if (h264parser) { static FILE
*f = fopen("/video/sample.ts", "wb"); fwrite(Buf, 1, 188, f); fflush(f); } }
- change this area in ts_to_pes() like that:

void cTS2PES::ts_to_pes(const uint8_t *Buf) // don't need count (=188)
{
  if (!Buf)
     return;
if (repacker) repacker->LogTS(Buf);
  if (Buf[1] & TS_ERROR)

Be careful to just have a single cVideoRepacker instance write into this
file, i. e. either activate transfer mode on this channel or make a
recording on this channel but not both at the same time.

Have a look at this file with

od -Ax -t x1 -v -w188 sample.ts | less -S

and locate the sequence 00 00 01 multiple times. It should then be
possible to record this channel although it doesn't work for now, as
cVideoRepacker didn't find any startcode (00 00 01) in the
sample.es.h264 from above.

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rnissl at gmx.de



More information about the vdr mailing list