From 29b807685d3c962bbe8afe351c5dca97d59eb5e0 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Fri, 17 Mar 2017 11:30:04 +0000 Subject: [PATCH] Revert "flacparse: fix playback if sample number does not start at 0" 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 | 19 +++++-------------- gst/audioparsers/gstflacparse.h | 1 - 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c index d59e260..819edde 100644 --- a/gst/audioparsers/gstflacparse.c +++ b/gst/audioparsers/gstflacparse.c @@ -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); diff --git a/gst/audioparsers/gstflacparse.h b/gst/audioparsers/gstflacparse.h index f4f36b9..2ce282e 100644 --- a/gst/audioparsers/gstflacparse.h +++ b/gst/audioparsers/gstflacparse.h @@ -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; -- 2.7.4