All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lars Hanisch <dvb@cinnamon-sage.de>
To: linux-media@vger.kernel.org
Subject: ivtv-utils/test/ps-analyzer.cpp: error in extracting SCR?
Date: Thu, 04 Feb 2010 01:18:07 +0100	[thread overview]
Message-ID: <4B6A123F.5080500@cinnamon-sage.de> (raw)

Hi,

  I'm writing some code repacking the program stream that ivtv delivers 
into a transport stream (BTW: is there existing code for this?). Since 
many players needs the PCR I would like to use the SCR of the PS and 
place it in the adaption field of the TS (if wikipedia [1] and my 
interpretation of it is correct it should be the same).

  I stumbled upon the ps-analyzer.cpp in the test-directory of the 
ivtv-utils (1.4.0). From line 190 to 198 the SCR and SCR extension are 
extracted from the PS-header. But referring to [2] the SCR extension has 
9 bits, the highest 2 bits in the fifth byte after the sync bytes and 
the lower 7 bits in the sixth byte. The last bit is a marker bit (always 1).

  So instead of

scr_ext = (hdr[4] & 0x1) << 8;
scr_ext |= hdr[5];

  I think it should be

scr_ext = (unsigned)(hdr[4] & 0x3) << 7;
scr_ext |= (hdr[5] & 0xfe) >> 1;

  And the bitrate is coded in the next 22 bits, so it should be

mux_rate = (unsigned)(hdr[6]) << 14;
mux_rate |= (unsigned)(hdr[7]) << 6;
mux_rate |= (unsigned)(hdr[8] & 0xfc) >> 2;

  Am I correct?

Regards,
Lars.

[1] http://en.wikipedia.org/wiki/Presentation_time_stamp
[2] http://en.wikipedia.org/wiki/MPEG_program_stream

             reply	other threads:[~2010-02-04  0:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-04  0:18 Lars Hanisch [this message]
2010-02-04  3:16 ` ivtv-utils/test/ps-analyzer.cpp: error in extracting SCR? Andy Walls
2010-02-04  7:25   ` Hans Verkuil
2010-02-04 18:50     ` Lars Hanisch
2010-02-07 20:36     ` Lars Hanisch
2010-02-07 20:53       ` Andy Walls

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B6A123F.5080500@cinnamon-sage.de \
    --to=dvb@cinnamon-sage.de \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.