Commit graph

3168 commits

Author SHA1 Message Date
Stefan Sauer
6c2f5317c7 volume: use new api to check activity of a controller 2011-11-04 21:00:29 +01:00
Stefan Sauer
0019bcaa47 controller: port to new location and api changes 2011-11-04 20:14:54 +01:00
Wim Taymans
b56ac475d3 playback: name conversion elements differently 2011-11-04 17:41:01 +01:00
Wim Taymans
7d9ccab8c6 uridecodebin: fix template name 2011-11-04 13:00:36 +01:00
Wim Taymans
cf8481b990 fix pad template names for request pads 2011-11-04 10:49:48 +01:00
Sebastian Dröge
7875ee11a5 subtitleoverlay: Use gst_caps_merge() instead of gst_caps_union()
This keeps the caps order and is more efficient.
2011-11-04 10:38:39 +01:00
Sebastian Dröge
6e9a302eca playsinkconvertbin: Use gst_caps_merge() instead of gst_caps_union()
This keeps the caps order and is more efficient.
2011-11-04 10:38:38 +01:00
Wim Taymans
57fe2addef update for request pads change. 2011-11-03 17:58:57 +01:00
Mart Raudsepp
5c58bcfd15 decodebin2: Post all source pads in stream-topology messages as "element-srcpad" values
This allows us to easily get ahold of all pads on a stream-topology message, including
pre-decoder ones, while "pad" only gives us access to the raw pads (as used by discoverer).
2011-11-03 14:41:08 +01:00
Mart Raudsepp
cee8710817 decodebin2: Use existing "caps" quark for one of the structure sets 2011-11-03 14:40:51 +01:00
Sebastian Dröge
b29a3d3cff playsinkconvertbin: Don't add identity multiple times 2011-11-03 10:07:27 +01:00
Vincent Penquerc'h
7eb8a9aaf6 playsink: send flush start/stop event when we switch elements
https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 10:05:44 +01:00
Vincent Penquerc'h
0cac680fac playsink: re-add identity where appropriate
https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 10:05:26 +01:00
Vincent Penquerc'h
c3e94d1c08 playsink: lock the new {set,get}_property functions
https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 10:04:07 +01:00
Thiago Santos
0a07701164 playsinkconvertbin: Be more consistent with ghostpad targets
Set up targets on READY->PAUSED state change to passthrough by
default. This prevents the targets from being unset on the
first run, while the 'raw' variable would mean that some
target is set.
2011-11-03 10:03:07 +01:00
Thiago Santos
f9ea3fdda8 playsinkconvertbin: No need to remove the identity
The identity element should be handled by the GstBin's cleanup,
removing it on the remove_elements function might remove it
too soon, as this function can be called directly from playsink
2011-11-03 10:02:58 +01:00
Thiago Santos
34f72da9cc playsinkconvertbin: Adding some debug messages
Adds a couple debug messages and some g_assert to make debugging
easier
2011-11-03 10:02:49 +01:00
Thiago Santos
80971a3b33 playsink-videoconvert: Fix warning on build
Remove unused variable
2011-11-03 10:02:39 +01:00
Vincent Penquerc'h
ae3ba53391 playsink: handle after-the-fact changes in converters/volume booleans
The playsink was nastily poking a boolean in the structure.
Make those booleans properties, so we are told when they change,
and rebuild the conversion bin when they do.

Some cleanup to go with it too.

https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 10:02:31 +01:00
Vincent Penquerc'h
c08a23169d playsink: handle NULL cached caps in getcaps
https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 10:02:01 +01:00
Vincent Penquerc'h
3939457b00 playsink: consider both passthrough and converter caps in getcaps
Since we can switch between both modes.

https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 10:01:52 +01:00
Vincent Penquerc'h
b34dac9a87 playsink: cache inner converter bin caps
https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 09:58:03 +01:00
Vincent Penquerc'h
6925c02bc2 playsink: keep both raw and non raw pipelines at all times
and switch between them as needed.

https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 09:57:46 +01:00
Vincent Penquerc'h
69d98d08c1 playsink: only compare against the media type we expect
ie, audio/x-raw- for audio, video/x-raw- for video.

Add a trailing - to be more specific. I doubt there's anything
like audio/x-rawhide or something, but you never know.

https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 09:57:32 +01:00
Vincent Penquerc'h
fd27e34582 playsink: refactor the converter bins since they are almost identical
https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 09:57:21 +01:00
Vincent Penquerc'h
c8e0d215cb playsink: fix passthrough mode (hopefully)
The code was doing counterintuitive rewiring of pads when the
bin did not contain any elements. We now add an identity element
in that case, which makes it simpler, and should fix the AC3
passthrough mode when using pulseaudio (but I don't see the bug
here so can't test).

https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 09:56:40 +01:00
Vincent Penquerc'h
2b84b328b1 playsink: handle NULL ghost pad target
For the src pad anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 09:56:26 +01:00
Sebastian Dröge
a583b63722 Revert "playsinkaudioconvert: Fix warning when there is no target pad yet"
This reverts commit f35c51c149.

Better patch coming soon.
2011-11-03 09:56:14 +01:00
Wim Taymans
a5fa136c0b update for tag API removal 2011-11-02 12:11:16 +01:00
Wim Taymans
e067e67923 rename meta* -> *meta 2011-11-02 09:04:27 +01:00
Wim Taymans
5bdfd6d899 structure: fix for api update 2011-11-02 09:04:27 +01:00
Tim-Philipp Müller
b52c5819fb Update for pad API changes
GstProbeType, GstProbeReturn and GstActivateMode -> GstPad*
2011-11-01 00:34:28 +00:00
Tim-Philipp Müller
edc7b45dc6 subtitleoverlay: don't include header that's been removed 2011-10-31 14:26:09 +00:00
Tim-Philipp Müller
d06ad8e95e Merge remote-tracking branch 'origin/master' into 0.11 2011-10-31 14:22:58 +00:00
Tim-Philipp Müller
5ee51e47a1 ext, gst, gst-libs, tests: update for tag list API changes 2011-10-31 14:22:39 +00:00
Tim-Philipp Müller
b6c424018b subtitleoverlay: don't use soon-to-be-deprecated gst_filter_run() 2011-10-30 20:00:47 +00:00
Wim Taymans
4f9dea137f Merge branch 'master' into 0.11 2011-10-28 11:34:37 +02:00
Philip Jägenstedt
88491ff2e7 typefind: extract SOF marker in jpeg typefinder
The SOF types are defined by http://www.w3.org/Graphics/JPEG/itu-t81.pdf

This is needed to make sure that we plug a jpeg decoder that
can handle the type of JPEG we have (e.g. lossless JPEG)

https://bugzilla.gnome.org/show_bug.cgi?id=556648
2011-10-28 09:45:02 +01:00
Wim Taymans
06311362e9 fix compilation 2011-10-27 17:26:58 +02:00
Wim Taymans
016d036137 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst/audioconvert/channelmixtest.c
	gst/playback/gstplaybasebin.c
	gst/playback/gstsubtitleoverlay.c
	tests/examples/Makefile.am
	tests/examples/audio/Makefile.am
2011-10-27 15:44:58 +02:00
Jan Schmidt
f35c51c149 playsinkaudioconvert: Fix warning when there is no target pad yet 2011-10-27 00:23:27 +11:00
Nicolas Dufresne
cf9da5c280 decodebin2: Link elements before testing if they can reach the READY state
This is made possible by filtering errors. This is required to let
harware accelerated element query the video context. The video context
is used to determine if the HW is capable, and thus if the element is
supported or not.

Fixes bug #662330.
2011-10-22 08:27:31 +02:00
René Stadler
54be243757 playbasebin: remove avoidable call to gst_object_set_name 2011-10-21 22:24:14 +02:00
René Stadler
0a5fcbb080 audioconvert: bury dead test program 2011-10-21 22:24:14 +02:00
Stefan Sauer
53d7d2e966 interfaces: clean up the use of iface and class/klass 2011-10-21 14:46:48 +02:00
René Stadler
6ffaccd284 subtitleoverlay: fix leaks of pad templates and internal proxy pads 2011-10-19 19:47:38 +02:00
René Stadler
56419cce77 subtitleoverlay: fix leak of element reference through pad block
If the pad block never happens because there is no data flow at all, the
callback is never fired and the reference is never released. This causes a
reference cycle between the pad and element, so valgrind is not very vocal
about it (memory is still reachable).
2011-10-19 19:47:38 +02:00
René Stadler
becba526d9 subtitleoverlay: fix event unref in (rare) error case 2011-10-18 13:02:43 +02:00
Tim-Philipp Müller
a586547b0c audiotestsrc: fix crash when setting the wave property before having negotiated a format
https://bugzilla.gnome.org/show_bug.cgi?id=661911
2011-10-17 15:47:31 +01:00
Vincent Penquerc'h
5e9862b2ba decodebin2: fire drained signal where appropriate
This will allow playbin2 to send its about-to-finish signal.
Taken out (apparently by mistake) by the EOS rewrite in july.

https://bugzilla.gnome.org/show_bug.cgi?id=661202
2011-10-17 15:36:25 +02:00
Edward Hervey
1c10fbcd33 audioconvert: We can handle channels conversion 2011-10-17 12:28:58 +02:00
Wim Taymans
5560d44e7a Merge branch 'master' into 0.11 2011-10-13 08:53:34 +02:00
Thiago Santos
6eb5f5b13e audiotestsrc: update blocksize when caps or samples-per-buffer change
Blocksize needs to be updated so we get a correct size buffer on
_fill function.
2011-10-10 12:31:46 -03:00
Brian Cameron
ded27cc61a videotestsrc: fix LDADD missing GST_LIBS 2011-10-10 13:11:59 +02:00
Wim Taymans
f1088ed647 update for UNEXPECTED -> EOS flowreturn 2011-10-10 11:39:52 +02:00
Wim Taymans
73b894107a Merge branch 'master' into 0.11
Conflicts:
	ext/vorbis/gstvorbisdec.c
	ext/vorbis/gstvorbisenc.c
	ext/vorbis/gstvorbisenc.h
	gst/audiotestsrc/gstaudiotestsrc.c
2011-10-08 10:19:06 +02:00
Vincent Penquerc'h
70239887e8 audiotestsrc: add missing break
And make violet noise usable

https://bugzilla.gnome.org/show_bug.cgi?id=661105
2011-10-06 20:45:09 +02:00
Vincent Penquerc'h
8d617f4037 playsink: fix caps negotiation through the new convenience bins
The bins' getcaps was bypassing the inner elements, and thus
failing to account for the caps transformations they allow,
which caused YUV video pipelines to fail with ximagesink, which
does not support YUV, even though the convenience bin includes
a colorspace converter for just this purpose.

https://bugzilla.gnome.org/show_bug.cgi?id=660816
2011-10-06 20:43:43 +02:00
Vincent Penquerc'h
76b29367e7 playbin2: fix mismatch between video/ and video/x-dvd-subpicture
The new code was checking for a prefix, and would find video/
first. Check in two passes, first checking for a perfect match,
and falling back to a prefix check if nothing was found.

https://bugzilla.gnome.org/show_bug.cgi?id=657261
2011-10-06 20:41:53 +02:00
Thiago Santos
59f0b29c3f encodebin: Re-enable parsers
Re-enable parsers in encodebin to allow more passthrough scenarios
to work. Specially the ones that require changing 'stream formats'.
i.e. h264 in mkv to mpegts.
2011-10-05 14:55:42 -03:00
Robert Swain
ef4a4a0e94 playsink: Add audio- and text-sink props 2011-10-05 12:45:49 +02:00
Stefan Sauer
7ce811f1ed auditestsrc: indent fix 2011-10-04 23:10:05 +02:00
Wim Taymans
1261c08a2f playbin2: port new bits to 0.11 2011-10-04 18:06:07 +02:00
Wim Taymans
a00927ad03 Merge branch 'master' into 0.11 2011-10-04 17:58:49 +02:00
Robert Swain
ddcda53714 playsink: Add video-sink property
The video-sink property allows manual specification via g_object_set ()
of the video sink element to be used.
2011-10-04 16:24:01 +02:00
Sebastian Dröge
12a54ae4dd playbin2: Minor cleanup of decoder-sink compatibility checking code 2011-10-03 15:20:06 +02:00
Thibault Saunier
a123195dd0 playbin2: Make sure that the decoders we plug are compatible with the fixed sink
The fact that a decoder is not compatible with the fixed sink
is currently happenning in the case where we have hardware accelerated
video decoders on the system (especially vaapi elements that are actually plugged),
and the user is providing a sink that doesn't support the surface.

A simple example that shows how it used to crash on a system where gstreamer-vaapi
is installed:
    gst-launch playbin2 video-sink=xvimagesink uri=/codec/supported/by/vaapi

What we are now doing in this case, is avoid using the accelerated
decoder and plug a "normal" decoder instead (if avalaible).

This commit doesn't handle the case where we have hardware accelerated
demuxing.
2011-10-03 15:17:54 +02:00
Sebastian Dröge
9117681b35 decodebin2: Use a TIME limit for pre-rolling in live streams and not in non-live streams
Fixes bug #647769 for real.
2011-10-03 10:55:53 +02:00
Wim Taymans
e787c7a5e2 Merge branch 'master' into 0.11
Conflicts:
	ext/pango/gsttextoverlay.c
	gst/encoding/gstencodebin.c
2011-10-03 10:11:19 +02:00
Thiago Santos
a223775089 encodebin: Fix typo on formatter adding condition
The condition is if the muxer doesn't have tag setter *and* isn't
a formatter itself. Any of those two conditions makes the muxer
good enough to not need a formatter.
2011-09-30 10:56:06 -03:00
Wim Taymans
bf57108e6a Revert "sbutitleoverlay: fix compiler warning"
This reverts commit ed792293e7.

Not needed anymore because of another commit
2011-09-30 11:45:51 +02:00
Wim Taymans
ed792293e7 sbutitleoverlay: fix compiler warning 2011-09-30 11:04:19 +02:00
Tim-Philipp Müller
4b43972cf4 subitleoverlay: fix compiler warning
gstsubtitleoverlay.c: In function 'gst_subtitle_overlay_video_sink_event':
gstsubtitleoverlay.c:1736:22: error: 'target' may be used uninitialized in this function
2011-09-29 21:30:52 +01:00
Wim Taymans
19346c2c3b Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/gstaudioencoder.c
	gst/playback/gstplaybin2.c
	gst/videotestsrc/videotestsrc.c
2011-09-28 11:35:46 +02:00
Raimo Järvi
ceea972b42 videotestsrc: Fix compiler warning on 64 bit mingw-w64
Fixes bug #660304.
2011-09-28 00:07:36 +01:00
Raimo Järvi
c0956342b2 playbin2: Fix compiler warnings on 64 bit mingw-w64
Fixes bug #660301.
2011-09-27 23:54:04 +01:00
Wim Taymans
f71511edd2 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/gstaudiodecoder.c
	gst-libs/gst/audio/gstaudioencoder.c
	gst/encoding/gstencodebin.c
2011-09-26 19:22:05 +02:00
Tim-Philipp Müller
09e06add66 typefindfunctions: backport some const-ifications from 0.11 branch
To keep code identical as much as possible between the two branches,
for easier merging.
2011-09-25 15:33:35 +01:00
Tim-Philipp Müller
bfb33e09a9 typefindfunctions: fix indentation 2011-09-25 15:33:35 +01:00
Tim-Philipp Müller
754b22d7ee libs: remove unused floatcast header-only library
There's no code whatsoever that uses these macros. If anyone
ever feels the need to resurrect them, we should add them to
gstutils.h in core or libgstaudio or so.
2011-09-23 21:18:47 +01: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
Robert Swain
635d2411cc encodebin: Avoid unnecessary read only caps copy 2011-09-23 17:50:31 +02:00
Sjoerd Simons
b9b5b133fd videorate: Add a max-rate property
In various use-case you want to dynamically change the framerate (e.g.
live streams where the available network bandwidth changes). Doing this
via capsfilters in the pipeline tends to be very cumbersome and racy,
using this property instead makes it very painless.
2011-09-21 11:24:59 +01:00
Sjoerd Simons
ec7ca80c9e videorate: Add more strict caps negotiation
When in drop-only mode we can never provide a framerate that is higher
then the input, so let the caps negotiation reflect this.
2011-09-21 11:24:59 +01:00
Tim-Philipp Müller
f57bbc585d videorate: don't unref event we don't own
http://bugzilla.gnome.org/show_bug.cgi?id=659562
2011-09-20 13:35:55 +01:00
Sebastian Dröge
61c6fcb2cd decodebin2: Only check if this is a discarded type if we have fixed caps
For unfixed caps we will get here again later when the caps are fixed.
2011-09-20 14:06:51 +02:00
Sebastian Dröge
8e114c427a decodebin2: Only call autoplug-continue with fixed caps
With unfixed caps we can't reliably decide if the final caps
are going to be "raw" (e.g. supported by a sink) or not.

We will get here again later when the caps are fixed.
2011-09-20 14:06:42 +02:00
Sebastian Dröge
01d37532b6 subtitleoverlay: Get the target of the video sinkpad, not the target sinkpad in the video setcaps handler 2011-09-19 14:02:00 +02:00
Youness Alaoui
27058c1bc6 decodebin2: Initialize variable correctly
If subdrained isn't initialized to FALSE then a chain might think
that its group is drained when in fact it's not and this can cause
a switch too early or even cause a deadlock.
2011-09-19 12:36:48 +02:00
Edward Hervey
9d2bcb08fe decodebin2: Rewrite EOS-handling code
This is now really threadsafe and improves switching
between different groups.
2011-09-19 12:34:51 +02:00
Sebastian Dröge
936e87cdcf decodebin2: Fix non-prerolling pipelines and not-linked errors if a parser is available but no decoder
Fixes bug #658846.
2011-09-19 11:54:27 +02:00
Sebastian Dröge
b1bb1e9b26 subtitleoverlay: Implement support for switching between raw and non-raw video streams 2011-09-19 11:24:47 +02:00
Alessandro Decina
a330ff0721 playbin2: fix compiler warning
Remove a check for gchar >= 128
2011-09-15 22:05:34 +02:00
Stefan Sauer
b678f6cf69 adder: don't access the event after pushing
Fixes valgrind warnings.
2011-09-15 16:47:26 +02:00
Sebastian Dröge
bd52f00796 Revert "playbin2: autoplug sink if stream is incompatible to the configured one"
This reverts commit b0b4e286c8.

We agreed that the previous (pre-.35) behaviour is broken and a bug and the
current behaviour is correct, deterministic and allows the application to
handle stuff properly while the old behaviour can't be handled properly by
applications and just worked in some applications by luck.

The solution to the problem that was solved by relying on the old, broken
behaviour would be, to make decodebin2/playbin2 more aware of decoders and
improve the autoplugging of decoders by considering the caps supported by the
sink instead of just using something with the highest rank.

See bug #656923.
2011-09-15 14:27:35 +02:00
Josep Torra
b0b4e286c8 playbin2: autoplug sink if stream is incompatible to the configured one
Fixes regression since 0.10.33 where sinks that can cope with non raw
caps or custom caps are not autoplugged if there's a sink configured
with the properties video-sink and audio-sink which cannot handle
the stream. This change checks for compatibility on the configured one
and use it if success. Otherwhise it tries with the found factories.
2011-09-15 09:30:25 +02:00
Josep Torra
8f8ad316ce Revert "playsink: only add text overlay if vido sink also accepts raw caps"
This reverts commit a22faad18a. Instead
of disabling subtitles completelly when video stream have custom caps,
just let the sutbtileoverlay cope with them as now it's able to.
2011-09-14 11:05:45 +02:00
Josep Torra
596c75b541 subtitleoverlay: gracefully handle non raw video streams
Implement handling of non raw video streams by avoiding colorspace
elements and autoplugging a compatible renderer if available. Fallback
to passthrough if no compatible renderer is found.
2011-09-14 11:05:45 +02:00
Tim-Philipp Müller
14a79628a7 playbin2: try to catch malformed URIs
Only log in debug log for now, since the check is a bit
half-hearted, its purpose is mostly to make sure people
use gst_filename_to_uri() or g_filename_to_uri().

https://bugzilla.gnome.org/show_bug.cgi?id=654673
2011-09-13 21:57:10 +01:00
Vincent Penquerc'h
4095551b31 typefind: recognize Asylum modules
Note that there is already a AMF detection for a different
magic, I'm not sure if that's a different format with the
same initials or not. AMF is used for a few different formats
(including video), so...

This fixes playbin2 playing Asylum modules.

https://bugzilla.gnome.org/show_bug.cgi?id=658514
2011-09-09 13:54:45 +02:00
Nicolas Dufresne
25939e0218 subparse: Improve subrip type check regex
This patch prevents timestamp like "1 1:00:00", which would have been seen
as hour 101 by our parser, and allow single digit hour, minute and seconds
as it's already supported by the parser, and also by other implementation
like in mplayer. This fixes bug 657872.

https://bugzilla.gnome.org/show_bug.cgi?id=657872
2011-09-08 14:52:15 +02:00
Sebastian Dröge
21bc8ddcb7 Revert "Revert "decodebin2: Do a subset check before actually using a factory""
This reverts commit 5f5d832a3b.
2011-09-08 14:42:13 +02:00
Sebastian Dröge
0f654f3feb Merge branch 'master' into 0.11
Conflicts:
	docs/libs/Makefile.am
	tests/check/elements/decodebin2.c
2011-09-08 14:42:00 +02:00
Sebastian Dröge
5f5d832a3b Revert "decodebin2: Do a subset check before actually using a factory"
This reverts commit 50a88396ae.

See bug #658541.
2011-09-08 13:25:27 +02:00
Sebastian Dröge
9e2ce5bbb5 decodebin2: Make sure to fixate Parser/Converter caps before continuing autoplugging 2011-09-07 16:44:59 +02:00
Josep Torra
a22faad18a playsink: only add text overlay if vido sink also accepts raw caps
Fixes regression, pipeline fails with not negotiated, on media
containing subtitles when decoder/sink with custom caps is used.
2011-09-07 16:08:38 +02:00
Sebastian Dröge
46e26824d4 decodebin2: Intersect the factory caps with the current caps for the capsfilter
Otherwise we'll include many incompatible caps in the capsfilter that
will only slow down negotiation.
2011-09-07 14:20:36 +02:00
Stefan Sauer
abc96efb2a docs: add two mising enum docs 2011-09-07 14:14:02 +02:00
Tim-Philipp Müller
f93748fbd4 decodebin2: fix element factory refcounting
g_value_get_object() does not give us our own ref.

Fixes "Trying to dispose object "flacparse", but it still has a parent "registry0".
You need to let the parent manage the object instead of unreffing the object directly."
and similar warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=658416
2011-09-07 12:34:06 +01:00
Wim Taymans
c0d31dd555 rename IS_LE/BE to _IS_LITTLE_ENDIAN/BIG_ENDIAN 2011-09-06 16:46:02 +02:00
Wim Taymans
8ee3da5bba Merge branch 'master' into 0.11
Conflicts:
	gst/playback/gstsubtitleoverlay.c
	tests/check/elements/decodebin2.c
2011-09-06 15:31:53 +02:00
Wim Taymans
7012e88090 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/audio.h
	gst-libs/gst/audio/gstaudiodecoder.c
	gst-libs/gst/audio/gstaudiodecoder.h
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/audio/gstbaseaudioencoder.h
	gst/playback/Makefile.am
	gst/playback/gstplaybin.c
	gst/playback/gstplaysink.c
	gst/playback/gstplaysinkvideoconvert.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
	gst/videoscale/gstvideoscale.c
	win32/common/libgstaudio.def
2011-09-06 15:24:32 +02:00
Sebastian Dröge
50a88396ae decodebin2: Do a subset check before actually using a factory
This prevents autoplugging if the caps have a non-empty intersection
but are not accepted by the next element's pad.
2011-09-06 14:16:10 +02:00
Sebastian Dröge
c5733632ee subtitleoverlay: Use subset check instead of non-empty-intersection check to check if pads are compatible 2011-09-06 14:04:34 +02:00
Sebastian Dröge
e3530f434b playbin2: Use subset check instead of non-empty-intersection check to check if pads are compatible 2011-09-06 14:03:31 +02:00
Sebastian Dröge
4be8c44b08 decodebin2: Fix memory leak 2011-09-06 13:16:44 +02:00
Sebastian Dröge
20f9d0bec5 decodebin2: Correctly negotiate format for parsers that can convert different stream formats
This is done by adding a capsfilter after every parser/converter that contains
all possible caps supported by downstream elements. A capsfilter is necessary
here because the decoder is only selected after the parser selected a format
and the parser can't know what downstream would support otherwise.
2011-09-06 13:16:44 +02:00
Sebastian Dröge
1df9fa9ee8 playbin2: If a audio/video sink was already selected don't check caps of all other possible sinks 2011-09-06 13:16:44 +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
Vincent Penquerc'h
78f50f2d25 videorate: don't take the object lock twice in {set,get}_property
https://bugzilla.gnome.org/show_bug.cgi?id=658294
2011-09-06 09:44:38 +01:00
Thiago Santos
2768ed75e0 encodebin: Select muxer further
Sort muxers based on their caps and ranking before iterating to
find one that fits the profile.

Sorting is done by putting the elements that have a pad template
that can produce the exact caps that is on the profile. For example:
when asking for "video/quicktime, variant=iso", muxers that
have this exact caps on their pad templates will be put first on
the list than ones that have only "video/quicktime".

https://bugzilla.gnome.org/show_bug.cgi?id=651496
2011-09-05 17:48:36 -03:00
Sebastian Dröge
de4fc848fa decodebin2: Actually iterate over the factories instead of only taking the first one 2011-09-05 20:32:42 +02:00
Tim-Philipp Müller
b1c00adf31 Revert "playsink: Try include 'pitch', if no other sink is provided"
This reverts commit 105814e2c7.

The general consensus seems to be that we should revert this for
now. If such behaviour is desired, we should probably enable it
via a flag. And maybe use the scaletempo plugin instead.
2011-09-05 14:44:27 +01:00
Sebastian Dröge
705ca1d55a playsink: Don't leak the videochain ts-offset element
Also don't leak the audiochain ts-offset element if one is
found but the sink doesn't support volume settings.
2011-09-05 12:02:37 +02:00
Sebastian Dröge
89a899fd9d playsink: Use gst_object_unref() instead of g_object_unref() for better debugging 2011-09-05 11:55:59 +02:00
David Schleef
4e38577b30 videoscale: Add modified Lanczos scaling method
Adds a Lanczos-derived scaling method, which is rather slow, but very
high quality.  Adds a few properties that can be used to tune various
scaling properties: sharpness, sharpen, envelope, dither.  Not currently
Orcified, but was designed with that in mind.
2011-09-01 15:16:50 -07:00
David Schleef
924f743981 playback: Add define for colorspace element
Single point of change if you want to switch from ffmpegcolorspace
to colorspace.
2011-09-01 11:41:31 -07:00
Sjoerd Simons
08ac05a06c videorate: fix dynamically changing average period
The average_period_set variable can be accessed in different threads, so
always lock it when reading. Furthermore when switching to averaging
mode we should make sure we don't have cached buffers that aren't used
in that mode. And any modeswitch will cause the latency to change, so we
should post a NewLatency message
2011-08-31 14:13:56 +01:00
Sjoerd Simons
ea46b3c706 videorate: Port to basetransform 2011-08-31 14:13:56 +01:00
Sjoerd Simons
f2438913f9 Correct added versions 2011-08-31 14:13:55 +01:00
Sebastian Dröge
49b301bcd6 playsink: Only unref ts_offset elements if they're not NULL 2011-08-31 14:45:08 +02:00
Sebastian Dröge
425d3ae7bc decodebin2: Keep the chain mutex locked while connecting to the notify::caps signal 2011-08-31 12:40:30 +02:00
Jan Schmidt
105814e2c7 playsink: Try include 'pitch', if no other sink is provided
As a default, try the pipeline 'pitch ! audioconvert ! autoaudiosink'
before trying plain autoaudiosink
2011-08-30 18:21:31 +10:00
Wim Taymans
811a8961bf playsink: fix ts_offset refcounting 2011-08-29 13:33:49 +02:00
Wim Taymans
e694528155 base: port to 0.11 2011-08-29 13:28:08 +02:00
Wim Taymans
e1287b97ab Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
	gst-libs/gst/audio/audio.c
	gst-libs/gst/audio/audio.h
	gst-libs/gst/audio/multichannel.h
	gst-libs/gst/pbutils/Makefile.am
	gst-libs/gst/pbutils/gstdiscoverer.c
	gst/playback/gstplaysinkaudioconvert.c
	gst/playback/gstplaysinkvideoconvert.c
	win32/common/libgstaudio.def
2011-08-29 11:37:36 +02:00
Wim Taymans
82d82203f6 base: fix for allocation methods rename 2011-08-26 14:26:37 +02:00
David Schleef
a912374342 playback: reference count ts_offset
Apparently this object is being used after it's freed.  This is one
way to fix it, although perhaps not the best way.  Fixes: #656715.
2011-08-25 14:08:34 -07:00
Wim Taymans
81457756f0 audiotestsrc: use base class fill method 2011-08-25 13:21:14 +02:00
Wim Taymans
0a1874461a audio: rename UNPOSITIONED to DEFAULT_POSITIONS
Rename the UNPOSITIONED flag to the DEFAULT_POSITIONS flag because that is
really what the resulting GstAudioInfo will contain as the chanel mappings.
2011-08-24 14:13:33 +02:00
Sebastian Dröge
e9a5d4f8fd playsink{audio,video}convert: Send NEWSEGMENT events to sinkpads instead of pushing them 2011-08-24 14:05:27 +02:00
Wim Taymans
b0b6d9124d audiotestsrc: fix build 2011-08-24 11:05:05 +02:00
Wim Taymans
9ad89374a3 video: add colorimetry info
Make enums for the chroma siting for easier use in the videoinfo.
Make enums for the color range, color matrix, transfer function and the
color primaries. Add these values to the video info structure in a Colorimetry
structure. These values define the exact colors and are needed to perform
correct colorspace conversion. Use a couple of predefined colorimetry specs
because in practice only a few combinations are in use.
Add view_id to the video frames to identify the view this frame represents in
multiview video.
Remove old gst_video_parse_caps_framerate, use the videoinfo for this.
Port elements to new colorimetry info.
Remove deprecated colorspace property from videotestsrc.
2011-08-23 18:57:35 +02:00
Wim Taymans
2ce5c8b8be audio: use convert audio helper 2011-08-22 16:21:02 +02:00
Wim Taymans
0213407fbc audio: rename INT -> INTEGER
Spell INTEGER fully instead of using the int abreviation.
Remove some old functions.
2011-08-20 10:49:17 +02:00
Wim Taymans
8023f49d19 more audio caps porting 2011-08-19 17:41:22 +02:00
Wim Taymans
f870178234 adder: port to new caps 2011-08-19 17:05:55 +02:00
Sebastian Dröge
85a3e7c98c audiofilter: Pass a const pointer to the audio format info to ::setup()
It is not meant to be changed by the subclass.
2011-08-19 10:06:39 +02:00
Wim Taymans
ba41bb5ca7 Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
	gst/playback/gstplaysink.c
2011-08-18 19:36:50 +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
Edward Hervey
2ee31ccac9 playsink: Reconfigure when pads are added later
Instead of just assuming all pads are created at the same time,
remember which ones are actually new (via ->pending_blocked_pads).

This allows the following use-case to properly work:
* Upstream starts with audio-only
* Only that pad gets data, blocks and a real audio sink is created
* Upstream laters adds a video stream
* A new pad is requested, blocks and reconfiguration kicks in in
  order to add a new real video sink
2011-08-18 13:42:26 +02:00
Vincent Penquerc'h
30236ddfd3 audioresample: fix build without orc
https://bugzilla.gnome.org/show_bug.cgi?id=656781
2011-08-18 11:03:58 +02:00
Wim Taymans
0290df6fc5 audiotestsrc: properly override fixate 2011-08-17 17:22:03 +02:00
Wim Taymans
b01d32b195 videotestsrc: properly override the fixate function 2011-08-17 17:18:20 +02:00
Wim Taymans
d679dd2c54 audioresample: fix after merge 2011-08-17 10:47:38 +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
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
Wim Taymans
e904c529e3 fix for _negotiated_caps() change 2011-08-15 12:18:15 +02:00
Vincent Penquerc'h
49ec6899f4 audioresample: fix quality setting being ignored by the resampler state
https://bugzilla.gnome.org/show_bug.cgi?id=636562
2011-08-12 09:55:17 +02:00
Vincent Penquerc'h
746415a6e3 audioresample: use SSE/SSE2 when possible
Compile in the code on i386 and x86_64, and use ORC to determine
when the runtime platform can run the code.

https://bugzilla.gnome.org/show_bug.cgi?id=636562
2011-08-12 09:55:11 +02:00
Vincent Penquerc'h
58fd202b7d audioresample: fix SSE2 building with double precision
The full double implementation was missing.

https://bugzilla.gnome.org/show_bug.cgi?id=636562
2011-08-12 09:53:12 +02:00
Tim-Philipp Müller
1c0fbbce10 subparse: fix runtime warnings when doing position query
Add missing 'break'.
2011-08-10 10:49:38 +01:00
Vincent Penquerc'h
fa3e246866 typefind: bump probability if all frames we found are similar
Similar meaning same layer, same bitrate, and same number of channels

This fixes misdetection of (some MP3 files that have zero padding
between the ID3 tag and the MP3 stream) as H.264 video.

https://bugzilla.gnome.org/show_bug.cgi?id=656018
2011-08-10 11:20:31 +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
Vincent Penquerc'h
c2ce145e72 volume: fix sample depth typo
https://bugzilla.gnome.org/show_bug.cgi?id=656022
2011-08-05 13:37:05 +02:00
Sebastian Dröge
5580dd6a4d volume: Update disted ORC files 2011-08-05 13:06:31 +02:00
Thiago Santos
3687b056c4 encodebin: Set queues to silent=true
As encodebin doesn't connect to the queue signals, it can set
queues to silent mode to make queue not emit them.

Check https://bugzilla.gnome.org/show_bug.cgi?id=621299 for
more info on queue's silent property.
2011-08-03 14:14:55 -03:00
Thiago Santos
b263bacc57 encodebin: Fix typo on installing properties
queue buffers and bytes properties have ids swapped, fix it.
2011-08-03 13:41:10 -03:00
Wim Taymans
97f1d1805b update ORC dist files 2011-08-02 12:24:37 +02:00
Wim Taymans
3f8e568dd3 videoconvert: update ORC dist files 2011-08-02 12:24:19 +02:00
Wim Taymans
5a85e1d75f base: update for new bufferpool API 2011-07-29 17:15:39 +02:00
Tim-Philipp Müller
d71e6cb110 videotestsrc: use local libgstvideo here as well 2011-07-28 15:28:41 +01:00
Thiago Santos
c874edd089 encodebin: rename flags names
Rename flags names from native-audio/-video to
no-audio/video-conversion to be more explicit on what it does
2011-07-28 11:21:26 -03:00
Tim-Philipp Müller
c3234c84ed videoconvert: link to local libgstvideo-0.11 2011-07-28 14:18:34 +01: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
Edward Hervey
38a6919a7b decodebin2: Allow all EOS to go through if we don't have a next group
Only drop them if the current group isn't drained .. AND there is a
next group to switch to.

Should Fix #655268
2011-07-26 12:33:56 +02:00
Edward Hervey
059db89633 playbin2: Avoid resetting playsink when not needed
When we don't have specific {audio|video|text}-sink properties, don't
set them on playsink when reconfiguring.
If we do that, we end up setting the previous configured sink to
GST_STATE_NULL resulting in any potentially pending push being returned
with GST_FLOW_WRONG_STATE which will cause the upstream elements to
silently stop.

https://bugzilla.gnome.org/show_bug.cgi?id=655279
2011-07-25 18:44:33 +02:00
Edward Hervey
c91928f7a2 decodebin2: Properly handle multi-stream chains
When we have a multi-stream (i.e. audio and video) input and the demuxer
adds/removes pads for a new stream (common in a mpeg-ts stream when the
program stream mapping is updated), the algorithm for EOS handling was
previously wrong (it would only drop the EOS of the *last* pad but would
let the EOS on the other pads go through).

The logic has only been changed a tiny bit for EOS handling resulting in:
* If there is no next group, let the EOS go through
* If there is a next group, but not all pads are drained in the active
  group, drop the EOS event
* If there is a next group and all pads are drained, then the ghostpads
  will be removed and the EOS event will be dropped automatically.
2011-07-25 10:45:36 +02:00
Wim Taymans
4fb67fb0da audioresample: fix for event handler change 2011-07-22 21:19:08 +02:00
Tim-Philipp Müller
9edbc92a27 decodebin: don't plug the same parser multiple times in a row
This allows us to make parsers accept both parsed and unparsed input
without decodebin plugging them in a loop until things blow up, ie.
without affecting applications that still use the old playbin or the
old decodebin.

(Making parsers accept parsed input is useful for later when we want
to use parsers to convert the stream-format into something the decoder
can handle. It's also much more convenient for application authors
who can plug parsers unconditionally in transcoding pipelines, for
example).
2011-07-15 16:14:11 +01:00
Wim Taymans
376164ab08 Merge branch 'master' into 0.11 2011-07-10 13:49:14 +02:00
Piotr Fusik
b27d2469bd typefind: fixed detection of audio/x-sap
Fixes: #654295.

Signed-off-by: David Schleef <ds@schleef.org>
2011-07-09 16:19:48 -07:00
Tim-Philipp Müller
6be16ad773 gdppay: parse caps event and payload caps
Which makes it actually output stuff.
2011-07-08 20:03:27 +01:00
Tim-Philipp Müller
dd56714b14 ffmpegcolorspace -> videoconvert 2011-07-07 23:59:59 +01:00
Wim Taymans
26cc33cb62 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/tag/gstxmptag.c
	gst/encoding/gststreamsplitter.c
2011-07-07 11:10:39 +02:00
Wim Taymans
43bee0022a audioconvert: update orc dist files 2011-07-07 10:28:08 +02:00
Wim Taymans
d051f3cb5b audioconvert: don't use .init function
Don't use the .init function but compile all functions when needed instead of
when the plugin is registered.
2011-07-07 10:24:55 +02:00
Wim Taymans
ddce68a5c2 video: More video helper library improvements
Make a new GstVideoFormatinfo structure that contains the specific information
related to a format such as the number of planes, components, subsampling,
pixel stride etc. The result is that we are now able to introduce the concept of
components again in the API.
Use tables to specify the formats and its properties.
Use macros to get information about the video format description.
Move code to set strides, offsets and size into one function.
Remove methods that are not handled with the structures.
Add methods to retrieve pointers and strides to the components in the video.
2011-07-04 16:01:14 +02:00
Luis de Bethencourt
bf816fe816 encodebin: fix compiler warning
cspace and cspace2 may run uninitialized.
2011-06-30 19:57:22 +01:00
Robert Swain
7ad1ba6fba encodebin: Add flags to disable conversion elements
Add a flags property and two flags to allow one to disable the
conversion elements within encodebin. Doing so insists that the
uncompressed input to encodebin for the appropriate stream type is
sufficient to meet the caps requirements of the encoders, muxers and
encodebin target.

This is mostly beneficial to bypass slow caps negotiations in the
conversion elements.
2011-06-30 00:59:18 +02:00
Robert Swain
dc79c42484 streamsplitter: Fix getcaps src pad caps merge
Caps returned from gst_pad_peer_get_caps_reffed () may not be writable.
If they are not is should cause an assertion in gst_caps_merge (),
however, sometimes assertions are disabled in binary builds of -base and
it's safer to just be sure the caps are writable. Also, check that the
reffed caps pointer is not NULL.
2011-06-29 11:57:52 +02:00
Mark Nauwelaerts
ebfd6acde1 playsink: only unset initialized GValue 2011-06-28 19:03:23 +02:00
Philip Jägenstedt
f3e65f1c93 typefind: NULL check in degas_type_find
The length check isn't sufficient, an source might
report the correct length, but then still fail to
read the requested number of bytes for some reason.

https://bugzilla.gnome.org/show_bug.cgi?id=652642
2011-06-26 23:31:33 +01:00
Tim-Philipp Müller
92a85024de videoconvert: fix unused-but-set-variable compiler warning 2011-06-26 23:17:39 +01:00
Tim-Philipp Müller
8cede4ae6a gst, sys: remove GstImplementsInterface usage 2011-06-26 23:16:08 +01:00
Wim Taymans
2732300adc videotestsrc: port to video helpers
Port videotestsrc to use the video helper functions to parse caps and handle
video frames.
Enable GstMetaVideo to make us handle strided video.
2011-06-21 17:36:21 +02:00
Wim Taymans
b43121e061 videotestsrc: small cleanups 2011-06-21 12:52:23 +02:00