flacparse: set _OFFSET and _OFFSET_END on outgoing buffers
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 17 Dec 2009 11:45:36 +0000 (12:45 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 8 Apr 2011 17:07:03 +0000 (18:07 +0100)
gst/audioparsers/gstflacparse.c

index d65ba06..684944b 100644 (file)
@@ -1208,17 +1208,25 @@ gst_flac_parse_parse_frame (GstBaseParse * parse, GstBuffer * buffer)
       flacparse->state = GST_FLAC_PARSE_STATE_DATA;
     }
 
+    /* also cater for oggmux metadata */
     if (flacparse->blocking_strategy == 0) {
       GST_BUFFER_TIMESTAMP (buffer) =
           gst_util_uint64_scale (flacparse->sample_number,
           flacparse->block_size * GST_SECOND, flacparse->samplerate);
+      GST_BUFFER_OFFSET_END (buffer) =
+          flacparse->sample_number * flacparse->block_size +
+          flacparse->block_size;
     } else {
       GST_BUFFER_TIMESTAMP (buffer) =
           gst_util_uint64_scale (flacparse->sample_number, GST_SECOND,
           flacparse->samplerate);
+      GST_BUFFER_OFFSET_END (buffer) =
+          flacparse->sample_number + flacparse->block_size;
     }
     GST_BUFFER_DURATION (buffer) =
         GST_FRAMES_TO_CLOCK_TIME (flacparse->block_size, flacparse->samplerate);
+    GST_BUFFER_OFFSET (buffer) =
+        GST_BUFFER_TIMESTAMP (buffer) + GST_BUFFER_DURATION (buffer);
 
     /* Minimal size of a frame header */
     gst_base_parse_set_min_frame_size (GST_BASE_PARSE (flacparse), MAX (16,