Commit graph

1279 commits

Author SHA1 Message Date
Andre Moreira Magalhaes (andrunko)
b41d19fa5f playbin2: Properly change subtitles
Conflicts:

	gst/playback/gstplaysink.c
2012-06-06 16:31:08 -03:00
Thiago Santos
605d5c110c playbin2: fix subtitle only seeks when switching to external subs
Sending a non-flushing seek might not be enough for switching
to an external sub that has already been used because the flushes
are needed to reset the state of its decodebin's queue.

For example, if the subtitle is short enough, the queue might get
and EOS and keep its 'unexpected' return state. If the user switches
to another subtitle and back to the external one, the buffers
won't get past the queue.

This patch fixes this by adding the flush flag to the seek and
preventing that this flush leaves the suburidecodebin.

https://bugzilla.gnome.org/show_bug.cgi?id=638168

Conflicts:

	gst/playback/gstplaybin2.c
2012-06-06 16:31:08 -03:00
Andre Moreira Magalhaes (andrunko)
bd5cfff9de gstplaysink: Properly reset chain when receiving a custom flush event.
https://bugzilla.gnome.org/show_bug.cgi?id=638168

Conflicts:

	gst/playback/gstplaysink.c
2012-06-06 16:31:08 -03:00
Thiago Santos
0dfb331cfd playsink: do not store more than a second of subtitles
Use a shorter queue for subtitles to avoid switches for subtitles
taking longer than they already take.

https://bugzilla.gnome.org/show_bug.cgi?id=638168
2012-06-06 16:31:08 -03:00
Thiago Santos
c095dc29fe subtitleoverlay: pass correct parameter to debug message
Get the format name to pass to the debug message, as it expects a string
2012-06-06 16:31:08 -03:00
Andre Moreira Magalhaes (andrunko)
5627aa81bd gstsuboverlay: Convert NewSegment events to always be in the TIME format.
https://bugzilla.gnome.org/show_bug.cgi?id=638168

Conflicts:

	gst/playback/gstsubtitleoverlay.c
2012-06-06 16:31:07 -03:00
Wim Taymans
a2172bdb4b update for tag event change 2012-06-06 13:05:47 +02:00
Bastien Nocera
02abd19584 uridecodebin: Use cache dir for download buffering
Instead of the temp directory. See:
http://0pointer.de/blog/projects/tmp.html

https://bugzilla.gnome.org/show_bug.cgi?id=677181
2012-05-31 12:54:49 +02:00
Wim Taymans
29d24d4658 playbin: add current-*uri properties
Make the uri property getter return the next uri, like it was configured in the
setter.
Make a new current-uri and current-suburi property that reflects the currently
playing uri and suburi.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676665
2012-05-25 15:18:46 +02:00
Wim Taymans
4ebfa58a70 playbin: fix compilation 2012-05-24 13:43:06 +02:00
Sebastian Dröge
a67d9b349d playbin2: Put sinks before the other element factories in the autoplug factory list
This makes sure that we always prefer sinks that support a format without
decoding, independant of its rank. Previously we only sorted by rank.

Conflicts:

	gst/playback/gstplaybin2.c
2012-05-24 11:50:40 +02:00
Alban Browaeys
71e39c0e84 playsink: do not abort if a property is not found.
If a property is not found (for example last-sample when
gst_debug_bin_to_dot_file is used while the pipeline is
slightly broken (thus no last-sample) the unref of the item
gvalue which is not refed fails. Only unref if it was found.
2012-05-15 09:22:44 +02:00
Alban Browaeys
7e054c9af0 playsink: missing guard around gst pad add probe
This miss prevent from switching from one track to the other.
Issue encountered with rhythmbox and totem ports.
2012-05-15 09:22:12 +02:00
Mark Nauwelaerts
4ce453de97 playbin2: default text element is now subtitleoverlay
... and not so much textoverlay, though the former also uses the latter.
2012-05-14 10:14:36 +02:00
Руслан Ижбулатов
d34b8023e9 playsink: fix printf arguments in debug message 2012-05-12 13:53:40 +01:00
Wim Taymans
6bd0272512 uridecodebin: fix format strings 2012-05-11 16:16:33 +02:00
Wim Taymans
cd1d6f7d2d decodebin2: fix format strings 2012-05-11 15:33:31 +02:00
Wim Taymans
163720246e decodebin2: fix compilation 2012-05-11 09:26:47 +02:00
Thibault Saunier
445c41963b playback: Check type when setting "connection-speed" on unknown elements
Clamp the values if needed
2012-05-10 13:21:04 -04:00
Thibault Saunier
ee4ae0041c decodebin2: Add a connection-speed property to set it on demuxers when needed
Proxy it from uridecodebin
2012-05-10 13:11:47 -04:00
Sebastian Dröge
cc717f1f62 playsink: Initialize variable to silence wrong compiler warning 2012-05-09 12:03:44 +02:00
Sebastian Dröge
d7371bc87c playsink: Port changes to 0.11 2012-05-09 10:30:55 +02:00
Mark Nauwelaerts
e623bea6fa playbin2: properly reconfigure upon subsequent no-more-pads
... such as during switch in chained ogg.
2012-05-09 10:28:35 +02:00
Wim Taymans
7736044d45 playsink: make playsink reusable
The sinkpads are unblocked when going from PAUSED->READY, we need to block them
again when going READY->PAUSED. The blocking of the pad previously only happened
when it was freshly obtained with _request_pad or when the caps changed. If we
don't release the pad when going to READY it was previously never blocked again
causing not-linked errors.
2012-05-01 12:19:11 +02:00
Wim Taymans
f21b7437e7 playsink: don't leak the colorbalance element 2012-05-01 12:09:31 +02:00
Akihiro Tsukada
94beeb713a playbin2: Don't hold the playbin lock in the autoplug-continue callback
It's not necessary there as the group lock already protects everything
we access here and causes deadlocks in some cases.

Fixes bug #673708.
2012-04-17 09:57:17 +02:00
Matej Knopp
b6765417e1 decodebin: Do not block on sticky and oob events 2012-04-16 13:49:07 +02:00
Sebastian Dröge
fe9041bd05 decodebin2: Check that properties have the correct type before using them 2012-04-16 08:27:20 +02:00
Sebastian Dröge
15d92392b5 uridecodebin: Check that properties have the correct type before using them 2012-04-16 08:27:09 +02:00
Julian Scheel
fd4c8d9252 uridecodebin: Never treat live sources as streaming sources.
For streaming sources a queue is added before the demuxer, which can not be
properly filled by live sources. As http source can be live sources, this
caused issues for example with http live sources.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674057
2012-04-14 10:52:26 +02:00
Sebastian Dröge
69b18ab09d gst-libs: Remove interfaces libs and mixer/tuner interfaces
The navigation interface is now in the video library.
2012-04-13 13:14:13 +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
ec2e470ecc playback: Remove gstdecodebin.c, which is nowaday unused anyway 2012-04-06 10:54:42 +02:00
Sebastian Dröge
ad42b16375 gst: Update for GST_PLUGIN_DEFINE() API change 2012-04-05 15:11:05 +02:00
Thiago Santos
6eee006e82 Merge branch '0.10' 2012-04-04 13:56:17 -03:00
Thiago Santos
4b349306b0 playbin2: Use new playsink send-event-mode property
Set playsink's send-event-mode to MODE_FIRST as playbin2 only
needs one event going to the demuxer for its operation

https://bugzilla.gnome.org/show_bug.cgi?id=673211
2012-04-04 11:38:29 -03:00
Thiago Santos
84abbe0d52 playsink: add send-event-mode property
Adds a property for playsink to define how it should handle
events sent in send_event function. The default is the same as
GstBin's, sending events to all internal sinks. There is also
mode-first, that will send to sinks until the one handles the
event successfully.

https://bugzilla.gnome.org/show_bug.cgi?id=673211
2012-04-04 11:38:29 -03:00
Sebastian Dröge
65307dd132 gst: Update versioning 2012-04-04 14:55:15 +02:00
Sebastian Dröge
9e13d70b2c Merge remote-tracking branch 'origin/0.10'
Conflicts:
	gst-libs/gst/video/video-overlay-composition.c
	tests/check/libs/video.c
2012-03-29 15:00:22 +02:00
Sebastian Dröge
4872c7bf75 playsink: Fix subtitle rendering if there's no video, no visualizations but a text-sink 2012-03-23 11:07:49 +01:00
Wim Taymans
32bd12dba9 Merge branch 'master' into 0.11
Conflicts:
	.gitignore
	common
	configure.ac
	ext/vorbis/gstvorbisdeclib.h
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/riff/riff-read.c
	gst/playback/gstplaysink.c
	gst/playback/gstplaysinkconvertbin.c
	tests/check/libs/video.c
2012-03-22 11:35:13 +01:00
Vincent Penquerc'h
73605cb33d playsink: send navigation event to the sink as a fallback
When the video sink is a fakesink, which does not implement the
navigation interface, playsink will drop the navigation command.
In this case, send to the video sink as a fallback. It breaks
the interface abstraction, but is better than just dropping the
navigation event.
2012-03-15 13:02:34 +00:00
Mark Nauwelaerts
9fc640b9e0 playsink: remove circular ref between bin and internal pad
... by not assigning an additional ref to an async blocked callback,
which should not be called anyway by the time the object is gone.

Fixes #672006.
2012-03-14 17:32:10 +01:00
Mark Nauwelaerts
d13e1b49f6 playsink: provide fresh copy for gst_caps_merge
... since it is documented to modify provided caps.
2012-03-13 15:28:00 +01:00
Wim Taymans
25137962ad fix for caps API changes 2012-03-11 19:04:41 +01:00
Mark Nauwelaerts
8c99412a0d playbin2: do not take a superfluous ref on uridecodebin instances
... which are no longer FLOATING.
2012-03-09 14:19:41 +01:00
Mark Nauwelaerts
5fee17ac8f uridecodebin: restore FLOATING flag when reusing decodebin instance
... which avoids leaking these due to an extra ref later on.
2012-03-09 14:19:14 +01:00
Tim-Philipp Müller
29c266ccff Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	common
	docs/libs/gst-plugins-base-libs.types
	ext/pango/gsttextoverlay.c
	ext/vorbis/gstvorbisdec.c
	gst/playback/gstplaysink.c
	gst/playback/gstplaysinkconvertbin.c
	sys/ximage/ximagesink.c
	sys/xvimage/xvimagesink.c
2012-03-08 20:31:34 +00:00
Mark Nauwelaerts
b2a162ca77 playsink: audio convert bin need not be unconditionally present
... so avoid NULL manipulation when setting up chain again
(e.g. after having partially gone down to READY in native audio flag
configuration).
2012-03-08 17:58:17 +01:00
Mark Nauwelaerts
5462536a36 playsink: plug element leak 2012-03-08 15:35:46 +01:00
Sebastian Dröge
15091ad124 playsink: Chain up to the parent's GstBin::handle_message() for non-prepare-xoverlay element messages 2012-03-05 15:24:20 +01:00
Sebastian Dröge
a80c82cd80 playback: Link to libgstinterfaces too for the navigation interface 2012-03-02 11:31:23 +01:00
Sebastian Dröge
006f8f8275 gst: Update for gstmarshal.[ch] removal 2012-03-02 11:15:02 +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
Edward Hervey
59918e841f Suppress deprecation warnings in selected files, for g_value_array_* mostly 2012-02-27 14:28:15 +01:00
Sebastian Dröge
361e1e2e98 playsink: Use g_signal_handlers_block_by_func()/unblock_by_func() instead of disconnecting and reconnecting 2012-02-23 13:41:25 +01:00
Sebastian Dröge
0ef49c5275 playbin2: Proxy colorbalance interface 2012-02-23 13:32:00 +01:00
Sebastian Dröge
4289c0c899 playsink: Proxy colorbalance interface 2012-02-23 13:32:00 +01:00
Sebastian Dröge
46a3ea011d playbin2: Proxy navigation interface 2012-02-23 11:56:37 +01:00
Sebastian Dröge
d5779c96c4 playsink: Proxy navigation interface 2012-02-23 11:54:27 +01:00
Sebastian Dröge
9dab4a8477 playbin2: Proxy the XOverlay interface 2012-02-23 11:42:55 +01:00
Sebastian Dröge
993c6e006a playsink: Proxy the XOverlay interface 2012-02-23 11:33:27 +01:00
Sebastian Dröge
b8343b4a14 playsink: Force the aspect ratio if the sink has such a property 2012-02-23 11:05:11 +01:00
Sebastian Dröge
2c565f72df playsink: Only use the sink's colorbalance interface if it supports at least brightness/contrast/hue/saturation 2012-02-22 14:57:31 +01:00
Sebastian Dröge
8bcf96198e playsinkvideoconvert: Fix element name 2012-02-22 14:12:16 +01:00
Sebastian Dröge
56737a2ab1 playbin2: Give a fixed name "playsink" to the internal playsink element 2012-02-22 12:17:47 +01:00
Sebastian Dröge
68220a1893 playsink: Only really use software volume if requested 2012-02-22 12:08:35 +01:00
Sebastian Dröge
dfa508ffa1 playsink: Add a software color-balance element before the sink if the sink doesn't support changing the color-balance 2012-02-22 12:08:10 +01:00
Sebastian Dröge
018bb2ca6f playsink: Implement GstStreamVolume interface 2012-02-22 10:23:26 +01:00
Wim Taymans
4370d42cb9 playback: find raw caps correctly 2012-02-20 15:21:37 +01:00
Wim Taymans
6d5882754f subtitle: avoid deadlock 2012-02-17 14:37:18 +01:00
Wim Taymans
e44dd9db8f Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/pbutils/gstdiscoverer.c
2012-02-16 14:23:28 +01:00
Olivier Aubert
c79d2d314c docs: fix playbin2 documentation about DVD URIs
and playbin => playbin2 in example pipelines.

https://bugzilla.gnome.org/show_bug.cgi?id=668081
2012-02-15 12:04:19 +00:00
Vincent Penquerc'h
e16d8e3b19 subtitleoverlay: log why an overlay element cannot be used 2012-02-14 00:06:53 +00:00
Vincent Penquerc'h
169c697114 playbin2: fix old style raw A/V caps
They're now {audio,video}/x-raw, not {audio,video}/x-raw-*

https://bugzilla.gnome.org/show_bug.cgi?id=668682
2012-02-14 00:06:37 +00:00
Vincent Penquerc'h
bc9b231905 subtitleoverlay: fix probing of raw video caps
They're now video/x-raw, not video/x-raw-* anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=668682
2012-02-14 00:06:33 +00:00
Vincent Penquerc'h
66e05c04b8 subtitleoverlay: add a couple drive by const
https://bugzilla.gnome.org/show_bug.cgi?id=668682
2012-02-14 00:06:17 +00:00
Wim Taymans
0dd59060d9 subtitleoverlay: fix merge error
Fix merge error from commit fb6d09055a
2012-02-09 15:51:10 +01:00
Wim Taymans
b3eb4e5bd4 playsink: call the right default query handler
We need to call the default query handler of the proxy pad because only that one
will forward the query to the target pad in case of the allocation query.
2012-02-02 12:14:15 +01:00
Tim-Philipp Müller
4738e02bbf playback: suppress GValueArray deprecation warnings for the time being
until this gets sorted out and we have a viable alternative.

https://bugzilla.gnome.org/show_bug.cgi?id=667228
2012-02-01 15:50:52 +00:00
Wim Taymans
15b7375c44 subtitle: fix merge 2012-01-25 12:33:03 +01:00
Sebastian Dröge
130a8335a0 Merge branch 'master' into 0.11
Conflicts:
	gst/playback/gstdecodebin2.c
2012-01-25 12:29:11 +01:00
Sebastian Dröge
711e6a12ef Revert "decodebin2: Prune old groups before switching to the new one"
This reverts commit e2a038acee.

This wasn't entirely correct yet and needs some changes here
and there.
2012-01-25 12:25:05 +01:00
Sebastian Dröge
7e5aeba02f decodebin2: Fix merge error 2012-01-25 12:04:24 +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
Vincent Penquerc'h
c433ef9b70 playbin2: do not try to deactivate an inactive group
A group may have failed to activate due to an error (for instance,
having set the URI to a non existent location in about-to-finish).

https://bugzilla.gnome.org/show_bug.cgi?id=666395
2012-01-23 11:56:50 +00:00
Anssi Hannula
dd8f9aca92 subtitleoverlay: fix state change stall on PAUSED->READY->PAUSED
After a PAUSED->READY change the sink pads are currently not set to
blocking state. When the element is set back to PAUSED, the change will
be done asynchronously, but as the _pad_blocked_cb() callback is now not
called, the state change never completes.

Fix that by setting the sink pads to blocking state on a PAUSED->READY
change, which ensures that the _pad_blocked_cb() is called when needed
on any future READY->PAUSED change. The sink pads are already put to
blocking state on NULL->READY change, so this behavior is consistent.

Fixes bug #668097.
2012-01-20 17:29:06 +00:00
Mark Nauwelaerts
71f70c98ef streamsynchronizer: avoid unlikely NULL dereference 2012-01-19 16:43:40 +01:00
Mark Nauwelaerts
be34d4c78e playsink: verify linking to overlay element 2012-01-19 16:43:32 +01:00
Mark Nauwelaerts
e5f6675ea3 playsink: avoid finding sink in NULL bin in corner case 2012-01-19 16:43:30 +01:00
Wim Taymans
3d42f0f6ed port to new glib thread API 2012-01-19 11:36:17 +01:00
Youness Alaoui
e2a038acee decodebin2: Prune old groups before switching to the new one
In order to allow for proper functionality when a decoder only supports
one instance at a time (dsp), we must block the demuxer pads when they
get created if they are not part of the active group, preventing buffers
from being sent to the decoder (and initializing it through setcaps),
then after we switch to a new group, we unblock the demuxer pads for
the active groups. In the callback for the unblock, we prune the old
groups, making sure the previous decoder instance is destroyed before
we push a buffer to the new instance.
2012-01-19 09:04:52 +01:00
Mark Nauwelaerts
345b6a58f4 playsinkconvertbin: release extra ref on converter elements 2012-01-12 13:57:18 +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
e8fd305623 playback: document DEINTERLACE flag 2012-01-09 12:34:07 +01:00
Edward Hervey
f5f781e8fb Revert "decodebin2: Try harder to get initial topology caps"
This reverts commit 6b3e3544d4.

I really shouldn't put WIP commits in my main branch ...
2012-01-06 15:40:06 +01:00
Edward Hervey
6b3e3544d4 decodebin2: Try harder to get initial topology caps
Since caps are no longer 'shared' between two pads (but forwarded from
source pad to sink pad) we end up with the first chain pad not having
specified caps (i.e. typefind:src).

This solves the issues by getting the pad's peer caps.

It is not optimal since it will (for most demuxers) return the pad
template caps, which might contain non-fixed caps (ex : with
qtdemux "video/quicktime; video/mj2; audio/x-m4a; application/x-3gp")

https://bugzilla.gnome.org/show_bug.cgi?id=667337
2012-01-06 14:40:25 +01:00
Havard Graff
95be60de15 Fix various unlikely, but still potential memoryleaks in error code paths
https://bugzilla.gnome.org/show_bug.cgi?id=667311
2012-01-05 13:27:23 +00: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