OSDN Git Service

Record MPEG-4 sprite trajectory points [up to num_sprite_warping_points][isY].
authorGwenole Beauchesne <gbeauchesne@splitted-desktop.com>
Mon, 30 Mar 2009 20:39:08 +0000 (20:39 +0000)
committerGwenole Beauchesne <gbeauchesne@splitted-desktop.com>
Mon, 30 Mar 2009 20:39:08 +0000 (20:39 +0000)
Originally committed as revision 18250 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h263.c
libavcodec/mpegvideo.h

index 170513d..2a945c6 100644 (file)
@@ -5339,9 +5339,11 @@ static void mpeg4_decode_sprite_trajectory(MpegEncContext * s, GetBitContext *gb
         }
         skip_bits1(gb); /* marker bit */
 //printf("%d %d %d %d\n", x, y, i, s->sprite_warping_accuracy);
-        d[i][0]= x;
-        d[i][1]= y;
+        s->sprite_traj[i][0]= d[i][0]= x;
+        s->sprite_traj[i][1]= d[i][1]= y;
     }
+    for(; i<4; i++)
+        s->sprite_traj[i][0]= s->sprite_traj[i][1]= 0;
 
     while((1<<alpha)<w) alpha++;
     while((1<<beta )<h) beta++; // there seems to be a typo in the mpeg4 std for the definition of w' and h'
index ef40083..615c0fa 100644 (file)
@@ -519,6 +519,7 @@ typedef struct MpegEncContext {
     int sprite_brightness_change;
     int num_sprite_warping_points;
     int real_sprite_warping_points;
+    uint16_t sprite_traj[4][2];      ///< sprite trajectory points
     int sprite_offset[2][2];         ///< sprite offset[isChroma][isMVY]
     int sprite_delta[2][2];          ///< sprite_delta [isY][isMVY]
     int sprite_shift[2];             ///< sprite shift [isChroma]