Revert "flacparse: fix playback if sample number does not start at 0"
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fri, 17 Mar 2017 11:30:04 +0000 (11:30 +0000)
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Fri, 17 Mar 2017 11:30:04 +0000 (11:30 +0000)
This breaks gst-validate on the build server (though not locally),
and a unit test, and I can't run unit tests right now for some
unrelated reason.

This reverts commit 0747b56f8e7f4731d67f8d13a4bdc453dde0fdf7.

gst/audioparsers/gstflacparse.c
gst/audioparsers/gstflacparse.h

index d59e260..819edde 100644 (file)
@@ -801,7 +801,7 @@ gst_flac_parse_handle_frame (GstBaseParse * parse,
     framesize = map.size;
     goto cleanup;
   } else if ((GST_READ_UINT16_BE (map.data) & 0xfffe) == 0xfff8) {
-    gboolean ret, is_first = flacparse->offset == GST_CLOCK_TIME_NONE;
+    gboolean ret;
     guint next;
 
     flacparse->offset = GST_BUFFER_OFFSET (buffer);
@@ -811,15 +811,9 @@ gst_flac_parse_handle_frame (GstBaseParse * parse,
     GST_DEBUG_OBJECT (flacparse, "Found sync code");
     ret = gst_flac_parse_frame_is_valid (flacparse, map.data, map.size, &next);
     if (ret) {
-      if (is_first) {
-        GST_INFO_OBJECT (flacparse, "First sample number is %" G_GUINT64_FORMAT,
-            flacparse->sample_number);
-        flacparse->first_sample_number = flacparse->sample_number;
-      }
       framesize = next;
       goto cleanup;
     }
-
     /* If we're at EOS and the frame was not valid, drop it! */
     if (G_UNLIKELY (GST_BASE_PARSE_DRAINING (flacparse))) {
       GST_WARNING_OBJECT (flacparse, "EOS");
@@ -1549,7 +1543,6 @@ gst_flac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
   GstBuffer *buffer = frame->buffer, *sbuffer;
   GstMapInfo map;
   GstFlowReturn res = GST_FLOW_ERROR;
-  guint64 relative_sample_number;
 
   gst_buffer_map (buffer, &map, GST_MAP_READ);
 
@@ -1657,21 +1650,19 @@ gst_flac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
     }
 
     /* also cater for oggmux metadata */
-    relative_sample_number =
-        flacparse->sample_number - flacparse->first_sample_number;
     if (flacparse->blocking_strategy == 0) {
       GST_BUFFER_PTS (buffer) =
-          gst_util_uint64_scale (relative_sample_number,
+          gst_util_uint64_scale (flacparse->sample_number,
           flacparse->block_size * GST_SECOND, flacparse->samplerate);
       GST_BUFFER_OFFSET_END (buffer) =
-          relative_sample_number * flacparse->block_size +
+          flacparse->sample_number * flacparse->block_size +
           flacparse->block_size;
     } else {
       GST_BUFFER_PTS (buffer) =
-          gst_util_uint64_scale (relative_sample_number, GST_SECOND,
+          gst_util_uint64_scale (flacparse->sample_number, GST_SECOND,
           flacparse->samplerate);
       GST_BUFFER_OFFSET_END (buffer) =
-          relative_sample_number + flacparse->block_size;
+          flacparse->sample_number + flacparse->block_size;
     }
 
     GST_BUFFER_DTS (buffer) = GST_BUFFER_PTS (buffer);
index f4f36b9..2ce282e 100644 (file)
@@ -74,7 +74,6 @@ struct _GstFlacParse {
   guint8 blocking_strategy;
   guint16 block_size;
   guint64 sample_number;
-  guint64 first_sample_number;
   gboolean strategy_checked;
 
   gboolean sent_codec_tag;