keyframe index

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13564 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
michael
2004-10-05 14:05:17 +00:00
parent 4812185d2b
commit eaa1bc9e8a
+16 -4
View File
@@ -90,6 +90,7 @@ main header:
version v
stream_count v
max_distance v
max_index_distance v
global_time_base_nom v
global_time_base_denom v
for(i=0; i<256; ){
@@ -171,6 +172,7 @@ frame
Index:
index_startcode f(64)
packet header
stream_id v
index_length v
for(i=0; i<index_length; i++){
index_timestamp v
@@ -265,6 +267,13 @@ max_distance
reason to set it higher otherwise reasonable error recovery will be
impossible
max_index_distance
max distance of keyframes which are represented in the index, the
distance between consecutive entries A and B may only be larger if
there are no keyframes within this stream between A and B
SHOULD be set to <=32768 or at least <=65536 unless there is a very good
reason to set it higher
stream_id
Note: streams with a lower relative class MUST have a lower relative id
so a stream with class 0 MUST allways have a id which is lower then any
@@ -428,11 +437,15 @@ checksum
adler32 checksum
index_timestamp
value of the timetamp in a sync point relative to the last sync-point
value of the timetamp of a keyframe relative to the last keyframe
stored in this index
index_position
position in bytes of the first byte of a sync-point, relative to the
last sync_point
position in bytes of the first byte of a keyframe, relative to the
last keyframe stored in this index
there MUST be no keyframe with the same stream_id as this index between
2 consecutive index entries if they are more then max_index_distance
appart
id
the id of the type/name pair, so its more compact
@@ -532,7 +545,6 @@ info packets which describe the whole file or individual streams/tracks must be
placed before any video/audio/... frames
Index
every sync-point must be exacty once in the index
Note: in case of realtime streaming there is no end, so no index there either
Info packets