From dbf7690ce4e90aa89615e8920f75b78f20f9dc4e Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Tue, 29 Aug 2006 10:51:12 +0000 Subject: [PATCH] ext/vorbis/vorbisenc.c: Ignore explicit DISCONT marked on buffers (which is often spurious, particularly when using m... Original commit message from CVS: * ext/vorbis/vorbisenc.c: (gst_vorbis_enc_push_buffer), (gst_vorbis_enc_buffer_check_discontinuous), (gst_vorbis_enc_chain): Ignore explicit DISCONT marked on buffers (which is often spurious, particularly when using multiple segments), in favour of solely using the timestamps/durations. --- ChangeLog | 9 +++++++++ ext/vorbis/vorbisenc.c | 9 +++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 75b761a411..8a9f3c7b60 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-08-29 Michael Smith + + * ext/vorbis/vorbisenc.c: (gst_vorbis_enc_push_buffer), + (gst_vorbis_enc_buffer_check_discontinuous), + (gst_vorbis_enc_chain): + Ignore explicit DISCONT marked on buffers (which is often spurious, + particularly when using multiple segments), in favour of solely + using the timestamps/durations. + 2006-08-29 Edward Hervey * gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain): diff --git a/ext/vorbis/vorbisenc.c b/ext/vorbis/vorbisenc.c index a148563087..5fc78f379e 100644 --- a/ext/vorbis/vorbisenc.c +++ b/ext/vorbis/vorbisenc.c @@ -897,8 +897,8 @@ gst_vorbis_enc_push_buffer (GstVorbisEnc * vorbisenc, GstBuffer * buffer) { vorbisenc->bytes_out += GST_BUFFER_SIZE (buffer); - GST_DEBUG_OBJECT (vorbisenc, "Pushing buffer with GP %lld", - GST_BUFFER_OFFSET_END (buffer)); + GST_DEBUG_OBJECT (vorbisenc, "Pushing buffer with GP %lld, ts %lld", + GST_BUFFER_OFFSET_END (buffer), GST_BUFFER_TIMESTAMP (buffer)); return gst_pad_push (vorbisenc->srcpad, buffer); } @@ -1000,10 +1000,7 @@ gst_vorbis_enc_buffer_check_discontinuous (GstVorbisEnc * vorbisenc, { gboolean ret = FALSE; - if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) { - GST_DEBUG_OBJECT (vorbisenc, "Discont set on incoming buffer"); - ret = TRUE; - } else if (GST_BUFFER_TIMESTAMP (buffer) != GST_CLOCK_TIME_NONE && + if (GST_BUFFER_TIMESTAMP (buffer) != GST_CLOCK_TIME_NONE && vorbisenc->expected_ts != GST_CLOCK_TIME_NONE && GST_BUFFER_TIMESTAMP (buffer) != vorbisenc->expected_ts) { /* It turns out that a lot of elements don't generate perfect streams due