2/24/2008 9T6WP
BCM7405
Preliminary Hardware Data Module
Functional Description
06/29/07
Bro a d c o m C o rp o r a ti o n
Page 1-26
Data Transport Processor
Document
7405-1HDM00-R
The playback module also includes a pacing function which can optionally pace the playback data using the local data
transport timestamps (when the playback data was recorded with timestamps).
Playback Sync Extractor
The playback sync extractor engine generates the sync signal for TS and PES streams which are played from a playback
memory buffer by the playback module. This sync signal is then used by the receiving modules (high-speed transport,
Remux, transport record and the audio/video output buffer) to delineate the transport or PES packets. There are five modes
of operation:
•
TS1, which is used for MPEG transport stream playback. The length of transport packets is programmable. The sync
detect engine locks to the transport packet sync byte 0 x 47. When the engine is not locked to the playback stream,
data is not output and it flushes the data until lock is achieved.
•
TS2, which is used for DIRECTV transport stream playback.
•
TS Blind. The TS1_BLIND and TS2_BLIND modes are optionally used for MPEG and DIRECTV, respectively, to
playback any transport stream having a constant packet length. The packet length is programmable. Because this
mode counts bytes and outputs a sync signal, it requires the packets to be stored precisely into the playback memory
space with the first byte of playback being the start of a packet. All data is output, none is flushed or skipped due to not
being in sync as in the TS1, TS2, and PES modes of operation.
•
PES, which is for PES packet stream playback with support for lengthless PES. The sync detect engine locks to the
PES start code (0x000001) and the stream ID which is a programmable valid range nominally set to 0xBC to 0xFF.
When the engine is not locked to the playback stream, data is not output and it flushes the data until lock is achieved.
The PES packets with a stream ID outside of the programmed valid range are dropped, and the out-of-sync condition is
indicated.
•
Bypass, where the sync detect only passes the incoming data/valid along with the incoming new program playback
signal to the data/valid/sync outputs, respectively. The new program signal is sent out as the sync bit. All data is output,
none is flushed or skipped due to not being in sync as in the TS1, TS2, and PES modes of operation.
The sync extractor also generates an out-of-sync real-time status indicator and an out-of-sync interrupt which occurs when
the engine transitions from in-sync to out-of-sync. The sync extractor drops data when in the out-of-sync state.
Remux Module
The Remux module combines two transport streams and outputs the resultant serial stream using three pins (clock, data,
and sync). The Remux module consists of an input multiplexor, a PID remapper, a packet buffer, a PCR correction unit, a
packet substitution unit, and an output formatter. The input multiplexor mixes any two streams selected from the pool of five
input bands, five parser bands (encrypted or decrypted) or a subset of the combined parsed-decrypted stream or parsed-
encrypted (such as, not decrypted) or the four playback streams and outputs the one resultant stream. The PID remapper
parses the selected input streams for up to 32 PIDs as defined in the Remux PID table and the PID can be modified to avoid
duplication in the combined stream.
Each remux input channel has both the Normal and All-pass modes of operation. In the Normal mode, only PIDs defined in
the Remux PID table are output, other PIDs are dropped. In the All-pass mode, all PIDs are output, and any PIDs in the
Remux PID table are remapped accordingly. The packet buffer is simply a FIFO ram to hold the packets and local
timestamps until it is time to output them. The packet buffer is maintained in system DRAM to give flexibility on the size of
the buffer. There is also a PCR correction, packet substitution and null packet generation module. A state machine driven
by an output request coordinates the output of packet data, with packet substitution, or generate null packets when
necessary. The Packet Substitution module allows certain transport packets to have their payload replaced with data that is
stored in the local Packet Substitution Table. Packets eligible for substitution are those with a particular PID and HD field.
The Remux packet substitution module allows up to two different packets to be substituted. Alternately, this module can
generate packets and insert them directly into the output stream. This module also substitutes a time-corrected PCR for
every packet containing a PCR. The PCR correction module calculates the difference between the packet timestamp and a