oggdemux: mark keyframes
authorWim Taymans <wim.taymans@collabora.co.uk>
Sun, 31 Mar 2013 16:54:46 +0000 (18:54 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Sun, 31 Mar 2013 16:57:13 +0000 (18:57 +0200)
Use the mapper to set the delta-unit flag.

ext/ogg/gstoggdemux.c

index 162cfc5..7c0bf6e 100644 (file)
@@ -538,9 +538,11 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
     }
     offset = 0;
     trim = 0;
+    delta_unit = !gst_ogg_stream_packet_is_key_frame (&pad->map, packet);
   } else {
     offset = 0;
     trim = 0;
+    delta_unit = !gst_ogg_stream_packet_is_key_frame (&pad->map, packet);
   }
 
   /* get timing info for the packet */
@@ -576,7 +578,7 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
           pad->current_granule);
     } else if (ogg->segment.rate > 0.0 && pad->current_granule != -1) {
       pad->current_granule += duration;
-      if (gst_ogg_stream_packet_is_key_frame (&pad->map, packet)) {
+      if (!delta_unit) {
         pad->keyframe_granule = pad->current_granule;
       }
       GST_DEBUG_OBJECT (ogg, "interpolating granule %" G_GUINT64_FORMAT,