mirror of
https://github.com/mpv-player/mpv
synced 2024-12-15 03:15:52 +00:00
bump date
add EOR add coded stream flags git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17438 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
3cb89b0765
commit
322d669cec
@ -1,5 +1,5 @@
|
||||
========================================
|
||||
NUT Open Container Format DRAFT 20060105
|
||||
NUT Open Container Format DRAFT 20060120
|
||||
========================================
|
||||
|
||||
|
||||
@ -131,23 +131,29 @@ main header:
|
||||
stream_count v
|
||||
max_distance v
|
||||
max_index_distance v
|
||||
tmp_pts=0
|
||||
tmp_mul=1
|
||||
tmp_stream=0
|
||||
for(i=0; i<256; ){
|
||||
tmp_flag v
|
||||
tmp_fields v
|
||||
if(tmp_fields>0) tmp_pts s
|
||||
if(tmp_fields>1) tmp_mul v
|
||||
if(tmp_fields>2) tmp_stream v
|
||||
if(tmp_fields>3) tmp_size v
|
||||
if(tmp_fields>0) tmp_sflag v
|
||||
else tmp_sflag=0
|
||||
if(tmp_fields>1) tmp_pts s
|
||||
if(tmp_fields>2) tmp_mul v
|
||||
if(tmp_fields>3) tmp_stream v
|
||||
if(tmp_fields>4) tmp_size v
|
||||
else tmp_size=0
|
||||
if(tmp_fields>4) tmp_res v
|
||||
if(tmp_fields>5) tmp_res v
|
||||
else tmp_res=0
|
||||
if(tmp_fields>5) count v
|
||||
if(tmp_fields>6) count v
|
||||
else count= tmp_mul - tmp_size
|
||||
for(j=6; j<tmp_fields; j++){
|
||||
for(j=7; j<tmp_fields; j++){
|
||||
tmp_reserved[i] v
|
||||
}
|
||||
for(j=0; j<count && i<256; j++, i++){
|
||||
flags[i]= tmp_flag;
|
||||
stream_flags[i]= tmp_sflag;
|
||||
stream_id_plus1[i]= tmp_stream;
|
||||
data_size_mul[i]= tmp_mul;
|
||||
data_size_lsb[i]= tmp_size + j;
|
||||
@ -208,6 +214,9 @@ frame:
|
||||
if(flags[frame_code]&1){
|
||||
data_size_msb v
|
||||
}
|
||||
if(flags[frame_code]&2){
|
||||
coded_stream_flags v
|
||||
}
|
||||
for(i=0; i<reserved_count[frame_code]; i++)
|
||||
reserved v
|
||||
data
|
||||
@ -302,6 +311,8 @@ back_ptr
|
||||
one keyframe for each stream lies between the syncpoint to which
|
||||
real_back_ptr points, and the current syncpoint.
|
||||
|
||||
A stream where EOR is set is to be ignored for back_ptr.
|
||||
|
||||
global_key_pts
|
||||
After a syncpoint, last_pts of each stream is to be set to:
|
||||
last_pts[i] = convert_ts(global_key_pts, timebase[stream], timebase[i])
|
||||
@ -417,17 +428,27 @@ frame_code
|
||||
different from the first byte of any startcode
|
||||
|
||||
flags[frame_code]
|
||||
first of the flags from MSB to LSB are called KD
|
||||
if D is 1 then data_size_msb is coded, otherwise data_size_msb is 0
|
||||
K is the keyframe_type
|
||||
0 -> no keyframe,
|
||||
1 -> keyframe,
|
||||
flags=4 can be used to mark illegal frame_code bytes
|
||||
frame_code=78 must have flags=4
|
||||
Note: frames MUST NOT depend(1) upon frames prior to the last
|
||||
frame_startcode
|
||||
Important: depend(1) means dependency on the container level (NUT) not
|
||||
dependency on the codec level
|
||||
Bit Name Description
|
||||
1 data_size_msb if set, data_size_msb is at frame header,
|
||||
otherwise data_size_msb is 0
|
||||
2 more_flags if set, stream control flags are at frame header.
|
||||
4 invalid if set, frame_code is invalid.
|
||||
|
||||
frame_code=78 ('N') MUST have flags=64
|
||||
|
||||
stream_flags
|
||||
stream_flags is "stream_flags[frame_code] ^ coded_stream_flags"
|
||||
|
||||
Bit Name Description
|
||||
1 is_key if set, frame is keyframe
|
||||
2 end_of_relevance if set, stream has no relevance on
|
||||
presentation. (EOR)
|
||||
|
||||
EOR frames MUST be zero-length and must be set keyframe.
|
||||
All streams SHOULD end with EOR, where the pts of the EOR indicates the
|
||||
end presentation time of the final frame.
|
||||
An EOR set stream is unset by the first content frames.
|
||||
When an EOR is unset, dts_cache of the stream is reset to -1.
|
||||
|
||||
stream_id_plus1[frame_code]
|
||||
must be <250
|
||||
@ -476,7 +497,8 @@ dts
|
||||
this buffer is initalized with decode_delay -1 elements
|
||||
|
||||
Pts of all frames in all streams MUST be bigger or equal to dts of all
|
||||
previous frames in all streams, compared in common timebase.
|
||||
previous frames in all streams, compared in common timebase. (EOR
|
||||
frames are NOT exempt from this rule)
|
||||
|
||||
width/height
|
||||
MUST be set to the coded width/height
|
||||
|
Loading…
Reference in New Issue
Block a user