Set keyframe flag only when it is a keyframe. This will break quite some formats...
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Tue, 30 Sep 2003 21:06:43 +0000 (21:06 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Tue, 30 Sep 2003 21:06:43 +0000 (21:06 +0000)
Original commit message from CVS:
Set keyframe flag only when it is a keyframe. This will break quite some formats because many encoders dont set this flag correctly, but I'll fix that as I encounter them. divx5 works correctly now. ;).

gst/avi/gstavimux.c

index 4a980a1..ee39216 100644 (file)
@@ -1257,9 +1257,12 @@ gst_avimux_do_video_buffer (GstAviMux *avimux)
   }
   else
   {
+    guint flags = 0x2;
+    if (GST_BUFFER_FLAG_IS_SET (data, GST_BUFFER_KEY_UNIT))
+      flags |= 0x10;
     avimux->data_size += total_size;
     avimux->num_frames++;
-    gst_avimux_add_index(avimux, "00db", 0x12, GST_BUFFER_SIZE(data));
+    gst_avimux_add_index(avimux, "00db", flags, GST_BUFFER_SIZE(data));
   }
 
   gst_pad_push(avimux->srcpad, header);