diff options
author | Jan Schmidt <thaytan@mad.scientist.com> | 2009-01-08 12:42:18 +0000 |
---|---|---|
committer | Jan Schmidt <thaytan@mad.scientist.com> | 2009-01-08 12:42:18 +0000 |
commit | 672051c5eb79ca9acaa6f2d056322d2ad0f3ea31 (patch) | |
tree | 1555e14719db3e7ed20f54d7b428c53df8a572f1 /ext/resindvd/rsnaudiomunge.c | |
parent | acd634eafa71e5688ba707962612357470f6c97c (diff) | |
download | gst-plugins-bad-672051c5eb79ca9acaa6f2d056322d2ad0f3ea31.tar.gz gst-plugins-bad-672051c5eb79ca9acaa6f2d056322d2ad0f3ea31.tar.bz2 gst-plugins-bad-672051c5eb79ca9acaa6f2d056322d2ad0f3ea31.zip |
ext/resindvd/: Add support for time based seeking.
Original commit message from CVS:
* ext/resindvd/resindvdbin.c:
* ext/resindvd/resindvdsrc.c:
* ext/resindvd/resindvdsrc.h:
* ext/resindvd/rsnaudiomunge.c:
Add support for time based seeking.
Make setting dvd:// reset to the default device.
Make the 'audiomunge' element send any new segment start before
the 'gap filler' buffer it generates, and any segment closes
after.
Fixes: #566957
Diffstat (limited to 'ext/resindvd/rsnaudiomunge.c')
-rw-r--r-- | ext/resindvd/rsnaudiomunge.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/ext/resindvd/rsnaudiomunge.c b/ext/resindvd/rsnaudiomunge.c index 457be163..500671c8 100644 --- a/ext/resindvd/rsnaudiomunge.c +++ b/ext/resindvd/rsnaudiomunge.c @@ -311,6 +311,15 @@ rsn_audiomunge_sink_event (GstPad * pad, GstEvent * event) * Otherwise, send the buffer before the newsegment, so that it appears * 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_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) { g_print ("*********** Sending audio fill: accum = %" GST_TIME_FORMAT " still-state=%d\n", GST_TIME_ARGS (segment->accum), @@ -326,12 +335,15 @@ rsn_audiomunge_sink_event (GstPad * pad, GstEvent * event) GST_TIME_ARGS (segment->accum)); } - GST_DEBUG_OBJECT (munge, "Sending newsegment: start %" GST_TIME_FORMAT - " stop %" GST_TIME_FORMAT " accum now %" GST_TIME_FORMAT, - GST_TIME_ARGS (start), GST_TIME_ARGS (stop), - 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_TIME_ARGS (start), GST_TIME_ARGS (stop), + GST_TIME_ARGS (segment->accum)); + + ret = gst_pad_push_event (munge->srcpad, event); + } - ret = gst_pad_push_event (munge->srcpad, event); break; } case GST_EVENT_CUSTOM_DOWNSTREAM: |