Commit graph

280 commits

Author SHA1 Message Date
Stefan Sauer
ce1b1d82e3 adder: sink event handling fix
Turn _sink_event() into the collectpads event function and merge the logic from
the recently added gst_adder_event. Drop flush_start events as we allready
handle them on the src-pad side. Fixes #670850.
2012-02-28 20:54:54 +01:00
Stefan Sauer
3975c10907 adder: include event name in log message 2012-02-27 12:04:38 +01:00
Olivier Crête
e391118125 Use macros to register boxed types thread safely 2012-01-28 14:53:21 +00:00
Sebastian Dröge
c07271ea02 adder: Update for new collectpads2 event handling API 2012-01-26 10:45:53 +01:00
Edward Hervey
0c60a5c7a3 adder: Remove deprecation disabling
It's actually fixed in 0.11
2012-01-25 15:02:09 +01:00
Edward Hervey
47fc70ea79 Suppress deprecations in selected files 2012-01-25 14:49:44 +01:00
Edward Hervey
629d734e83 Suppress deprecations in selected files 2012-01-25 12:51:46 +01:00
Wim Taymans
fcdc385aa1 port to new map API 2012-01-25 12:30:53 +01:00
Wim Taymans
3d42f0f6ed port to new glib thread API 2012-01-19 11:36:17 +01:00
Tim-Philipp Müller
576bbb4fd8 Remove compatibility code cruft for old GLib versions 2012-01-18 17:22:21 +00:00
Sebastian Dröge
8cd8965e19 gst: Add new layout field to all raw audio caps 2012-01-05 10:34:25 +01:00
Edward Hervey
f562a29284 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
	gst-libs/gst/tag/gstexiftag.c
	gst/adder/gstadder.c
	gst/adder/gstadder.h
	gst/playback/gstdecodebin2.c
	gst/playback/gstsubtitleoverlay.c
	tests/check/libs/tag.c
2011-12-30 13:21:35 +01:00
Vincent Penquerc'h
85c10b0b24 adder: do not send too many flush-stop events
GstCollectPads2 now allows us to override the event function,
so we can withhold flush stop events if none are to be sent.

https://bugzilla.gnome.org/show_bug.cgi?id=666379
2011-12-16 20:12:01 +00:00
Vincent Penquerc'h
1da30adc1a adder: use the stream lock where appropriate
GstCollectPads2 locking was changed from GstCollectPads to use
the stream lock instead of the object lock for those cases, so
change it so here as well to match.

https://bugzilla.gnome.org/show_bug.cgi?id=666379
2011-12-16 17:36:02 +00:00
Vincent Penquerc'h
bcaf5890aa adder: send a flush event before trying to get the stream lock
This avoids hanging when the streaming thread is busy in _chain
waiting for preroll.

https://bugzilla.gnome.org/show_bug.cgi?id=666379
2011-12-16 17:36:02 +00:00
Vincent Penquerc'h
a3c5abf97f adder: port to GstCollectPads2 2011-12-14 18:26:07 +00:00
Tim-Philipp Müller
177525f89f Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst-libs/gst/netbuffer/gstnetbuffer.c
	gst/ffmpegcolorspace/avcodec.h
	gst/ffmpegcolorspace/gstffmpegcodecmap.c
	gst/ffmpegcolorspace/imgconvert.c
	gst/ffmpegcolorspace/imgconvert_template.h
	gst/ffmpegcolorspace/mem.c
	gst/playback/README
	gst/playback/gstplaybasebin.c
	gst/playback/gstplaybasebin.h
	gst/playback/gstplaybin.c
	sys/v4l/v4lmjpegsrc_calls.c
	sys/v4l/videodev_mjpeg.h
	tests/check/elements/gnomevfssink.c
2011-12-02 11:10:17 +00:00
Piotr Fusik
14644457b0 various: typo fixes
Fix typos in code and docs. Fixes. #658984
2011-12-02 12:03:27 +01:00
Stefan Sauer
0cce8ab97d adder: be more graceful in the clipfunction
Doing dynamic pipelines is hard in 0.10. As we don't have the sticky events in
0.10 and sending such events in special elements like adder and tee was outvoted
on last attempt, be graceful to the misbehaviour instead.
2011-12-01 12:03:17 +01:00
Stefan Sauer
089c760993 adder: fill the audio-info that we use and not some random other one 2011-11-29 14:47:37 +01:00
Stefan Sauer
1cea9c851c adder: unbreak adder
There was one line too much removed when porting.
2011-11-29 14:22:19 +01:00
Stefan Sauer
9debd13665 adder: fix deadly setcaps recursion
Use a flag to avoid calling setcaps until our stack is exhausted. I don't see how this would be useful.
2011-11-29 10:42:16 +01: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
Stefan Sauer
67364dff4c collectpads: port API changes 2011-11-17 08:43:23 +01:00
Wim Taymans
2202511e77 add parent to query function 2011-11-16 17:25:17 +01:00
Wim Taymans
28157e6f21 _query_peer_*() -> _peer_query_*() 2011-11-15 18:04:17 +01:00
Wim Taymans
026ec68f75 _peer_get_caps() -> _peer_query_caps() 2011-11-15 18:04: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
Stefan Sauer
6cc887c53b adder: don't ref NULL caps 2011-11-04 22:00:43 +01:00
Wim Taymans
cf8481b990 fix pad template names for request pads 2011-11-04 10:49:48 +01:00
Wim Taymans
f1088ed647 update for UNEXPECTED -> EOS flowreturn 2011-10-10 11:39:52 +02:00
Edward Hervey
17bfba09f1 Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggdemux.c
	ext/pango/gsttextoverlay.c
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/audio/gstbaseaudiosrc.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
2011-09-23 18:27:11 +02:00
Stefan Sauer
b678f6cf69 adder: don't access the event after pushing
Fixes valgrind warnings.
2011-09-15 16:47:26 +02:00
Wim Taymans
33196cdd2c audio: change audio format syntax a little
Remove the _ in front of the endianness prefix.
Remove the _3 postfix for the 24 bits formats.
Add a _32 postfix after the formats that occupy extra space beyond their
natural size.
The result is that the GST_AUDIO_NE() macro can simply append the endianness
after all formats and that we only specify a different sample width when it is
different from the natural size of the sample. This makes things more consistent
and follows the pulseaudio conventions instead of the alsa ones.
2011-09-06 12:06:39 +02:00
Wim Taymans
f870178234 adder: port to new caps 2011-08-19 17:05:55 +02:00
Wim Taymans
dae848818d audio: rework audio caps.
Rework the audio caps similar to the video caps. Remove
width/depth/endianness/signed fields and replace with a simple string
format and media type audio/x-raw.
Create a GstAudioInfo and some helper methods to parse caps.
Remove duplicate code from the ringbuffer and replace with audio info.
Use AudioInfo in the base audio filter class.
Port elements to new API.
2011-08-18 19:15:03 +02:00
Wim Taymans
246622b1e8 adder: fix after merge 2011-08-17 10:47:20 +02:00
Wim Taymans
33467d9629 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/pango/gsttextoverlay.c
	ext/theora/gsttheoradec.c
	gst/adder/gstadder.c
	gst/adder/gstadder.h
	gst/audioresample/gstaudioresample.c
	gst/encoding/gstencodebin.c
	gst/playback/gstdecodebin.c
	gst/playback/gstdecodebin2.c
	tests/check/elements/decodebin2.c
	tests/check/elements/playbin-compressed.c
	win32/common/libgsttag.def
2011-08-16 18:01:14 +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
bb65192151 ext,gst: update for query API changes 2011-07-27 01:16:53 +01:00
Stefan Kost
9a26e6c7bc adder: rework pending event handling
Use atomic ops on pending flags. Rename the segment_pending to
new_segment_pending. Set new_segment_pending not when we received seek, but
when we received the first upstream new_segment.
2011-07-26 12:37:11 +02:00
Stefan Kost
a8228b062a adder: more debug logging for events 2011-07-26 12:37:11 +02:00
Wim Taymans
db999572a8 -base: fix for flush_stop event API change 2011-06-10 11:59:53 +02:00
Wim Taymans
beb864bd93 -base: use caps event instead of setcapsfunction 2011-06-07 10:58:27 +02:00
Wim Taymans
c88ee10c9b Merge branch 'master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
2011-06-06 16:27:12 +02:00
David Schleef
836081abee adder: Work around changes in g_atomic API
See #651514 for details.
2011-06-04 13:36:55 -07:00
Sebastian Dröge
a46485e357 gst: Update for caps/pad template related API changes 2011-05-17 13:06:01 +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
48654cdacf adder: 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
816f4e791d segment: fix for new core API
Fix for gst_*_segment_full rename.
2011-05-09 18:16:46 +02:00
Wim Taymans
ec57868488 -base: don't use buffer caps
Port to newest 0.11 core API, remove GST_PAD_CAPS and GST_BUFFER_CAPS.
2011-05-09 13:05:12 +02:00
Wim Taymans
df54ba57a9 adder: fix getcaps function
Explicitely get the possible caps in the sinkpad instead of using an old removed
function.
2011-05-08 13:24:30 +02:00
Sebastian Dröge
64851f12c0 gst: Update for new GstIterator API 2011-05-05 16:03:52 +02:00
Sebastian Dröge
f10a8f0986 gst: Use G_DEFINE_TYPE instead of GST_BOILERPLATE 2011-04-19 11:35:53 +02:00
Sebastian Dröge
0759ce8533 Merge branch 'master' into 0.11 2011-04-18 13:23:32 +02:00
Tim-Philipp Müller
82a791519c gst: update disted orc backup code 2011-04-16 15:59:45 +01:00
Wim Taymans
6e160bed3d Merge branch 'master' into 0.11
Conflicts:
	android/alsa.mk
	android/app.mk
	android/app_plugin.mk
	android/audio.mk
	android/audioconvert.mk
	android/decodebin.mk
	android/decodebin2.mk
	android/gdp.mk
	android/interfaces.mk
	android/netbuffer.mk
	android/pbutils.mk
	android/playbin.mk
	android/queue2.mk
	android/riff.mk
	android/rtp.mk
	android/rtsp.mk
	android/sdp.mk
	android/tag.mk
	android/tcp.mk
	android/typefindfunctions.mk
	android/video.mk
2011-04-11 11:37:51 +02:00
Alessandro Decina
030f639a8e android: make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the
needed Android.mk files.
Androgenizer can be found here:
http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:23:21 +02:00
Wim Taymans
3b03e23559 plugins: port some plugins to the new memory API 2011-03-27 16:35:28 +02:00
Leo Singer
27178f7aff adder: Fill in offset_end field of outgoing buffers
... rather than leave it as GST_BUFFER_OFFSET_NONE

Fix bug #642942.
2011-02-24 13:28:13 +01:00
Edward Hervey
3fe2777b54 Revert "oggmux,adder: Check if collectpads has been freed"
This reverts commit 6d150873e8.

Depends on a core commit that was reverted.
2011-02-21 12:04:09 +01:00
David Schleef
6d150873e8 oggmux,adder: Check if collectpads has been freed
Core now calls release_pad in finalize, which is usually after
the collectpads has been unreffed.
2011-02-20 23:49:54 -08:00
David Schleef
bec69e20ae orc: update generated files to fix MSVC compile issues 2010-09-16 18:03:23 -07:00
Sebastian Dröge
18b282e49f orc: Fix generated source files 2010-09-10 08:43:17 +02:00
Sebastian Dröge
9b85b13d80 adder: Do debug category initialization in plugin_init again 2010-09-09 11:12:56 +02:00
Sebastian Dröge
3c43dbfc51 orc: Update generated source files everywhere 2010-09-09 10:59:59 +02:00
Sebastian Dröge
8ba4b70118 Revert "Revert "Use init functions for Orc code""
This reverts commit 93aa13639d.

Everything should work now after regenerating the disted source files.
2010-09-09 10:57:41 +02:00
Stefan Kost
c50104c94e adder: use GST_BOILERPALTE macro 2010-09-01 10:07:02 +03:00
Wim Taymans
93aa13639d Revert "Use init functions for Orc code"
This reverts commit b2051090b4.

Fixes the build again until someone pushes the regenerated .c/.h
files too.
2010-08-27 11:49:47 +02:00
David Schleef
b2051090b4 Use init functions for Orc code 2010-08-26 17:03:13 -07:00
Alessandro Decina
842a6c64c5 adder: Make sure FLUSH_STOP is always sent after a flushing seek.
Send FLUSH_STOP right after forwarding the seek event upstream if necessary.
This makes sure that adder->srcpad is not left flushing if seeking fails or if
upstream is blocked.

The same fix was already applied to videomixer in 49b2a946.
2010-08-24 11:43:23 +02:00
Tim-Philipp Müller
b16e7e8fa2 gst: update orc files 2010-06-26 18:19:33 +01:00
David Schleef
c4ab9c0de8 adder: convert from liboil to orc 2010-06-07 23:58:53 -07:00
Stefan Kost
274f80c7a1 adder: only accept seek-types none and set
Previously we were also acting on cur and end, but treating them like none.
2010-04-30 09:24:14 +03:00
Stefan Kost
ab223520ed adder: rework timestamping
Adder was using always incrementing timestamps. Seeking was done by setting the
position in the newsegment event. This was failing when doing segmented seeks
with rate<0.0, as offset (and thus timestamp) would go below 0.

Now we take both cur and end from the seek event. We construct newsegment events
depending including cur and end from the seek event. We set position to the
start of the segment. Timestamp is set to start or end of segment depending on
rate. Offset is recalculated.
2010-04-30 09:24:13 +03:00
Stefan Kost
57cc1150a9 adder: add support for negative playback rates
Decrement sample counter when playing backwards. Set proper segment when playing
backwards (0..cur instead or cur..-1). Add more logging and fix a format string.
2010-04-11 23:23:39 +03:00
Wim Taymans
b44a5c8dc7 adder: don't hold object lock when calling peer elements
Do not hold the object lock while we call methods on peer elements as this can
lead to deadlocks.

Fixes #608179
2010-01-28 17:43:47 +01:00
Wim Taymans
775636e734 adder: be a lot smarter with buffer management
Detect EOS faster.
Try to reuse one of the input buffer as the output buffer. This usually works
and avoids an allocation and a memcpy.
Be smarter with GAP buffers so that they don't get mixed or cleared at all. Also
try to use a GAP buffer as the output buffer when all input buffers are GAP
buffers.
2009-12-24 19:56:55 +01:00
Wim Taymans
59ace1b9ee adder: use collectpads clipping function
Install a clipping function in the collectpads and use the audio clipping helper
function to perform clipping to the segment boundaries.

Fixes #590265
2009-12-24 16:30:23 +01:00
Wim Taymans
66ae01eced adder: fix juvenile comment 2009-12-24 13:58:52 +01:00
Stefan Kost
3d73a7458a adder: make events succeed, if they succed on atleast one pad 2009-11-19 21:28:23 +02:00
Tim-Philipp Müller
6f4c1ac583 Remove GST_DEBUG_FUNCPTR where they're pointless
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-28 00:59:35 +00:00
Stefan Kost
e7368354d5 adder: improve caps filter functionality. Fixes #590146.
Also use the capsfilter if there is no src-peer as the caps constrain what
we can do. Don't create any_caps as a default, as we check for NULL to skip the
filtering. This is a (small) performance regression as we always intersect
otherwise.
2009-08-31 22:48:01 +03:00
Edward Hervey
8cd1b5209b gst: Remove dead assignments and resulting unused variables 2009-08-08 15:54:02 +02:00
Stefan Kost
7205bbc031 adder: reset pending flush-stop flag in state_changed. (mostly) Fixes #590146. 2009-07-30 13:45:42 +03:00
Edward Hervey
3708ca37a8 gstadder: Don't forget to free pending events on flush/dispose.
Fixes #588747
2009-07-20 12:42:32 +02:00
Edward Hervey
50b0cf2c03 adder: Collect incoming tag events and send them after newsegment. Fixes #588747 2009-07-19 10:49:17 +02:00
Stefan Kost
94baad7490 adder: add since tags to docs 2009-07-10 23:27:11 +01:00
Stefan Kost
725bd20045 adder: add a caps-property to avoid to need to plug a capsfilter afterwards
Adder can only handle one common format accross the pads. Thus one needed to add
a capsfilter afterwards and manage the caps. Now one can simply set the caps on
the property.
2009-07-10 20:06:28 +01:00
Stefan Kost
da27fd57e8 adder: keep sending newsegments after seeking
Adder sends with timestamps from 0 upwards. After seeking we need to send
new-segments to get correct positions-queries.
2009-07-06 22:35:14 +01:00
Edward Hervey
c3adf88621 adder: Call set_flushing(TRUE) for flushing seeks *when* the streaming is stopped.
This ensures that collectpads' cookie is properly updated so that when the streaming
threads will restart and be checking for the flushing status of all pads there will
be no inconsistent state.
2009-07-05 21:32:20 +02:00
Wim Taymans
09737d728b adder: only unflush when we flushed before
Ass suggested by Stefan Kost:
Keep track of when the sinkpad was set to flushing and unflush the pad when an
upstream flushing seek failed.
2009-06-23 18:08:44 +02:00
Wim Taymans
85dbf93515 adder: more seeking fixes.
When a seek failed upstream, make sure the adder sinkpad is set unflushing again
so that streaming can continue.
We only have a pending segment when we flushed.
Set the flush_stop_pending flag inside the appropriate locks and before we
attempt to perform the upstream seek.
Add some more comments.
Use the right lock to protect the flags in flush_stop.

See #585708
2009-06-17 11:22:51 +02:00
Stefan Kost
fd36634f88 adder: send flush_stop when seeking failed
At least do the fix to sent the flush_stop when seeking failed to ensure we
keep no pads flushing. before it was send when the seeking worked which is just
plain wrong and was not the intention.
2009-06-15 11:45:19 +03:00
Wim Taymans
45084bf579 adder: send flush-stop earlier
When no flush-stop has been sent by upstream, we have to send one ourselves to
continue playback. Do this as soon as the collect function is called instead of
after we possibly pushed segment events (that got then flushed out)
2009-06-12 16:31:00 +02:00
Stefan Kost
4228ba0c6b adder: only send flush_stop when seek failed
This is still not the ultimate fix. Added some comment to explain the troubles.
2009-05-19 18:44:01 +03:00