[MPlayer-dev-eng] NUT (informal) proposal, based on discussions

Oded Shimon ods15 at ods15.dyndns.org
Sat Jan 21 08:06:29 CET 2006


On Fri, Jan 20, 2006 at 09:14:23PM +0200, Oded Shimon wrote:
> On Fri, Jan 20, 2006 at 06:48:02PM +0200, Oded Shimon wrote:
> > step-4:
> >   add EOR
> >   add coded stream flags
> >   just add sflags to header and give intial values to tmp_*
> > 
> > step-5:
> >   change goals slightly..
> >   max_index_distance removed
> >   index changed to combination of syncpoint index and pts for keyframes,
> >   using ideas by michael
> >   syncpoint still single back_ptr and pts, however back_ptr is changed -
> >   points to most correct keyframe, not most recent.
> >   syncpoint timestamp is max(last_dts)
> > 
> > cosmetic:
> >   move things around to IMO more logical positions.

I propose this small change to the index...

It adds no muxer or demuxer complexity, but for fanatic ones interested in 
keeping the index as is compressed in ram this eases decoding it on per 
need...

- ods15
-------------- next part --------------
Index: DOCS/tech/mpcf.txt
===================================================================
RCS file: /cvsroot/mplayer/main/DOCS/tech/mpcf.txt,v
retrieving revision 1.93
diff -u -r1.93 mpcf.txt
--- DOCS/tech/mpcf.txt	20 Jan 2006 19:12:22 -0000	1.93
+++ DOCS/tech/mpcf.txt	21 Jan 2006 07:04:21 -0000
@@ -229,28 +229,29 @@
         syncpoint_pos_div8              v
     }
     for(i=0; i<stream_count; i++){
-        for(j=0; j<syncpoint_count; ){
+        for(j=0; j<syncpoints; ){
             x                           v
             type= x & 1
             x>>=1
+            n=j
             if(type){
                 flag= x & 1
                 x>>=1
                 while(x--)
-                    has_keyframe[j++][i]=flag
-                has_keyframe[j++][i]=!flag;
+                    has_keyframe[n++][i]=flag
+                has_keyframe[n++][i]=!flag;
             }else{
                 while(x != 1){
-                    has_keyframe[j++][i]=x&1;
+                    has_keyframe[n++][i]=x&1;
                     x>>=1;
                 }
             }
-        }
-        for(j=0; j<syncpoint_count; j++){
-            if (!has_keyframe[j++][i]) continue
-            A                           v
-            last_pts += A
-            keyframe_pts[j][i] = last_pts
+            for(; j<n && j<syncpoints; j++){
+                if (!has_keyframe[j][i]) continue
+                A                           v
+                last_pts += A
+                keyframe_pts[j][i] = last_pts
+            }
         }
     }
     reserved_bytes


More information about the MPlayer-dev-eng mailing list