Commit graph

247 commits

Author SHA1 Message Date
Mathieu Duponchelle
6954d2167c adder: rework the logic to check if eos has to be sent.
Checking the size available was incorrect, and the infos
for per-pad EOS are available.

Same logic as audiomixer.

fixes: https://bugzilla.gnome.org/show_bug.cgi?id=727025
2014-04-08 13:48:27 +02:00
Stefan Sauer
6cc7204f95 adder: set a group-id on the stream-start event
Set a default group-id to fix a warning printed by the sink.
2014-03-11 22:30:28 +01:00
MathieuDuponchelle
f330c01412 adder: Don't take channel mask in consideration in mono or stereo
This could cause negotiation to fail.

https://bugzilla.gnome.org/show_bug.cgi?id=708633
2013-09-28 13:32:58 +02:00
Mathieu Duponchelle
663f71a5dd adder: send pending segment out before checking for EOS
Otherwise there would be cases where it would not send its segment
out when the first collected after getting it would already yield EOS.

https://bugzilla.gnome.org/show_bug.cgi?id=708590
2013-09-24 10:04:37 +02:00
Thibault Saunier
4afdc04089 adder: Raw buffers DTS should always be CLOCK_TIME_NONE 2013-08-06 15:11:05 +02:00
Thibault Saunier
a174ff25bc adder: set DTS and PTS, sync on DTS 2013-08-06 12:25:44 +02:00
Thibault Saunier
38790e5757 adder: Do not send flush_start event with the stream lock taken
FLUSH_START is not serialized, so the lock should not be taken when
sending it.
2013-07-04 22:10:13 -04:00
Sebastian Dröge
15375861b5 adder: Reject segments that have a different rate than the output segment
adder does no rate conversion.
2013-06-09 19:20:20 +02:00
Sebastian Dröge
cc5a476fc6 adder: Add GstChildProxy interface for the sinkpads
This allows to set the sinkpad properties more easily.

Next step: Implement proper synchronization in adder, almost done!
2013-05-30 23:56:52 +02:00
Sebastian Dröge
349174b48e adder: Hold object lock in setcaps a bit longer to prevent race conditions 2013-05-30 23:56:52 +02:00
Sebastian Dröge
dde8d8919d adder: Simplify segment event handling
We don't care about upstream segments but generate our own. This
makes the code more similar to videomixer again.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
2953810ba5 adder: Use gst_audio_info_is_equal() to check if we get the same caps 2013-05-30 23:56:52 +02:00
Sebastian Dröge
0693b78e86 adder: Don't calls gst_pad_set_caps() on sinkpads
It doesn't make much sense and the CAPS query handling
on the sinkpads should handle this.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
5e63a0f674 adder: Set GAP flag on silence buffers we created 2013-05-30 23:56:52 +02:00
Sebastian Dröge
667b856cbc adder: Remove caching of the processing function
The compiler will generate a hashtable from the switch-case, and
we need to call functions explicitely for the volume!=1.0 cases
anyway.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
a76ade2d78 adder: Add support for per-stream volumes 2013-05-30 23:56:52 +02:00
Sebastian Dröge
addb07bc58 adder: Add optimized orc code for F64 processing 2013-05-30 23:56:52 +02:00
Sebastian Dröge
308c8fef68 adder: The output buffer must be readable and writable 2013-05-30 23:56:51 +02:00
Sebastian Dröge
509246cbac adder: Add support for muting individual pads 2013-05-30 23:56:51 +02:00
Sebastian Dröge
3974379a7f adder: Sync pad properties with the GstController 2013-05-30 23:56:51 +02:00
Sebastian Dröge
561ce54b27 adder: Add custom GstPad subclass to hold additional data and properties
This will later allow to set per-stream volumes and mute status.
2013-05-30 23:56:51 +02:00
Thibault Saunier
372eddf00e adder: Get collectpad stream lock when fowarding flush events
Fixes #698410
2013-05-02 12:29:48 +01:00
Thibault Saunier
fbe80a688d adder: Do not try to wait for flush_stop after receiving a segment event
+ Add a simple test
2013-04-21 16:11:41 +02:00
Stefan Sauer
60ccc2f17f adder: add a missing break 2013-03-11 22:46:45 +01:00
Stefan Sauer
e2d0a1835b adder: don't discard the flush-start events
This reverts one more part of a86ca535c8 and
hopefully fixes #694553 for good.
2013-02-27 22:07:11 +01:00
Stefan Sauer
13e8c9878a adder: fix looping
Use gst_segment_do_seek() and clip position before updating the segment.
2013-02-27 22:07:11 +01:00
Stefan Sauer
8ea1f331b3 adder: remove defines we don#t use anymore 2013-02-27 22:07:11 +01:00
Stefan Sauer
1504153012 adder: mark pending flush-stop on segment event
Also add more debug logging. Fixes #694553.
2013-02-25 19:55:00 +01:00
Stefan Sauer
a86ca535c8 adder: ensure sending a flush-stop after flush-start
Previously adder was only sending the flush-stop, when it saw the flushing seek.
If one sends a flushing see direcly to an element upstream of adder, it would
fail to unflush the downstream pads.
2013-02-21 10:11:32 +01:00
Stefan Sauer
cff9fccc69 adder: use the collect_pads_query func
We were setting the query-func on the sink-pad, which got overwritten when
adding the new pad to collect pads. Instead register our query-func with the
collect pads object. This fixes filter caps. Add a test for it.
2013-02-13 21:11:41 +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
Tim-Philipp Müller
cec6d634b6 adder: send stream-start event, and send caps event after stream-start
Delay sending of caps event so that it is sent only after
the stream-start event.
2012-09-23 13:31:17 +01:00
Stefan Sauer
b9054de15c collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:03:21 +02:00
Tim-Philipp Müller
24478261a2 adder: send CAPS event downstream fixing not-negotiated errors
Make sure to send a CAPS event downstream when we get our
first input caps. This fixes not-negotiated errors and
adder use with downstream elements other than fakesink.

Even gst-launch-1.0 audiotestsrc ! adder ! pulsesink works now.

Also, flag the other sink pads as FIXED_CAPS when we receive
the first CAPS event on one of the sink pads (in addition to
setting those caps on the the sink pads), so that a caps query
will just return the fixed caps from now on.

There's still a race between other upstreams checking if
caps are accepted and sending a first buffer with possibly
different caps than the first caps we receive on some other
pad, but such is life.

Also need to take into account optional fields better/properly.

https://bugzilla.gnome.org/show_bug.cgi?id=679545
2012-08-05 00:41:10 +01:00
Wim Taymans
ebb4116412 adder: prefix orc functions with adder_orc_ 2012-07-23 17:27:46 +02:00
Mark Nauwelaerts
a008aa0b46 collectpads2: rename to collectpads 2012-04-17 15:09:58 +02:00
Mark Nauwelaerts
b1a90e43c8 adder: correctly adjust to modified collectpads2 event handling 2012-04-17 13:50:29 +02:00
Mark Nauwelaerts
1f995a1c7e adder: chain up to collectpads event handler 2012-04-16 16:30:38 +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
ad42b16375 gst: Update for GST_PLUGIN_DEFINE() API change 2012-04-05 15:11:05 +02:00
Mark Nauwelaerts
481b1beece adder: event handling and leak fixes 2012-04-03 18:31:24 +02:00
Wim Taymans
dd819ddc6b orc: avoid precompilation
Avoid compiling all the functions at startup but compile only what's needed when
needed.
2012-03-20 15:37:42 +01:00
Sebastian Dröge
f7939bb43f Merge branch 'master' into 0.11
Conflicts:
	NEWS
	RELEASE
	configure.ac
	docs/plugins/gst-plugins-base-plugins.args
	docs/plugins/gst-plugins-base-plugins.hierarchy
	docs/plugins/gst-plugins-base-plugins.interfaces
	docs/plugins/inspect/plugin-adder.xml
	docs/plugins/inspect/plugin-alsa.xml
	docs/plugins/inspect/plugin-app.xml
	docs/plugins/inspect/plugin-audioconvert.xml
	docs/plugins/inspect/plugin-audiorate.xml
	docs/plugins/inspect/plugin-audioresample.xml
	docs/plugins/inspect/plugin-audiotestsrc.xml
	docs/plugins/inspect/plugin-cdparanoia.xml
	docs/plugins/inspect/plugin-encoding.xml
	docs/plugins/inspect/plugin-ffmpegcolorspace.xml
	docs/plugins/inspect/plugin-gdp.xml
	docs/plugins/inspect/plugin-gio.xml
	docs/plugins/inspect/plugin-gnomevfs.xml
	docs/plugins/inspect/plugin-libvisual.xml
	docs/plugins/inspect/plugin-ogg.xml
	docs/plugins/inspect/plugin-pango.xml
	docs/plugins/inspect/plugin-playback.xml
	docs/plugins/inspect/plugin-subparse.xml
	docs/plugins/inspect/plugin-tcp.xml
	docs/plugins/inspect/plugin-theora.xml
	docs/plugins/inspect/plugin-typefindfunctions.xml
	docs/plugins/inspect/plugin-uridecodebin.xml
	docs/plugins/inspect/plugin-videorate.xml
	docs/plugins/inspect/plugin-videoscale.xml
	docs/plugins/inspect/plugin-videotestsrc.xml
	docs/plugins/inspect/plugin-volume.xml
	docs/plugins/inspect/plugin-vorbis.xml
	docs/plugins/inspect/plugin-ximagesink.xml
	docs/plugins/inspect/plugin-xvimagesink.xml
	gst-libs/gst/app/gstappsink.c
	gst-libs/gst/audio/mixer.c
	gst-libs/gst/audio/mixer.h
	gst-libs/gst/tag/gstxmptag.c
	gst-libs/gst/video/colorbalance.c
	gst-libs/gst/video/colorbalance.h
	gst/adder/gstadder.c
	gst/playback/gstplaybasebin.c
	gst/playback/gstplaybin2.c
	gst/playback/gstplaysink.c
	gst/videoscale/gstvideoscale.c
	tests/check/elements/videoscale.c
	tests/examples/seek/seek.c
	tests/examples/v4l/probe.c
	win32/common/_stdint.h
	win32/common/audio-enumtypes.c
	win32/common/config.h
2012-03-02 10:00:55 +01:00
Stefan Sauer
44ff1b3b89 adder: drop newsegment events on sink-pads
Adder is sending an own newsegment event on the src pad.
2012-02-29 21:54:49 +01:00
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