diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2007-06-09 15:33:32 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2007-06-09 15:33:32 +0000 |
commit | e05417a077e8d85cafe68bd215c6b0fd133b0022 (patch) | |
tree | fde3254974bdbbc506b527a78e7a474c115f00d5 /ext/wavpack/gstwavpackparse.c | |
parent | 06d12027fa3ea6540724a958b7557adb65137744 (diff) |
ext/wavpack/: Improve discont handling by checking if the next Wavpack block has the expected, following block index.
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
(gst_wavpack_dec_chain):
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
(gst_wavpack_parse_push_buffer):
* ext/wavpack/gstwavpackparse.h:
Improve discont handling by checking if the next Wavpack block has
the expected, following block index.
Diffstat (limited to 'ext/wavpack/gstwavpackparse.c')
-rw-r--r-- | ext/wavpack/gstwavpackparse.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/wavpack/gstwavpackparse.c b/ext/wavpack/gstwavpackparse.c index 61c94f1e..0c77d555 100644 --- a/ext/wavpack/gstwavpackparse.c +++ b/ext/wavpack/gstwavpackparse.c @@ -218,6 +218,7 @@ gst_wavpack_parse_reset (GstWavpackParse * parse) parse->channels = 0; gst_segment_init (&parse->segment, GST_FORMAT_UNDEFINED); + parse->next_block_index = 0; parse->current_offset = 0; parse->need_newsegment = TRUE; @@ -890,11 +891,13 @@ gst_wavpack_parse_push_buffer (GstWavpackParse * wvparse, GstBuffer * buf, GST_BUFFER_OFFSET (buf) = header->block_index; GST_BUFFER_OFFSET_END (buf) = header->block_index + header->block_samples; - if (wvparse->discont) { + if (wvparse->discont || wvparse->next_block_index != header->block_index) { GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT); wvparse->discont = FALSE; } + wvparse->next_block_index = header->block_index + header->block_samples; + gst_buffer_set_caps (buf, GST_PAD_CAPS (wvparse->srcpad)); GST_LOG_OBJECT (wvparse, "Pushing buffer with time %" GST_TIME_FORMAT, |