Tim-Philipp Müller
7c89a7298a
streamsynchronizer: don't send gap events with huge bogus durations when advancing EOS streams
...
When the input buffers for a stream don't have a duration set,
timestamp_end might still be GST_CLOCK_TIME_NONE. When advancing
EOSed streams via GAP events (with other streams not yet EOS), we
would then use the invalid timestamp_end to calculate the duration
of the gap. This in turn would make baseaudiosink abort, because it
would try to allocate memory for a trizillion samples.
So if buffers don't have a duration set, assume a duration of
one second for stream catch-up purposes, just so we can still
continue to catch up in those cases. And make sure that
timestamp_end is valid before doing calculations with it.
http://bugzilla.gnome.org/show_bug.cgi?id=678530
2012-11-26 19:03:38 +00:00
Tim-Philipp Müller
601aabdf9c
streamsynchronizer: reduce debug log spam a bit
...
Log locking/unlocking with TRACE debug level.
2012-11-25 18:07:04 +00:00
Sebastian Dröge
4f480612e9
streamsynchronizer: Make the element public
...
https://bugzilla.gnome.org/show_bug.cgi?id=688240
2012-11-21 10:29:44 +01:00
Tim-Philipp Müller
5f59b4f7ee
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Sebastian Dröge
b9d4d0cd29
streamsynchronizer: Also send a GAP event to let audio sinks start their clock in case they did not have enough data yet
2012-10-24 13:34:15 +02:00
Sebastian Dröge
6a31051feb
streamsynchronizer: Use correct timestamp/duration for the GAP events
2012-10-24 13:29:45 +02:00
Sebastian Dröge
52d48109bc
streamsynchronizer: Send GAP events to advance streams
2012-10-24 13:25:19 +02:00
Sebastian Dröge
7b12afa4cb
streamsynchronizer: Create a GAP event with a sensible timestamp
2012-10-24 11:19:06 +02:00
Sebastian Dröge
356579157e
streamsynchronizer: Also propagate return value of pushing GAP event upstream
2012-10-23 18:21:32 +02:00
Sebastian Dröge
120c7be970
streamsynchronizer: Return TRUE from the EOS handler
2012-10-23 17:38:43 +02:00
Tim-Philipp Müller
082cedef79
streamsynchronizer: don't shadow function parameter
2012-09-14 00:39:09 +01:00
Edward Hervey
b5090d2aca
streamsynchronizer: Don't wait on non-time streams
...
streams with non-TIME segments will not have timestamps ...
... and therefore will never unblock the other streams.
Fixes blocking issue when using playbin suburi feature
2012-09-11 16:29:21 +02:00
Mark Nauwelaerts
782adaf3ab
streamsynchronizer: do not leak EOS events
2012-09-06 15:03:49 +02:00
Wim Taymans
b26f35c3a4
streamsync: only remove DISCONT when needed
...
Check if the buffer is DISCONT before making a potentially expensive copy to
unset the DISCONT flag.
2012-09-06 13:37:11 +02:00
Mark Nauwelaerts
d3a0269695
streamsynchronizer: use GAP event to trigger preroll
...
... rather than an empty buffer
2012-09-05 16:59:12 +02:00
Wim Taymans
f3158569c6
streamsync: unblock gcond on flush-stop
...
See https://bugzilla.gnome.org/show_bug.cgi?id=680441
2012-09-04 11:09:50 +02:00
Edward Hervey
d86f6132ed
streamsynchronizer: Handle stream switching
...
* Update outgoing segment.base with accumulated time, ensuring all
streams are synchronized.
* Only consider streams as "new" is they have a STREAM_START event
with a different seqnum.
* Use GstStream segment.base instead of separate variable to store
the past running time.
* Disable passthrough
* Switch to glib 2.32 GMutex/GCond
* Avoid getting pad parent the expensive way
* Minor other fixes
2012-08-14 18:56:30 +02:00
Sebastian Dröge
628bc44ca5
streamsynchronizer: Unblock streams on FLUSH_START events
2012-07-27 12:59:20 +02:00
Edward Hervey
f72f4c09c9
streamsynchronizer: Re-enable stream update
...
Not 100% perfect yet, but allows people to test
2012-07-19 16:12:22 +02:00
Edward Hervey
a0fbf92d43
playback: Remove custom stream-change event
...
Applications can now use the STREAM_START message to know if a new
stream has started
2012-07-12 09:51:35 +02:00
Tim-Philipp Müller
3c6a3ad629
Use new gst_element_class_set_static_metadata()
2012-04-10 00:45:16 +01:00
Sebastian Dröge
68c0790817
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/interfaces/propertyprobe.c
sys/xvimage/xvimagesink.c
2012-01-25 11:50:54 +01:00
Mark Nauwelaerts
71f70c98ef
streamsynchronizer: avoid unlikely NULL dereference
2012-01-19 16:43:40 +01:00
Wim Taymans
3d42f0f6ed
port to new glib thread API
2012-01-19 11:36:17 +01:00
Sebastian Dröge
a4104c54eb
streamsynchronizer: Don't unref the parent in the event function
2012-01-10 15:59:27 +01:00
Sebastian Dröge
dc8984d76c
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/app/gstappsrc.c
gst-libs/gst/audio/multichannel.h
gst-libs/gst/video/videooverlay.c
gst/playback/gstplaysink.c
gst/playback/gststreamsynchronizer.c
tests/check/Makefile.am
win32/common/libgstvideo.def
2012-01-10 13:15:12 +01:00
Mark Nauwelaerts
3e0d35aec4
streamsynchronizer: force fallback buffer_alloc when other pad not available
...
... to avoid unnecessary spurious errors (upon e.g. shutdown).
If a real error is applicable in this unusual circumstance (missing other pad),
other (STREAM_LOCK protected) call paths can take care of that.
2012-01-03 11:07:17 +01:00
Mark Nauwelaerts
af28016d0a
streamsynchronizer: avoid crashing when operating on released pad
2012-01-03 11:07:15 +01:00
Tim-Philipp Müller
fb6d09055a
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/alsa/gstalsadeviceprobe.c
ext/alsa/gstalsamixer.c
ext/pango/gsttextoverlay.c
ext/pango/gsttextoverlay.h
gst-libs/gst/audio/gstaudiobasesink.c
gst-libs/gst/audio/gstaudioringbuffer.c
gst-libs/gst/audio/gstaudiosrc.c
gst-libs/gst/video/Makefile.am
gst-libs/gst/video/video.c
gst/encoding/gststreamcombiner.c
gst/encoding/gststreamsplitter.c
gst/playback/gstplaybasebin.c
gst/playback/gststreamsynchronizer.c
gst/playback/gstsubtitleoverlay.c
gst/playback/gsturidecodebin.c
sys/xvimage/xvimagesink.c
tests/examples/Makefile.am
win32/common/libgstvideo.def
Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
Tim-Philipp Müller
5440ae3c18
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-04 20:50:25 +00:00
Tim-Philipp Müller
0d98aa25b8
Work around deprecated thread API in glib master
...
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.
Replace g_thread_create() with g_thread_try_new().
2011-12-04 17:16:30 +00:00
Vincent Penquerc'h
96374054ac
various: fix pad template leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:09:02 +00:00
Wim Taymans
e302833e65
add parent to pad functions
2011-11-17 12:48:25 +01:00
Wim Taymans
9e8e01502e
add parent to internal links
2011-11-16 17:50:03 +01:00
Wim Taymans
2202511e77
add parent to query function
2011-11-16 17:25:17 +01:00
Wim Taymans
ab9ffa93f5
change getcaps to query
...
Add sink and src event functions in rtpbasepayload
Add query vmethod to rtpbasepayload.
2011-11-15 18:04:16 +01:00
Wim Taymans
f2ab0b8f19
upates for new ACCEPT_CAPS query
2011-11-09 17:37:31 +01:00
Wim Taymans
cf8481b990
fix pad template names for request pads
2011-11-04 10:49:48 +01:00
Wim Taymans
8fe31fa12e
gststreamsynchronizer: don't abuse PREROLL flag
...
the preroll flag is not implemented and will disappear soon.
2011-08-15 18:38:04 +02:00
Josep Torra
5629ed74b3
Fix debug statements
...
Fixes build on MacOSX
Signed-off-by: Edward Hervey <edward.hervey@collabora.co.uk>
2011-08-10 11:15:41 +02:00
Tim-Philipp Müller
8573dbdf66
playback: rename playbin2 to playbin
...
But keep source file name as-is for now.
2011-06-15 00:06:09 +01:00
Sebastian Dröge
884213b8b8
base: Update for SEGMENT event parse API changes
2011-05-18 17:23:18 +02:00
Sebastian Dröge
318ed07598
Revert "-base_port to new query API"
...
This reverts commit c9f4e0676b
.
2011-05-17 11:25:31 +02:00
Sebastian Dröge
616181901e
playback: Update for negotiation related API changes
2011-05-16 15:35:40 +02:00
Wim Taymans
94dfe80f71
-base: port to new SEGMENT API
2011-05-16 13:48:11 +02:00
Wim Taymans
c9f4e0676b
-base_port to new query API
2011-05-10 18:39:07 +02:00
Wim Taymans
7cad11e912
-base: fix for now request pad API
2011-05-10 16:44:37 +02:00
Wim Taymans
556afdef97
message: don't acces the structure directly
2011-05-10 13:35:49 +02:00
Wim Taymans
5dbc49ccf7
event: don't access the event structure
...
the event structure is now hidden, so don't access it directly.
2011-05-10 11:54:30 +02:00
Wim Taymans
bdb4676455
qos: _qos_full -> _qos
2011-05-09 18:53:03 +02:00