Wim Taymans [Wed, 18 Nov 2009 16:09:28 +0000 (17:09 +0100)]
baseaudiosink: fix initial calibration
When we are calibrating the internal clock against the external clock take into
account the time offset applied to our internal clock because we will subtract
that in the render_function again.
Sebastian Dröge [Wed, 18 Nov 2009 08:22:39 +0000 (09:22 +0100)]
playbin2: Don't handle DURATION queries during group switches
During a group switch return the cached duration of the old group
because the old group still didn't finish playback. If we have no
cached duration return FALSE.
Fixes bug #585969.
Sebastian Dröge [Sun, 15 Nov 2009 18:36:21 +0000 (19:36 +0100)]
playbin2: Post a stream-changed message after activating a group
This is useful to detect when playbin2 has really switched to the next
group after about-to-finish for example.
Fixes bug #584987.
Jan Schmidt [Wed, 18 Nov 2009 12:27:19 +0000 (12:27 +0000)]
win32: Add new still-frame API to the defs
Add gst_video_event_new_still_frame() and
gst_video_event_parse_still_frame() functions to the win32 defs files
Mark Nauwelaerts [Wed, 18 Nov 2009 11:37:44 +0000 (12:37 +0100)]
baseaudiosrc: fix 'uninitialized' compiler warning
Tim-Philipp Müller [Wed, 18 Nov 2009 10:14:41 +0000 (10:14 +0000)]
configure: bump core requirement to 0.10.25.1
We depend on new API that's only in git so far.
Jan Schmidt [Sun, 15 Nov 2009 17:34:37 +0000 (17:34 +0000)]
video: Add functions to create/parse still frame events.
Add a new video event to mark the start or end of a still-frame
sequence, and a parser function to identify and extract info from
such events.
API: gst_video_event_new_still_frame()
API: gst_video_event_parse_still_frame()
Fixes: #601942
Wim Taymans [Tue, 17 Nov 2009 15:39:09 +0000 (16:39 +0100)]
playsink: make sure we always go to PAUSED async
Set the need_async_start flag before going to PAUSED so that we always post the
ASYNC_START message, even after reusing playsink.
Wim Taymans [Tue, 17 Nov 2009 15:37:57 +0000 (16:37 +0100)]
playsink: make sure we remain a sink
When we remove our elements, we could lose our sink flag. Make sure we remain a
sink by setting the flag again after removing elements.
Stefan Kost [Mon, 16 Nov 2009 20:47:54 +0000 (22:47 +0200)]
audioconvert: remove unused array
Sebastian Dröge [Mon, 16 Nov 2009 08:57:56 +0000 (09:57 +0100)]
subparse: Use new double->fraction transformation function from core
Sebastian Dröge [Sat, 14 Nov 2009 13:05:43 +0000 (14:05 +0100)]
playbin2: Make subtitle error handling more robust and ignore late errors too
Make sure, to only "simulate" subtitle no-more-pads if it was still
pending and also handle errors in the subtitle pipeline as warnings
after the subtitles prerolled.
Don't set the suburidecodebin to READY after errors, handle_message
will usually be called from the streaming thread and doing that
from there is obviously not a good idea.
Sebastian Dröge [Sat, 14 Nov 2009 12:21:15 +0000 (13:21 +0100)]
subtitleoverlay: Handle errors from subtitle elements as warning and go into passthrough mode
Sebastian Dröge [Fri, 13 Nov 2009 11:47:55 +0000 (12:47 +0100)]
playbin2: Don't leak the GError and debug string when parsing error messages
Sreerenj B [Fri, 13 Nov 2009 10:16:44 +0000 (11:16 +0100)]
rtsp: avoid crashing on SIGPIPE
Use send() instead of write() so that we can pass the MSG_NOSIGNAL flags to
avoid crashing with SIGPIPE when the remote end is not listening to us anymore.
Fixes #601772
Sebastian Dröge [Wed, 11 Nov 2009 16:35:45 +0000 (17:35 +0100)]
playbin2: Improve subtitle passthrough in uridecodebin
Now the caps property isn't set anymore for the subtitle caps
but instead in the autoplug-continue signal it is detected
if the caps belong to a supported subtitle stream.
This makes automatic use of newly installed plugins.
Sebastian Dröge [Wed, 11 Nov 2009 16:08:47 +0000 (17:08 +0100)]
subtitleoverlay: Only recreate factory caps if necessary and cache them
Sebastian Dröge [Tue, 10 Nov 2009 17:27:15 +0000 (18:27 +0100)]
subtitleoverlay: Only update the factory list when the registry has changed
Also don't free the list every time we go to NULL.
Sebastian Dröge [Sun, 8 Nov 2009 14:04:53 +0000 (15:04 +0100)]
subtitleoverlay: Use gst_pad_get_caps_reffed()
Sebastian Dröge [Sat, 7 Nov 2009 20:38:10 +0000 (21:38 +0100)]
playbin2/playsink: Use new "silent" property instead of unlinking
This makes sure that subtitleoverlay still gets segment updates and
everything to pass on downstream. Without this segment problems happen.
Sebastian Dröge [Sat, 7 Nov 2009 20:10:27 +0000 (21:10 +0100)]
subtitleoverlay: Update segments after pushing the events downstream
This makes sure that we don't apply segments twice downstream. Also
always send our newsegment events downstream.
Sebastian Dröge [Sat, 7 Nov 2009 20:09:53 +0000 (21:09 +0100)]
subtitleoverlay: Add silent property to disable subtitles
This tries to disable subtitles in the overlay or renderer
and if that's not possible it goes into passthrough mode.
Sebastian Dröge [Sat, 7 Nov 2009 10:46:49 +0000 (11:46 +0100)]
subtitleoverlay: Set the video framerate on parsers if possible
Fixes bug #599649.
Sebastian Dröge [Sat, 7 Nov 2009 10:31:09 +0000 (11:31 +0100)]
subparse: Make fps a GstFraction typed property and use it properly
Iago Toral [Sat, 7 Nov 2009 10:08:19 +0000 (11:08 +0100)]
subparse: Add property for the video framerate
Sebastian Dröge [Fri, 6 Nov 2009 11:51:22 +0000 (12:51 +0100)]
playbin2: Handle external subtitles better
First of all, make sure that suburidecodebin never
errors out because of not-linked in case external subtitles
are used but then subtitles are disabled.
And then make sure that external subtitles always start from
the correct position and are not racing until EOS if they
get unselected and selected again.
Sebastian Dröge [Wed, 4 Nov 2009 16:29:07 +0000 (17:29 +0100)]
playbin2: Flush the subtitles before switching to a new subtitle stream
This makes sure that all currently shown subtitles disappear
and new ones can be shown as soon as possible.
Sebastian Dröge [Tue, 3 Nov 2009 11:47:55 +0000 (12:47 +0100)]
playbin2: Set subtitle caps as raw caps for the uridecodebins
This will make sure that no subparse is ever plugged and subtitleoverlay,
that subpicture streams are handled the same was as subtitles and that
subtitle renderers are used if available.
Fixes bugs #595123, #570753, #591662, #591706.
Sebastian Dröge [Tue, 3 Nov 2009 11:33:40 +0000 (12:33 +0100)]
playbin2/playsink: Remove everything related to subpicture streams
These will soon be handled the same way as subtitle streams.
Sebastian Dröge [Mon, 2 Nov 2009 14:50:17 +0000 (15:50 +0100)]
playsink: Add a queue before subtitleoverlay
This will improve playback, and the same thing is done
for subpicture streams too.
Sebastian Dröge [Mon, 2 Nov 2009 14:05:41 +0000 (15:05 +0100)]
playsink: Use subtitleoverlay for subtitles
Sebastian Dröge [Mon, 2 Nov 2009 06:43:42 +0000 (07:43 +0100)]
subtitleoverlay: Add to the docs
Sebastian Dröge [Tue, 13 Oct 2009 14:48:34 +0000 (16:48 +0200)]
subtitleoverlay: Add new element for generic subtitle overlaying
This autopluggs the required elements for parsing and rendering
different subtitle formats on a video stream.
Fixes bug #600370.
Olivier Crête [Thu, 12 Nov 2009 00:32:01 +0000 (19:32 -0500)]
theoradec: Keep timestamp from incoming buffer if it is valid
Fixes bug #601627.
Sebastian Dröge [Wed, 11 Nov 2009 13:00:26 +0000 (14:00 +0100)]
playback: Update factories list on every access if the registry has changed
This makes application's simpler because the element doesn't need to
go to NULL first to make use of newly installed plugins.
Fixes bug #601480.
Sebastian Dröge [Tue, 10 Nov 2009 17:13:25 +0000 (18:13 +0100)]
playback: When going from NULL->READY check if the registry has new features
This makes it possible to use newly installed plugins after going back
to NULL instead of requiring a new instance.
Fixes bug #599266.
Jan Schmidt [Tue, 10 Nov 2009 13:55:26 +0000 (13:55 +0000)]
appsrc: Clear the EOS state on a seek.
Allow seeking back into the stream after it hits EOS.
Sebastian Dröge [Tue, 10 Nov 2009 11:21:50 +0000 (12:21 +0100)]
audioresample: Update speex resampler to latest GIT
Tim-Philipp Müller [Tue, 10 Nov 2009 00:48:42 +0000 (00:48 +0000)]
playsink: assign chain->mute before using it
Fixes GObject warnings when starting totem.
David Schleef [Thu, 29 Oct 2009 05:10:33 +0000 (22:10 -0700)]
theora: Fix alignment of frames when converting
Fix logic inversion in calculating the offset in the theora
frame when copying to a GStreamer frame.
Edward Hervey [Mon, 9 Nov 2009 18:58:20 +0000 (19:58 +0100)]
playback: Fix the order in strcmp that I broke in previous commit.
Edward Hervey [Mon, 9 Nov 2009 18:16:21 +0000 (19:16 +0100)]
typefind: Reduce number of calls to gst_type_find_peek.
Shaves off a couple percents off typefinding
Edward Hervey [Mon, 9 Nov 2009 16:49:51 +0000 (17:49 +0100)]
playback: Avoid expensive API calls in tight loop.
We know we're dealing with GstPluginFeature.
Sebastian Dröge [Mon, 9 Nov 2009 17:11:42 +0000 (18:11 +0100)]
cddabasesrc: Add unit test for property settings
Also includes a regression test for bug #601104.
Sebastian Dröge [Mon, 9 Nov 2009 17:04:23 +0000 (18:04 +0100)]
cddabasesrc: Never return a negative track number in get_uri()
Sebastian Dröge [Mon, 9 Nov 2009 17:03:06 +0000 (18:03 +0100)]
cddabasesrc: Don't set the track to 1 every time a device is set
Fixes bug #601104.
Sebastian Dröge [Sun, 8 Nov 2009 10:27:10 +0000 (11:27 +0100)]
inputselector: Remove useless variables and fix a uninitialized variable compiler warnings
Sebastian Dröge [Fri, 6 Nov 2009 16:01:04 +0000 (17:01 +0100)]
decodebin2: Add property to disable/enable posting of stream-topology messages
Most people don't need this messages and generating them is quite
expensive.
Sebastian Dröge [Fri, 6 Nov 2009 14:12:06 +0000 (15:12 +0100)]
decodebin2: Protect subtitle elements and subtitle encoding by a new mutex
Using the object lock here can and will lead to deadlocks because
of deep-notifies of property changes: the deep-notify handler will
get the parent of objects, which will take the object lock again.
Fixes bug #600479.
Sebastian Dröge [Fri, 6 Nov 2009 12:13:38 +0000 (13:13 +0100)]
inputselector: Make sure that running_time->timestamp calculation never becomes negative
Mart Raudsepp [Fri, 6 Nov 2009 11:25:05 +0000 (13:25 +0200)]
examples: Correct casting of g_signal* funcs first arguments
This completes the deprecated GTK API fix in commits
81a0a986 and
79adfa54 - unlike gtk_signal_connect and co, g_signal_connect and
co take a gpointer, not a GtkObject.
Sebastian Dröge [Fri, 6 Nov 2009 11:25:53 +0000 (12:25 +0100)]
uridecodebin: Improve all-raw-caps detection for pads
Wim Taymans [Fri, 6 Nov 2009 11:19:47 +0000 (12:19 +0100)]
basesrc: fix startup position in the ringbuffer
When we start and we need to produce the first sample, go to the next sample
that will be written into the ringbuffer instead of trying to go to sample 0.
We relied on rather small ringbuffer sizes to correctly go to the current
sample, which breaks whith large buffers.
Fixes #600945
Sebastian Dröge [Fri, 6 Nov 2009 10:26:14 +0000 (11:26 +0100)]
inputselector: Use the start time (i.e. timestamp) as the last stop
Using the end time makes it impossible to replace buffers, which is
a big problem for subtitles that could have very long durations.
Sebastian Dröge [Fri, 6 Nov 2009 11:08:19 +0000 (12:08 +0100)]
textoverlay: Synchronize video/text based on the running time
Instead of simply using the buffer timestamps.
Sebastian Dröge [Fri, 6 Nov 2009 08:30:38 +0000 (09:30 +0100)]
textoverlay: Clip text buffers to the text segment and reset segments properly
Sebastian Dröge [Fri, 6 Nov 2009 08:01:34 +0000 (09:01 +0100)]
textoverlay: Put the video segment into the instance struct instead of allocating it separately
Sebastian Dröge [Fri, 6 Nov 2009 08:05:09 +0000 (09:05 +0100)]
textoverlay: Check if text timestamp/duration is valid before clipping
Tim-Philipp Müller [Thu, 5 Nov 2009 23:33:42 +0000 (23:33 +0000)]
theoradec: printf format fix
Olivier Crête [Thu, 5 Nov 2009 14:42:09 +0000 (15:42 +0100)]
gdpdepay: Clear adapter on flush and state change
Fixes #600469
Wim Taymans [Thu, 5 Nov 2009 12:12:19 +0000 (13:12 +0100)]
inputselector: use _get_caps_reffed()
Stefan Kost [Thu, 5 Nov 2009 11:00:27 +0000 (13:00 +0200)]
pad: rename new api from _refed to _reffed.
Due to popular demand rename the new api as we still can.
Wim Taymans [Wed, 4 Nov 2009 17:57:07 +0000 (18:57 +0100)]
playbin2: avoid copying caps
Use get_caps_refed() when we can.
Wim Taymans [Wed, 4 Nov 2009 17:31:09 +0000 (18:31 +0100)]
decodebin2: use new getcaps function to avoid copies
Use the gst_pad_get_caps_refed() to avoid some caps copy functions.
Wim Taymans [Wed, 4 Nov 2009 16:50:11 +0000 (17:50 +0100)]
uridecodebin: use faster element_link_pads
Use the faster gst_element_link_pads because we know for sure the sinkpad name
and we don't need to have the function search for a suitable pad anymore.
Wim Taymans [Wed, 4 Nov 2009 15:16:31 +0000 (16:16 +0100)]
baseaudiosink: make drift tolerance configurable
Add drift-tolerance property (defaulting to 20ms) to handle resync after clock
drift or timestamp drift instead of relying on the latency-time value for clock
drift and 500ms for timestamp drift.
Remove warning about discont timestamp and simply resync. The warning is in some
cases not correct and is triggered more frequently now that we lower the
tolerance value.
Sebastian Dröge [Wed, 4 Nov 2009 09:52:06 +0000 (10:52 +0100)]
playbin2: Return NOT_LINKED for unselected text pads from a demuxer
We want to return NOT_LINKED for unselected pads but only for pads
from the normal uridecodebin. This makes sure that subtitle streams
are not raced past audio/video from decodebin2's multiqueue.
For pads from suburidecodebin OK should always be returned, otherwise
it will most likely stop with an error.
Stefan Kost [Wed, 4 Nov 2009 07:20:59 +0000 (08:20 +0100)]
inputselector: also add inline to the proto to fix the build
Merged from gst-plugins-bad,
e1e9be6dbe1bd0df0543f2a72dcf9cc6d644dd78.
Sebastian Dröge [Tue, 3 Nov 2009 11:01:16 +0000 (12:01 +0100)]
uridecodebin: Initialize caps property with the default raw caps
Sebastian Dröge [Tue, 3 Nov 2009 10:48:40 +0000 (11:48 +0100)]
decodebin2: Use static caps for the default raw caps and put them into a separate header
This way we can use the same default raw caps everywhere.
Sebastian Dröge [Tue, 3 Nov 2009 07:26:37 +0000 (08:26 +0100)]
textoverlay: First draw outline text and then the real text
Improves the output a bit because no parts of the outline are
overwritten again.
Josep Torra Valles [Sat, 31 Oct 2009 13:02:40 +0000 (14:02 +0100)]
playbin: Make sure to keep a reference on the volume element
Fixes null pointer dereferences under certain circumstances.
Fixes bug #595401.
Edward Hervey [Sat, 31 Oct 2009 08:47:54 +0000 (09:47 +0100)]
po: queue2 has moved to core
Sebastian Dröge [Fri, 30 Oct 2009 08:24:30 +0000 (09:24 +0100)]
playsink: Reset {mute,volume}-changed flags after setting the volume
These flags are there to make sure that the volume is set, if there
is no volume element yet.
Sebastian Dröge [Fri, 30 Oct 2009 08:24:03 +0000 (09:24 +0100)]
playsink: If notify::{volume,mute} is triggered by the volume element, update our internal state
Sebastian Dröge [Thu, 29 Oct 2009 13:30:31 +0000 (14:30 +0100)]
playsink: Proxy notify::volume and notify::mute from the volume/mute elements (or sinks)
Fixes bug #600027.
Sebastian Dröge [Thu, 29 Oct 2009 13:19:09 +0000 (14:19 +0100)]
playbin2: Proxy notify::volume and notify::mute from the playsink to playbin2
Sebastian Dröge [Thu, 29 Oct 2009 10:37:04 +0000 (11:37 +0100)]
queue2: Remove inspect file
Sebastian Dröge [Thu, 29 Oct 2009 10:29:46 +0000 (11:29 +0100)]
queue2: Remove from gst-plugins-base
This is now in coreplugins.
Stefan Kost [Wed, 28 Oct 2009 09:29:36 +0000 (11:29 +0200)]
docs: include more indexes
Stefan Kost [Wed, 28 Oct 2009 09:13:20 +0000 (11:13 +0200)]
docs: turn entities into xi:includes
This is faster to process and easier to maintain. Its also less 80s.
Stefan Kost [Wed, 28 Oct 2009 08:17:43 +0000 (10:17 +0200)]
rtp: dump packets which we reject
Tim-Philipp Müller [Wed, 28 Oct 2009 01:01:35 +0000 (01:01 +0000)]
.gitignore: ignore basetime unit test binary
Tim-Philipp Müller [Wed, 28 Oct 2009 00:59:35 +0000 (00:59 +0000)]
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.
Wim Taymans [Tue, 27 Oct 2009 14:23:00 +0000 (15:23 +0100)]
queue2: add custom acceptcaps function
Wim Taymans [Tue, 27 Oct 2009 14:22:22 +0000 (15:22 +0100)]
decodebin2: implement low/high watermark property
Wim Taymans [Fri, 23 Oct 2009 18:56:11 +0000 (14:56 -0400)]
seek: add checkbox to enable buffering
Wim Taymans [Fri, 23 Oct 2009 18:54:47 +0000 (14:54 -0400)]
uridecodebin: don't use 2 buffering elements
Only use the multiqueue buffering when we don't have a stream (and thus are
using queue2 to do the buffering already).
Wim Taymans [Fri, 23 Oct 2009 18:34:42 +0000 (14:34 -0400)]
playbin2: add flag to enable decodebin buffering
Add a flag that enables buffering in decodebin.
Wim Taymans [Fri, 23 Oct 2009 18:32:29 +0000 (14:32 -0400)]
decodebin2: buffering is implemented now
Wim Taymans [Fri, 23 Oct 2009 18:30:52 +0000 (14:30 -0400)]
uridecodebin: buffering is implemented now
Wim Taymans [Fri, 23 Oct 2009 18:09:17 +0000 (14:09 -0400)]
decodebin2: configure use-buffering on multiqueue
Wim Taymans [Fri, 23 Oct 2009 17:58:25 +0000 (13:58 -0400)]
uridecodebin: use 0 for max buffer size
Wim Taymans [Fri, 23 Oct 2009 17:53:21 +0000 (13:53 -0400)]
uridecodebin: set some reasonable defaults
Wim Taymans [Fri, 23 Oct 2009 17:44:12 +0000 (13:44 -0400)]
uridecodebin: set buffering properties on decodebin2
Propagate the buffering properties on decodebin2 but only if we are not already
doing download buffering.
Wim Taymans [Fri, 23 Oct 2009 15:52:09 +0000 (11:52 -0400)]
uridecodebin: add use-buffering property
Add a use-buffering property that will perform buffering on the parsed or
demuxed media.
Wim Taymans [Fri, 23 Oct 2009 15:31:47 +0000 (11:31 -0400)]
decodebin2: refactor queue size configuration.
Refactor the queue size configuration into a new method.
Use the same queue values for buffering as for preroll.
Wim Taymans [Fri, 23 Oct 2009 15:08:50 +0000 (11:08 -0400)]
decodebin2: move error path down
Wim Taymans [Fri, 23 Oct 2009 15:02:40 +0000 (11:02 -0400)]
decodebin2: implement max queue size properties
Wim Taymans [Fri, 23 Oct 2009 14:42:23 +0000 (10:42 -0400)]
decodebin2: add properties for buffering
Add properties that can be used to configure the multiqueue buffers and
buffering methods