Sebastian Dröge [Mon, 15 Sep 2014 22:07:18 +0000 (01:07 +0300)]
video-frame: Don't ref buffers twice when mapping
Sebastian Dröge [Mon, 15 Sep 2014 21:41:55 +0000 (00:41 +0300)]
app: Add FIXME comment for making the instance/class structs private
Tim-Philipp Müller [Mon, 15 Sep 2014 20:51:15 +0000 (21:51 +0100)]
appsrc: fix recent ABI breakage caused by GstAppSrc structure size increase
Also fixes 'make check'.
https://bugzilla.gnome.org/show_bug.cgi?id=728379
Ognyan Tonchev [Mon, 15 Sep 2014 14:23:57 +0000 (16:23 +0200)]
videodecoder: do not leak pool and allocator in error case
https://bugzilla.gnome.org/show_bug.cgi?id=736679
Sebastian Dröge [Fri, 12 Sep 2014 11:41:01 +0000 (14:41 +0300)]
videofilter: Use new GST_VIDEO_FRAME_MAP_FLAG_NO_REF
https://bugzilla.gnome.org/show_bug.cgi?id=736118
Sebastian Dröge [Fri, 12 Sep 2014 11:39:16 +0000 (14:39 +0300)]
video-frame: Add GST_VIDEO_FRAME_MAP_FLAG_NO_REF
This makes sure that the buffer is not reffed another time when
storing it in the GstVideoFrame, keeping it writable if it was
writable.
https://bugzilla.gnome.org/show_bug.cgi?id=736118
Sebastian Dröge [Fri, 12 Sep 2014 11:27:44 +0000 (14:27 +0300)]
videofilter: Unref buffers before calling the transform_frame functions
GstVideoFrame has another reference, so the buffer looks unwriteable,
meaning that we can't attach any metas or anything to it
https://bugzilla.gnome.org/show_bug.cgi?id=736118
Garg [Fri, 5 Sep 2014 16:54:10 +0000 (09:54 -0700)]
audiobasesink: Fix deadlock caused by holding object lock while calling clock functions
Issue:
During a PAUSED->PLAYING transition when we are rendering an audio buffer in AudioBaseSink
we make adjustments to the sink's provided clock i.e. fix clock calibration using the external
pipeline clock, within "gst_audio_base_sink_sync_latency function inside gstaudiobasesink.c".
For the calibration adjustment we need to get the sink clock time using "gst_audio_clock_get_time".
But before calling "gst_audio_clock_get_time" we acquire the Object Lock on the Sink. If sink is
a pulsesink, "gst_audio_clock_get_time" internally calls "gst_pulsesink_get_time" which needs to
acquire Pulse Audio Main Loop Lock before querying Pulse Audio for its stream time using
"pa_stream_get_time". Please see "gst_pulsesink_get_time in pulsesink.c".
So the situation here is we have acquired the Object lock on Sink and need PA Main Loop Lock.
Now Pulse Audio Main Thread itself might be in the process of posting a stream status
message after Paused to Playing transition which in turn acquires the PA Main loop lock and
needs the Object Lock on Pulse Sink. This causes a deadlock with the earlier render thread.
Fix:
Do not acquire the object Lock on Sink before querying the time on PulseSink clock. This is
similar to the way we have used get_time at other places in the code. Acquire it after the
get_time call. This way PA Main loop will be able to post its stream status message by
acquiring the Sink Object lock and will eventually release its Main Loop lock needed for
gst_pulsesink_get_time to continue.
https://bugzilla.gnome.org/show_bug.cgi?id=736071
Nicola Murino [Thu, 4 Sep 2014 09:56:50 +0000 (11:56 +0200)]
appsrc: Add example that shows gst_app_src_push_sample() usage
Nicola Murino [Fri, 5 Sep 2014 09:14:51 +0000 (11:14 +0200)]
appsrc: Add push_sample() convenience function for easy appsink -> appsrc use
https://bugzilla.gnome.org/show_bug.cgi?id=728379
Tim-Philipp Müller [Thu, 11 Sep 2014 21:19:05 +0000 (22:19 +0100)]
xvimagesink: only try to set XV_ITURBT_709 port attribute if it exists
Don't try to set port attribute that's not advertised by the
adaptor. Fixes videotestsrc ! xvimagesink aborting with
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 151 (XVideo)
Minor opcode of failed request: 13 ()
on intel HD4600 graphics with kernel 3.16, xserver 1.15,
intel driver 2.21.15.
Thiago Santos [Thu, 11 Sep 2014 19:58:35 +0000 (16:58 -0300)]
decodebin: protect buffering message handling
Use the object lock to avoid concurrent processing which leads
to small disasters (assertions or crashes)
Ognyan Tonchev [Tue, 9 Sep 2014 09:37:26 +0000 (11:37 +0200)]
rtspconnection: ignore timeout in session request header
The timeout parameter is only allowed in a session response header
but some clients, like Honeywell VMS applications, send it as part
of the session request header. Ignore everything from the semicolon
to the end of the line when parsing session id.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=736267
George Kiagiadakis [Fri, 28 Mar 2014 12:02:54 +0000 (13:02 +0100)]
playbin: filter out buffering messages when switching uri
When switching URI from about-to-finish, playbin starts decoding the new
URI and the queue2 inside uridecodebin starts emitting buffering messages
immediately. However, the queue(s) inside playsink still have buffers to
play and the pipeline doesn't need to pause for buffering, so we should
not send those buffering messages up to the application, otherwise there
is an audible glitch caused by pausing the pipeline for a very short time.
https://bugzilla.gnome.org/show_bug.cgi?id=727255
Kipp Cannon [Tue, 8 Jul 2014 16:37:41 +0000 (12:37 -0400)]
audioresample: don't skip input samples
when downsampling, the output buffer can be filled before all the input
samples are consumed. this is correct: when downsampling, several input
samples are needed for each output sample, so when only a small number of
input samples are available the number of output samples produced can be 0.
the resampler, however, was discarding those extra input samples instead of
clocking them into its filter history for the next iteration. this patch
fixes this by removing the check that the output buffer is full. the code
now always loops until all input samples are consumed, and relies on the
calling code to have provided a suitably sized location for the output.
note that there are already other checks in place in the calling code to
ensure that this is the case.
https://bugzilla.gnome.org/show_bug.cgi?id=732908
Arnaud Vrac [Thu, 31 Jan 2013 12:49:00 +0000 (13:49 +0100)]
basetextoverlay: get framerate from previously parsed video info
Arnaud Vrac [Thu, 31 Jan 2013 12:47:35 +0000 (13:47 +0100)]
basetextoverlay: do not ask for a bufferpool when checking for composition meta
Arnaud Vrac [Thu, 4 Sep 2014 13:06:31 +0000 (15:06 +0200)]
basetextoverlay: schedule reconfigure on source pad when negotiation fails
The source pad might be flushing while negotiating, resulting in
set_caps or the ALLOCATION query failing. In this case set the
reconfigure flag on the source pad so that negotiation is retried on the
next buffer.
Arnaud Vrac [Thu, 31 Jan 2013 14:38:18 +0000 (15:38 +0100)]
basetextoverlay: just forward the seek event to sink pads like other events
https://bugzilla.gnome.org/show_bug.cgi?id=735844
Nicola Murino [Thu, 4 Sep 2014 10:13:45 +0000 (12:13 +0200)]
basetextoverlay: remove unneeded cairo transparence setting
he code here:
http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/ext/pango/gstbasetextoverlay.c#n1554
should make transparent the box that contains the text, I think this code is
not correct, it should be:
if (overlay->want_shading) {
double alpha = overlay->shading_value / 255.0;
cairo_paint_with_alpha (cr, alpha);
}
however I think this code could be removed, we already do a shaded background,
why shade the box behind the text with cairo too? only one shading is needed so
we must shade with cairo or with methods like these:
http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/ext/pango/gstbasetextoverlay.c#n1642
not both
https://bugzilla.gnome.org/show_bug.cgi?id=736028
Nicola Murino [Tue, 2 Sep 2014 11:10:34 +0000 (13:10 +0200)]
basetextoverlay: Make shading_value a property
https://bugzilla.gnome.org/show_bug.cgi?id=735879
Vineeth T M [Wed, 3 Sep 2014 09:53:26 +0000 (15:23 +0530)]
videorate: GstStructure refcount critical message
s3 is not being initialized when run in a loop
and the same was being freed, which resulted in the crash
https://bugzilla.gnome.org/show_bug.cgi?id=735952
Sebastian Dröge [Tue, 2 Sep 2014 12:37:38 +0000 (15:37 +0300)]
decodebin: Also include the raw caps in the error message, not just the human readable description
Sebastian Dröge [Tue, 2 Sep 2014 09:59:18 +0000 (12:59 +0300)]
decodebin: Include codec description for missing plugins in the error message
If we had plugins and an error occurred we only include the error message
caused by this, otherwise we will include the codec description as generated
from the caps.
This allows to detect which exact codec was missing instead of getting a
generic "no suitable decoders found" error message.
Thiago Santos [Mon, 1 Sep 2014 18:23:27 +0000 (15:23 -0300)]
tests: textoverlay: add test to reproduce fakesink scenario
Adds a new test to textoverlay to make sure it can properly handle
elements that have ANY caps but fail to add the overlay meta in
the allocation query.
This test verifies that textoverlay won't use the caps features even
knowing that the overlay meta is accepted when querying the downstream
caps because it also needs downstream to confirm by putting the meta
in the allocation query.
https://bugzilla.gnome.org/show_bug.cgi?id=735800
Thiago Santos [Mon, 1 Sep 2014 15:38:02 +0000 (12:38 -0300)]
basetextoverlay: properly fallback to non-overlay caps
When downstream claims to accept the overlay meta but fails to
provide it in the allocation query, properly fallback to setting
a new caps without the overlay meta as that is not going to be used.
Only do this if the original caps doesn't have the overlay already,
otherwise there isn't much that can be done.
https://bugzilla.gnome.org/show_bug.cgi?id=735800
Guillaume Desmottes [Mon, 1 Sep 2014 13:06:51 +0000 (15:06 +0200)]
oggdemux: don't set segment.base in pad_submit_packet()
Setting segment.base in the segment sent from gst_ogg_demux_handle_page() is
enough to ensure that chained oggs are played corretly (see bgo#706569).
Tweaking the base in gst_ogg_pad_submit_packet() as well result in delays when
playing a file with start != -1.
https://bugzilla.gnome.org/show_bug.cgi?id=735808
Sebastian Dröge [Mon, 1 Sep 2014 09:28:24 +0000 (12:28 +0300)]
textoverlay: Don't hold any mutexes while calling negotiate
It's not done in any other code calling negotiate and will cause deadlocks
as it is sending events and queries in the pipeline.
Specifically this pipeline was deadlocking:
gst-launch-1.0 videotestsrc ! textoverlay ! textoverlay ! fakesink
Guillaume Desmottes [Fri, 29 Aug 2014 12:00:06 +0000 (14:00 +0200)]
oggdemux: accumulate base time
Base time should be accumulated so non flushing seeks have the expected base.
Not accumulating result in segments appearing as "too late" and so are not
played by the sink.
https://bugzilla.gnome.org/show_bug.cgi?id=735509
Tim-Philipp Müller [Fri, 29 Aug 2014 18:15:56 +0000 (19:15 +0100)]
textoverlay: remove code that can't be reached
If this code could ever be reached, it would leak
memory (CID 1231978), but gst_caps_get_features()
never returns NULL, so that can't happen.
Tim-Philipp Müller [Fri, 29 Aug 2014 17:18:10 +0000 (18:18 +0100)]
encoding: remove assignment that's no longer needed
CID 1231980
Peter G. Baum [Wed, 23 Jul 2014 19:25:24 +0000 (21:25 +0200)]
riff: Recognize RF64 as RIFF file
https://bugzilla.gnome.org/show_bug.cgi?id=735631
Göran Jönsson [Wed, 27 Aug 2014 11:45:57 +0000 (13:45 +0200)]
rtspconnection: Protect readsrc, writesrc and controllsrc with a mutex
Fixes a crash when controlsrc, readsrc or writesrc are modified from
gst_rtsp_source_dispatch_read/write and gst_rtsp_watch_reset at the
same time.
https://bugzilla.gnome.org/show_bug.cgi?id=735569
Sebastian Dröge [Thu, 28 Aug 2014 14:13:05 +0000 (17:13 +0300)]
playsinkconvertbin: setcaps() always returns TRUE and the return value is unused
Change it to a void return value. The caps are forwarded afterwards via
gst_pad_event_default() and not inside this function.
CID 1226477
Sebastian Dröge [Thu, 28 Aug 2014 14:06:22 +0000 (17:06 +0300)]
videodecoder: Fix broken boolean expression
We can seek with end_type==NONE and end_type==SET && end_position=-1. The
check for end_type!=NONE made the second condition impossible.
CID 1226440
Sebastian Dröge [Thu, 28 Aug 2014 14:00:26 +0000 (17:00 +0300)]
audiodecoder: Fix broken boolean expression
We can seek with end_type==NONE and end_type==SET && end_position=-1. The
check for end_type!=NONE made the second condition impossible.
CID 1226439
Sebastian Dröge [Mon, 25 Aug 2014 17:59:40 +0000 (20:59 +0300)]
decodebin: Include information from the error messages of tried but failed elements in the missing plugin errors
Sebastian Dröge [Mon, 25 Aug 2014 13:22:46 +0000 (16:22 +0300)]
decodebin: Initialize local variables for every retry
Sebastian Dröge [Mon, 25 Aug 2014 12:15:06 +0000 (15:15 +0300)]
decodebin: Remove error case that resulted in two error messages
We already send one in gst_decode_bin_expose() for this case. Only
if we're unable to typefind the caps another error message is needed.
Tim-Philipp Müller [Sun, 24 Aug 2014 21:36:59 +0000 (22:36 +0100)]
typefinding: tighten checks for 'freeform mp3' a little
Freeform mp3s typically have bitrates higher than the
otherwise max allowed rate. Prevents misdetection of
some truetype font files as mp3.
https://bugzilla.gnome.org/show_bug.cgi?id=732923
Sebastian Dröge [Mon, 25 Aug 2014 10:14:36 +0000 (13:14 +0300)]
audiodecoder: Don't ignore ::start/stop return values
Tim-Philipp Müller [Mon, 18 Aug 2014 12:04:31 +0000 (13:04 +0100)]
spec: add gst-device-monitor-1.0 to RPM .spec file
https://bugzilla.gnome.org/show_bug.cgi?id=734944
Thiago Santos [Thu, 14 Aug 2014 19:57:01 +0000 (16:57 -0300)]
playsinkconvertbin: only intersect with the filter at the end
Otherwise we might change some capsfeatures from ANY to the specific
value from the filter and do not filter those out in case the
sink doesn't support them
https://bugzilla.gnome.org/show_bug.cgi?id=734822
Thibault Saunier [Fri, 15 Aug 2014 11:31:53 +0000 (13:31 +0200)]
discoverer: Set 'processing = FALSE' when done discovering SYNC
This avoids a race where we would get new tag but we are already
prerolled and analyzing results.
It is the way it is supposed to be handled as stated in comment:
"If preroll is complete, drop these tags - the collected information is
possibly already being processed and adding more tags would be racy"
Thiago Santos [Thu, 14 Aug 2014 20:21:44 +0000 (17:21 -0300)]
gstvideo: add missing entry to win32 .def
gst_video_guess_framerate
Jan Schmidt [Thu, 14 Aug 2014 13:53:16 +0000 (23:53 +1000)]
video: Add gst_video_guess_framerate() function
Takes a nominal frame duration and returns a standard
FPS if it matches closely enough (< 0.1%), or else
calculates a framerate that'll do.
Jan Schmidt [Thu, 14 Aug 2014 15:04:45 +0000 (01:04 +1000)]
video: Various simple docs fixes
Jan Schmidt [Fri, 8 Aug 2014 10:01:20 +0000 (20:01 +1000)]
videodecoder: Reset last_timestamp_out on new segment
Reset last_timestamp_out when applying the output segment
change, to avoid decoder confusion over new timestamp timelines when
a seamless segment change happens.
Move some locks/unlocks to later when they're actually needed.
https://bugzilla.gnome.org/show_bug.cgi?id=734617
Thiago Santos [Mon, 14 Jul 2014 15:29:50 +0000 (12:29 -0300)]
decodebin: handle group switching for deadend group
Gracefully handle switching groups that all pads are deadend.
This can happen when quickly switching programs on mpegts as the
output is unaligned it can happen that not enough data was accumulated at
parsers to generate any buffers, causing the stream to receive EOS before
any data can be decoded.
To handle this scenario, the _expose function now also gets if there is
any next group to be exposed along with the list of endpads. If there are
no endpads and there is another group to expose it will switch to this next
group and then retry exposing the streams.
Also, the requirement to only switch from the chain that has the endpad had
to be modified to care for when the drainpad is NULL
https://bugzilla.gnome.org/show_bug.cgi?id=733169
Thiago Santos [Fri, 11 Jul 2014 21:51:44 +0000 (18:51 -0300)]
decodebin: consider all deadend pads as drained
Otherwise when switching out a group with a deadend pad it will block
as it would be waiting for EOS on a deadend that already got one
https://bugzilla.gnome.org/show_bug.cgi?id=733169
Thiago Santos [Tue, 12 Aug 2014 16:41:04 +0000 (13:41 -0300)]
basetextoverlay: fix caps negotiation filter
Sebastian Dröge [Wed, 13 Aug 2014 11:28:05 +0000 (14:28 +0300)]
playsinkconvertbin: Make sure to intersect raw caps with our converter caps
Otherwise we end up allowing video/x-raw with arbitrary caps features that are
not handled by our converters.
https://bugzilla.gnome.org/show_bug.cgi?id=734683
Jan Schmidt [Tue, 12 Aug 2014 13:18:57 +0000 (23:18 +1000)]
audiodecoder: Don't drain and flush on SEGMENT events.
As was done for the base video decoder in commit 695675, don't
flush out the decoder on a new SEGMENT event. Segment events
may be a new segment, but are also often segment updates for
the current segment where the old data should be kept. For new
segments, a STREAM_START event will already trigger a drain, but
make sure to flush any remaining partial data then as well.
https://bugzilla.gnome.org/show_bug.cgi?id=734666
Sanjay NM [Mon, 11 Aug 2014 04:45:14 +0000 (10:15 +0530)]
videoscale: Add NV21 support
https://bugzilla.gnome.org/show_bug.cgi?id=734650
Matthieu Crapet [Mon, 11 Aug 2014 16:21:26 +0000 (18:21 +0200)]
tests: fix decodebin signal used in icles/playback/ decodetest, test and test5
Since release 1.1.4, "new-decoded-pad" no longer exists.
Thiago Santos [Fri, 8 Aug 2014 15:46:47 +0000 (12:46 -0300)]
basetextoverlay: rework caps negotiation
Make textoverlay negotiate caps more correctly.
1) Check what caps we received in the video-sink
2) If it already has the overlay meta -> use it directly
3) If it doesn't, textoverlay try adding the overlay meta and using it,
if downstream doesn't support it, just use what is received in the
video-sink
4) Check if the allocation query also supports the meta to enable
really using it
Before it wasn't really doing renegotiation of any kind, just
re-checking if it should use the overlay meta or not
Also had to update the caps in the test as memory:SystemMemory seems
to be required when you use a caps feature otherwise intersection/subset
checks will fail.
https://bugzilla.gnome.org/show_bug.cgi?id=733916
Thiago Santos [Thu, 7 Aug 2014 20:35:05 +0000 (17:35 -0300)]
basetextoverlay: always intersect with the filter caps
Avoids returning values that upstream can't produce
https://bugzilla.gnome.org/show_bug.cgi?id=733916
Thiago Santos [Wed, 30 Jul 2014 19:59:15 +0000 (16:59 -0300)]
encodebin: delay missing encoder error as passthrough is still possible
Set up a fakesink with a pad probe to replace the missing encoder to detect
if encoding was really required and only error out in this case. Otherwise
just let passthrough branch work.
This delays the error posting from the set_state function to when buffers
are really flowing. Unit test updated accordingly
https://bugzilla.gnome.org/show_bug.cgi?id=650652
Sebastian Dröge [Mon, 11 Aug 2014 08:57:43 +0000 (10:57 +0200)]
decodebin: Remove buffering special casing for adaptive streaming demuxers
They output smaller buffers now and we should be able to handle the buffering
limits like in every other situation now.
Jan Alexander Steffens (heftig) [Thu, 7 Aug 2014 08:44:03 +0000 (10:44 +0200)]
videodecoder: Don't set decoding timestamps on raw video
https://bugzilla.gnome.org/show_bug.cgi?id=733720
George Kiagiadakis [Thu, 7 Aug 2014 15:10:41 +0000 (18:10 +0300)]
videodecoder: In reverse playback, flush the output queue after decoding each keyframe chain
This fixes the reverse playback scenario when upstream is not fully
parsing the stream and does not send every keyframe chain separately
with the DISCONT flag on the keyframe.
To explain this, let's suppose we have this stream:
0 1 2 3 4 5 6 7 8
K K K
In most circumstances, the upstream parser will chain in the
decoder the buffers in the following order:
6 7 8 3 4 5 0 1 2
D D D
In this case, GstVideoDecoder will flush the parse queue every time
it receives discont (D) and we will eventually get in the output queue:
(flush here) 8 7 6 (flush here) 5 4 3 (flush here) 2 1 0
In case the upstream parser doesn't do this work, though,
GstVideoDecoder will receive the whole stream at once and will flush
the parse queue afterwards:
0 1 2 3 4 5 6 7 8
D
During the flush, it will look backwards for keyframes and will
decode in this order:
6 7 8 3 4 5 0 1 2
This is the same order that it would receive from upstream if
upstream was parsing and looking for the keyframes, only that now
there is no flushing of the output queue in between keyframes,
which will result in the output queue looking like this:
2 1 0 6 5 3 8 7 6
This will confuse downstream obviously and will play incorrectly.
This patch forces the decoder to flush the output queue every time
it picks a new keyframe to decode, so it will end up decoding 6 7 8
and then flushing before picking 3 for decoding, so the output will
get 8 7 6 before 6 5 3 and the video will play back correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=734441
Tim-Philipp Müller [Sun, 10 Aug 2014 16:30:18 +0000 (17:30 +0100)]
configure: use pkg-config to detect x11 and xv libs
AC_PATH_XTRA macro unnecessarily pulls in libSM and libICE.
https://bugzilla.gnome.org/show_bug.cgi?id=731047
Tim-Philipp Müller [Sun, 10 Aug 2014 16:27:14 +0000 (17:27 +0100)]
xvimage: fix crash when outputting debug log
Can't print a GstMemory via GST_PTR_FORMAT, it will crash
inside GObject checking if it's a GObject, and we can't
check generically whether it's a derived GstMemory type,
as boxed types don't allowe derivation.
Sebastian Rasmussen [Sat, 9 Aug 2014 12:14:48 +0000 (14:14 +0200)]
audioencoder: Mark caps argument as not being transferred
https://bugzilla.gnome.org/show_bug.cgi?id=734540
Sebastian Rasmussen [Sat, 9 Aug 2014 12:20:32 +0000 (14:20 +0200)]
vorbisenc: Improve annotation of internal function
https://bugzilla.gnome.org/show_bug.cgi?id=734541
Sebastian Rasmussen [Wed, 6 Aug 2014 11:41:46 +0000 (13:41 +0200)]
tests: Add missing unrefs of objects after use
Unreffing the objects returned by gst_bin_get_by_name() and
gst_pipeline_get_use() were missing in several tests, so add these.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734359
Sebastian Rasmussen [Wed, 6 Aug 2014 11:22:56 +0000 (13:22 +0200)]
oggdemux: Unref peer pad after use in error case
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734350
Sebastian Dröge [Wed, 6 Aug 2014 08:07:42 +0000 (10:07 +0200)]
appsrc: Some minor fixes and cleanup
Wang Xin-yu (王昕宇) [Wed, 6 Aug 2014 13:59:32 +0000 (09:59 -0400)]
appsrc: Make caps set action queued together with buffer
https://bugzilla.gnome.org/show_bug.cgi?id=729760
Sebastian Dröge [Fri, 1 Aug 2014 13:00:46 +0000 (15:00 +0200)]
playbin: Keep a reference to the playsink sinkpads
Otherwise playsink might get shut down without us noticing
that our pad references are gone now.
Probably fixes https://bugzilla.gnome.org/show_bug.cgi?id=733165
Mohammed Sameer [Wed, 30 Jul 2014 17:53:53 +0000 (20:53 +0300)]
streamsynchronizer: don't unset DISCONT flag
Unsetting DISCONT flag means we need to copy the buffer. This copy operation
mandates that all GstMemory should be copy-able which is not always the case
https://bugzilla.gnome.org/show_bug.cgi?id=727409
Edward Hervey [Thu, 31 Jul 2014 16:40:59 +0000 (18:40 +0200)]
Makefile: Add usage of build-checks step
Allows building checks without running them
Edward Hervey [Thu, 31 Jul 2014 14:09:41 +0000 (16:09 +0200)]
check: Fix include path of rtp checks
Fixes make distcheck
Thibault Saunier [Wed, 30 Jul 2014 13:23:39 +0000 (15:23 +0200)]
pbutils: discoverer: Always set the pipeline back to NULL after an error
Otherwize the pipeline would be in an wrong state and on the next
iteration any kind of error could happen
Everytime an error happens in a pipeline the application has to set the
pipeline back to NULL instead of READY.
https://bugzilla.gnome.org/show_bug.cgi?id=733976
Thiago Santos [Tue, 29 Jul 2014 17:20:42 +0000 (14:20 -0300)]
decodebin: add missing 'time' word to debug message
It prints the buffers, bytes and time limits, but 'time' was missing
from the string.
Sebastian Dröge [Mon, 28 Jul 2014 14:56:08 +0000 (16:56 +0200)]
playbin: Pass through NO_PREROLL state change returns
Fixes playback of live pipelines.
Sebastian Dröge [Mon, 28 Jul 2014 14:55:17 +0000 (16:55 +0200)]
uridecodebin: Pass through NO_PREROLL state change returns
Fixes playback of live pipelines.
Tim-Philipp Müller [Sat, 26 Jul 2014 13:52:01 +0000 (14:52 +0100)]
playbin: fix 'attempt to unlock mutex that was not locked' in error code path
Fixes playbin unit test with latest GLib.
Nicolas Dufresne [Tue, 8 Jul 2014 20:59:37 +0000 (16:59 -0400)]
videoencoder: Don't delay set_format
This prevent implementing allocation query, as the format need to be
known in order to determin the size and number of buffers needed.
Note: This may lead to few regressions that will need fixing
https://bugzilla.gnome.org/show_bug.cgi?id=732288
Sebastian Dröge [Wed, 23 Jul 2014 17:51:36 +0000 (19:51 +0200)]
decodebin: Don't unref caps for which we don't own a reference... get one first
https://bugzilla.gnome.org/show_bug.cgi?id=733615
Sebastian Dröge [Wed, 23 Jul 2014 10:36:15 +0000 (12:36 +0200)]
playbin: Go asynchronously from READY to PAUSED
We now add all our elements to uridecodebin *after*
GstBin::change_state(READY->PAUSED), so we need to post async-start
and async-done messages ourselves if we want to work async.
https://bugzilla.gnome.org/show_bug.cgi?id=733495
Sebastian Dröge [Wed, 23 Jul 2014 10:27:36 +0000 (12:27 +0200)]
uridecodebin: Go asynchronously from READY to PAUSED
We now add all our elements to uridecodebin *after*
GstBin::change_state(READY->PAUSED), so we need to post async-start
and async-done messages ourselves if we want to work async.
https://bugzilla.gnome.org/show_bug.cgi?id=733495
Vivia Nikolaidou [Mon, 21 Jul 2014 12:54:05 +0000 (15:54 +0300)]
discoverer: Pretty-print topology tags
Call the code used in properties for topology tags too.
Side-effect achieved: more tags printed, buffers (e.g. images) shortened.
Sebastian Dröge [Mon, 21 Jul 2014 11:53:17 +0000 (13:53 +0200)]
discoverer: Fix code style a bit
if (...)
one_line;
else if (...) {
many_lines;
} else
one_line;
looks a bit confusing.
Vivia Nikolaidou [Mon, 21 Jul 2014 10:48:31 +0000 (13:48 +0300)]
discoverer: prettier image tag printing
Rather than dumping the serialized sample value, the code now
prints the number of bytes in the buffer, then the caps in a
human-readable format.
https://bugzilla.gnome.org/show_bug.cgi?id=733482
Sebastian Dröge [Thu, 10 Jul 2014 10:39:46 +0000 (12:39 +0200)]
audiodecoder: Handle CAPS events immediately instead of delaying them
https://bugzilla.gnome.org/show_bug.cgi?id=733147
Sebastian Dröge [Fri, 11 Jul 2014 19:51:05 +0000 (21:51 +0200)]
videodecoder: Handle CAPS events immediately instead of delaying them
https://bugzilla.gnome.org/show_bug.cgi?id=733147
Sebastian Dröge [Tue, 15 Jul 2014 15:34:01 +0000 (17:34 +0200)]
playbin: Fix unit test for last change
It will successfully asynchronously go to PAUSED now and
later fail.
Sebastian Dröge [Tue, 15 Jul 2014 15:23:24 +0000 (17:23 +0200)]
uridecodebin: Create new sources after chaining up to the parent class
Otherwise we start the new sources already before the parent class
got ready to start.
Sebastian Dröge [Tue, 15 Jul 2014 15:20:05 +0000 (17:20 +0200)]
playbin: Create new sources after chaining up to the parent class
Otherwise we start the new sources already before the parent class
got ready to start.
Sebastian Dröge [Thu, 10 Jul 2014 14:26:08 +0000 (16:26 +0200)]
playbin-complex: Change template name from %d to the more common %u
Sebastian Dröge [Thu, 10 Jul 2014 14:24:36 +0000 (16:24 +0200)]
decodebin: Link Parser/Converter directly and already connect to pad-added and other signals before setting elements to PAUSED
otherwise we're going to
a) start Parser/Converter before they are linked to their capsfilter,
breaking their negotiation of a proper stream format
b) start demuxers without having connected to their pad-added signals. We
miss pads and in the worst case don't link any pads at all
Sebastian Dröge [Thu, 10 Jul 2014 10:51:22 +0000 (12:51 +0200)]
decodebin: Send sticky events to the new element after setting it to PAUSED
... and if this fails for whatever reason we skip the element and instead
try with the next element. This allows us to handle elements that fail
when setting caps on them by just skipping to the next alternative element.
Sebastian Dröge [Thu, 10 Jul 2014 10:50:17 +0000 (12:50 +0200)]
decodebin: Only link elements further after setting them to PAUSED
They might fail to go to PAUSED, and when connecting them further
we might already expose their srcpads on decodebin if we're unlucky.
This prevents us to handle failures going to PAUSED gracefully.
Sebastian Dröge [Thu, 10 Jul 2014 10:22:35 +0000 (12:22 +0200)]
decodebin: Remove ERROR message filter after we set the element to PAUSED
This allows us to catch more errors gracefully and switch to an alternative
element instead.
Sebastian Dröge [Thu, 10 Jul 2014 10:17:52 +0000 (12:17 +0200)]
decodebin: Only continue autoplugging once the pad has final caps
If the caps query returned us fixed caps this doesn't mean yet
that these caps are actually complete (fields might be missing).
It allows to do us some decisions, but the selection of the next
element should be delayed as only complete caps allow proper selection
of the next element.
Sebastian Dröge [Thu, 10 Jul 2014 10:03:46 +0000 (12:03 +0200)]
decodebin: Consider the caps after the capsfilter after parsers for autoplugging
Otherwise we might try to continue autoplugging e.g. for a specific
stream-format although the parser could convert to something else, thus giving
us potentially less options for decoders.
Tim-Philipp Müller [Sun, 20 Jul 2014 23:17:38 +0000 (00:17 +0100)]
pbutils: fix missing plugin description for missing elements
CID: 1226445
Sebastian Dröge [Sat, 19 Jul 2014 16:04:35 +0000 (18:04 +0200)]
Back to development
Sebastian Dröge [Sat, 19 Jul 2014 15:04:57 +0000 (17:04 +0200)]
Release 1.4.0