# HG changeset patch # User ods15 # Date 1136513134 0 # Node ID a9e170085990cfa68aad82ace788da5a1ad0d5c5 # Parent a4d9f8fd5938b0d55ff819abd1c0d29defd7b571 1) change date and goals slightly 2) fix 's' in info packets 3) rename sync_point to syncpoint, and frame_startcode to syncpoint_startcode diff -r a4d9f8fd5938 -r a9e170085990 DOCS/tech/mpcf.txt --- a/DOCS/tech/mpcf.txt Fri Jan 06 01:40:30 2006 +0000 +++ b/DOCS/tech/mpcf.txt Fri Jan 06 02:05:34 2006 +0000 @@ -1,5 +1,5 @@ ======================================== -NUT Open Container Format DRAFT 20051118 +NUT Open Container Format DRAFT 20060105 ======================================== @@ -23,7 +23,7 @@ ~0.2% overhead, for normal bitrates index is <10kb per hour (1 keyframe every 3sec) a usual header for a file is about 100 bytes (audio + video headers together) - a packet header is about ~1-8 bytes + a packet header is about ~1-5 bytes Error resistant seeking / playback without an index @@ -243,6 +243,8 @@ name vb if(type=="v") value v + else if(type=="s") + value s else value vb } @@ -254,8 +256,8 @@ packet header info_frame -sync_point: - frame_startcode f(64) +syncpoint: + syncpoint_startcode f(64) global_timestamp v back_ptr v @@ -277,8 +279,8 @@ info_packet } while(next_code != main_startcode){ - if(next_code == frame_startcode) - sync_point + if(next_code == syncpoint_startcode) + syncpoint frame } } @@ -316,10 +318,10 @@ stream_starcode 0x11405BF2F9DBULL + (((uint64_t)('N'<<8) + 'S')<<48) -frame_startcode +syncpoint_startcode 0xE4ADEECA4569ULL + (((uint64_t)('N'<<8) + 'K')<<48) - frame_startcodes SHOULD be placed immediately before a keyframe if the + syncpoint_startcodes SHOULD be placed immediately before a keyframe if the previous frame of the same stream was a non-keyframe, unless such non-keyframe - keyframe transitions are very frequent @@ -333,8 +335,8 @@ NUT version. The current value is 2. max_distance - max distance of frame_startcodes, the distance may only be larger if - there is only a single frame between the two frame_startcodes this can + max distance of syncpoints, the distance may only be larger if + there is no more than a single frame between the two syncpoints. This can be used by the demuxer to detect damaged frame headers if the damage results in too long of a chain