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 0747b56f8e.
This commit is contained in:
Vincent Penquerc'h 2017-03-17 11:30:04 +00:00
parent 0e65304d5c
commit 29b807685d
2 changed files with 5 additions and 15 deletions

View 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);

View 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;