From 64b6d247d4428ce3dadcbe8729cc891a8891c7db Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Fri, 8 May 2009 16:29:20 +0100 Subject: resindvd: Rename the audio munger debug category Rename a debug category: rsn_audiomunge -> rsnaudiomunge. --- ext/resindvd/rsnaudiomunge.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ext/resindvd/rsnaudiomunge.c') diff --git a/ext/resindvd/rsnaudiomunge.c b/ext/resindvd/rsnaudiomunge.c index fc7e552f..c44d7d2e 100644 --- a/ext/resindvd/rsnaudiomunge.c +++ b/ext/resindvd/rsnaudiomunge.c @@ -86,8 +86,8 @@ rsn_audiomunge_class_init (RsnAudioMungeClass * klass) "Jan Schmidt " }; - GST_DEBUG_CATEGORY_INIT (rsn_audiomunge_debug, "rsn_audiomunge", - 0, "Resin audio stream regulator"); + GST_DEBUG_CATEGORY_INIT (rsn_audiomunge_debug, "rsnaudiomunge", + 0, "ResinDVD audio stream regulator"); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_template)); -- cgit v1.2.1 From 79f653fde8d6ff1ecee3147ca8afb42f8cec981a Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Mon, 11 May 2009 11:06:03 +0100 Subject: resindvd: Change the audiomunge debug output. Make sure we always show information about the segment events passing through, even when pre-roll audio buffers aren't going to be needed. --- ext/resindvd/rsnaudiomunge.c | 51 +++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 24 deletions(-) (limited to 'ext/resindvd/rsnaudiomunge.c') diff --git a/ext/resindvd/rsnaudiomunge.c b/ext/resindvd/rsnaudiomunge.c index c44d7d2e..6368c49a 100644 --- a/ext/resindvd/rsnaudiomunge.c +++ b/ext/resindvd/rsnaudiomunge.c @@ -288,15 +288,12 @@ rsn_audiomunge_sink_event (GstPad * pad, GstEvent * event) gst_segment_set_newsegment_full (segment, update, rate, arate, format, start, stop, time); - if (munge->have_audio) { - ret = gst_pad_push_event (munge->srcpad, event); - break; - } - /* * FIXME: - * If the accum >= threshold or we're in a still frame and there's been - * no audio received, then we need to generate some audio data. + * If this is a segment update and accum >= threshold, + * or we're in a still frame and there's been no audio received, + * then we need to generate some audio data. + * * If caused by a segment start update (time advancing in a gap) adjust * the new-segment and send the buffer. * @@ -304,32 +301,38 @@ rsn_audiomunge_sink_event (GstPad * pad, GstEvent * event) * in the closing segment. */ if (!update) { - GST_DEBUG_OBJECT (munge, "Sending newsegment: start %" GST_TIME_FORMAT - " stop %" GST_TIME_FORMAT " accum now %" GST_TIME_FORMAT, + GST_DEBUG_OBJECT (munge, + "Sending newsegment: update %d start %" GST_TIME_FORMAT " stop %" + GST_TIME_FORMAT " accum now %" GST_TIME_FORMAT, update, GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (segment->accum)); ret = gst_pad_push_event (munge->srcpad, event); } - if (segment->accum >= AUDIO_FILL_THRESHOLD || munge->in_still) { - GST_DEBUG_OBJECT (munge, - "Sending audio fill: accum = %" GST_TIME_FORMAT " still-state=%d", - GST_TIME_ARGS (segment->accum), munge->in_still); - - /* Just generate a 100ms silence buffer for now. FIXME: Fill the gap */ - if (rsn_audiomunge_make_audio (munge, segment->start, - GST_SECOND / 10) == GST_FLOW_OK) - munge->have_audio = TRUE; - } else { - GST_LOG_OBJECT (munge, "Not sending audio fill buffer: " - "segment accum below thresh: accum = %" GST_TIME_FORMAT, - GST_TIME_ARGS (segment->accum)); + if (!munge->have_audio) { + if ((update && segment->accum >= AUDIO_FILL_THRESHOLD) + || munge->in_still) { + GST_DEBUG_OBJECT (munge, + "Sending audio fill with ts %" GST_TIME_FORMAT ": accum = %" + GST_TIME_FORMAT " still-state=%d", GST_TIME_ARGS (segment->start), + GST_TIME_ARGS (segment->accum), munge->in_still); + + /* Just generate a 100ms silence buffer for now. FIXME: Fill the gap */ + if (rsn_audiomunge_make_audio (munge, segment->start, + GST_SECOND / 10) == GST_FLOW_OK) + munge->have_audio = TRUE; + } else { + GST_LOG_OBJECT (munge, "Not sending audio fill buffer: " + "Not segment update, or segment accum below thresh: accum = %" + GST_TIME_FORMAT, GST_TIME_ARGS (segment->accum)); + } } if (update) { - GST_DEBUG_OBJECT (munge, "Sending newsegment: start %" GST_TIME_FORMAT - " stop %" GST_TIME_FORMAT " accum now %" GST_TIME_FORMAT, + GST_DEBUG_OBJECT (munge, + "Sending newsegment: update %d start %" GST_TIME_FORMAT " stop %" + GST_TIME_FORMAT " accum now %" GST_TIME_FORMAT, update, GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (segment->accum)); -- cgit v1.2.1 From d7cabb080134403871f7962bf226b36197b4d6c3 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Mon, 11 May 2009 16:09:56 +0100 Subject: resindvd: Increase the amount of filler audio generated When creating a filler audio buffer in rsnaudiomunge, generate a bit more, as audio sinks don't seem to preroll otherwise. This needs a better algorithm in general, to intelligently fill the gap, rather than hard-coding a value. --- ext/resindvd/rsnaudiomunge.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ext/resindvd/rsnaudiomunge.c') diff --git a/ext/resindvd/rsnaudiomunge.c b/ext/resindvd/rsnaudiomunge.c index 6368c49a..50d33be7 100644 --- a/ext/resindvd/rsnaudiomunge.c +++ b/ext/resindvd/rsnaudiomunge.c @@ -318,9 +318,9 @@ rsn_audiomunge_sink_event (GstPad * pad, GstEvent * event) GST_TIME_FORMAT " still-state=%d", GST_TIME_ARGS (segment->start), GST_TIME_ARGS (segment->accum), munge->in_still); - /* Just generate a 100ms silence buffer for now. FIXME: Fill the gap */ + /* Just generate a 200ms silence buffer for now. FIXME: Fill the gap */ if (rsn_audiomunge_make_audio (munge, segment->start, - GST_SECOND / 10) == GST_FLOW_OK) + GST_SECOND / 5) == GST_FLOW_OK) munge->have_audio = TRUE; } else { GST_LOG_OBJECT (munge, "Not sending audio fill buffer: " -- cgit v1.2.1