Chinaunix首页 | 论坛 | 博客
  • 博客访问: 228642
  • 博文数量: 50
  • 博客积分: 1793
  • 博客等级: 上尉
  • 技术积分: 393
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-22 23:28
文章分类
文章存档

2012年(7)

2011年(17)

2010年(26)

我的朋友

分类: LINUX

2011-11-03 10:40:30

Packetized Elementary Stream HeadersDepending on the Stream ID, a Packetized Elementary Stream (PES) header may contain various components. The header
byte 0 byte 1 byte 2 byte 3 byte 4 byte 5
0000 0000 0000 0000 0000 0001
Start code
Stream ID PES packet length
Stream ID's which pertain to DVD
Stream ID Stream type extension present?
1011 1101
0xBD
Private stream 1 (non MPEG audio, subpictures) Yes
1011 1110
0xBE
Padding stream No
1011 1111
0xBF
Private stream 2 (navigation data) No
110x xxxx
0xC0 - 0xDF
MPEG-1 or MPEG-2 audio stream number x xxxx
note: DVD allows only 8 audio streams
Yes
1110 xxxx
0xE0 - 0xEF
MPEG-1 or MPEG-2 video stream number xxxx
note: DVD allows only 1 video stream
Yes
The extension
byte 6 byte 7 byte 8
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
10 PES scrambling control PES priority data alignment indicator copyright original or copy PTS DTS flags ESCR flag ES rate flag DSM trick mode flag additional copy info flag PES CRC flag PES extension flag PES header data length
The bit fields of the basic extension:

PES scrambling control -- 00 = not scrambled, others are user defined.

PES priority -- provides 2 priority levels, 0 and 1.

data alignment indicator -- if set to 1 indicates that the PES packet header is immediately followed by the video start code or audio syncword.

copyright -- 1 = packet contains copyrighted material.

original or copy -- 1 = original, 0 = copy.

PTS DTS flags -- Presentation Time Stamp / Decode Time Stamp. 00 = no PTS or DTS data present, 01 is forbidden.
if set to 10 the following data is appended to the header data field:

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0010 PTS 32..30 1 PTS 29..15 1 PTS 14..00 1
PTS DTS flags -- if set to 11 the following data is appended to the header data field:
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0011 PTS 32..30 1 PTS 29..15 1 PTS 14..00 1
0001 DTS 32..30 1 DTS 29..15 1 DTS 14..00 1
presentation and decoder time stamps use the 90KHz clock (SCR / 300)

ESCR -- if set to 1 the following data is appended to the header data field:

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
00 ESCR base 32..30 1 ESCR base 29..15 1 ESCR base 14..00 1 ESCR ext 1
This is the Elementary Stream Clock Reference, used if the stream and system levels are not synchronized (i.e. ESCR differs from SCR in the PACK header).

ES rate -- if set to 1 the following data is appended to the header data field:

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 ES rate 1
The rate at which data is delivered for this stream, in units of 50 bytes/second.

DSM trick mode - not used by DVD

additional copy info -- if set to 1 the following data is appended to the header data field:

7 6 5 4 3 2 1 0
1 additional copy info

PES CRC flag -- if set to 1 the following data is appended to the header data field:

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
previous PES packet CRC
The polynomial used is X16 + X12 + X5 + 1

PES extension flag -- if set to 1 the following data is appended to the header data field:

7 6 5 4 3 2 1 0
PES private data flag pack header field flag program packet sequence counter flag P-STD buffer flag 111 PES extension flag 2
The bit fields of the first extension:

PES private data flag -- if set to 1 16 bytes of user defined data is appended to the header data field.

pack header field flag -- if set to 1 the 8-bit pack field length value is appended to the header data field.

program packet sequence counter flag -- if set to 1 the following data is appended to the header data field:

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 packet sequence counter 1 MPEG1_MPEG2 identifier original stuffing length

P-STD buffer flag -- if set to 1 the following data is appended to the header data field:

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
01 P-STD buffer scale
0 = 128 bytes
1 = 1024 bytes
P-STD buffer size

PES extension flag 2 -- if set to 1 the following data is appended to the header data field:

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 PES extension field length reserved
Which is then followed by the indicated number of bytes. The rest of the packetFollowing all the extension data are optional stuffing bytes (0xFF), which are included in the header data length, and then the payload.
In the case of private streams the first byte of the payload is the sub-stream number.

阅读(1464) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~