Commit graph

64 commits

Author SHA1 Message Date
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
Wim Taymans 816f4e791d segment: fix for new core API
Fix for gst_*_segment_full rename.
2011-05-09 18:16:46 +02:00
Sebastian Dröge 64851f12c0 gst: Update for new GstIterator API 2011-05-05 16:03:52 +02:00
Wim Taymans 86a4771f8e remove buffer_alloc 2011-04-29 13:28:17 +02:00
Sebastian Dröge f10a8f0986 gst: Use G_DEFINE_TYPE instead of GST_BOILERPLATE 2011-04-19 11:35:53 +02:00