Wim Taymans [Mon, 7 Nov 2011 16:18:06 +0000 (17:18 +0100)]
Merge branch 'master' into 0.11
Wim Taymans [Mon, 7 Nov 2011 16:10:48 +0000 (17:10 +0100)]
fix for new pad probe types
Restore the previous behaviour by only blocking downstream items and not
upstream events.
Vincent Penquerc'h [Fri, 4 Nov 2011 10:34:27 +0000 (10:34 +0000)]
theoraenc: fix speed level failure test
It was testing the opposite of what it thought it was.
https://bugzilla.gnome.org/show_bug.cgi?id=663390
Vincent Penquerc'h [Fri, 4 Nov 2011 10:57:40 +0000 (10:57 +0000)]
theoraenc: make logically static const data just so
https://bugzilla.gnome.org/show_bug.cgi?id=663391
Vincent Penquerc'h [Fri, 4 Nov 2011 10:58:15 +0000 (10:58 +0000)]
theoraenc: use th_packet_iskeyframe instead of peeking at bits
https://bugzilla.gnome.org/show_bug.cgi?id=663391
Vincent Penquerc'h [Fri, 4 Nov 2011 10:59:00 +0000 (10:59 +0000)]
theoraenc: trivial comment typos fixes
https://bugzilla.gnome.org/show_bug.cgi?id=663391
Vincent Penquerc'h [Fri, 4 Nov 2011 10:59:12 +0000 (10:59 +0000)]
theoraenc: warn when trying to set an ignored obsolete property
https://bugzilla.gnome.org/show_bug.cgi?id=663391
Vincent Penquerc'h [Fri, 4 Nov 2011 11:10:46 +0000 (11:10 +0000)]
theoraenc: refuse to get to READY if the encoder was disabled
https://bugzilla.gnome.org/show_bug.cgi?id=663391
Vincent Penquerc'h [Tue, 18 Oct 2011 16:58:49 +0000 (17:58 +0100)]
oggdemux: survive skeleton finding length behind our backs in push mode
In push mode, we determine duration by doing a seek to the end of the
stream. However, a skeleton stream with an index will cause the duration
to be known already, and we end up never setting the push_time_duration
variable which we use to know duration has been determined.
https://bugzilla.gnome.org/show_bug.cgi?id=662049
Vincent Penquerc'h [Wed, 5 Oct 2011 14:29:54 +0000 (15:29 +0100)]
valgrind: add ALSA leaks fixed by snd_config_update_free_global
If they go when calling snd_config_update_free_global, they're
not really bug leaks, but more like intentional ones we don't
want to get told about.
https://bugzilla.gnome.org/show_bug.cgi?id=615342
Wim Taymans [Mon, 7 Nov 2011 11:43:37 +0000 (12:43 +0100)]
convertbin: port to 0.11 again
Wim Taymans [Mon, 7 Nov 2011 11:23:15 +0000 (12:23 +0100)]
Merge branch 'master' into 0.11
Conflicts:
common
configure.ac
gst-libs/gst/audio/gstbaseaudiosink.c
gst/playback/gstdecodebin2.c
gst/playback/gstplaysinkaudioconvert.c
gst/playback/gstplaysinkaudioconvert.h
gst/playback/gstplaysinkvideoconvert.c
gst/playback/gstplaysinkvideoconvert.h
Felipe Contreras [Mon, 2 May 2011 10:05:28 +0000 (13:05 +0300)]
baseaudiosink: make discont-wait configurable
Now we can configure how much time to wait before deciding that a
discont has happened.
Also, adds getter and setter to allow derived implementations to set
this value upon construction.
Suggestions and several improvements by Havard Graff.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Mon, 7 Nov 2011 10:31:47 +0000 (11:31 +0100)]
baseaudiosink: delay the resyncing of timestamp vs ringbuffertime
A common problem for audio-playback is that the timestamps might not
be completely linear. This is specially common when doing streaming over
a network, where you can have jittery and/or bursty packettransmission,
which again will often be reflected on the buffertimestamps.
Now, the current implementation have a threshold that says how far the
buffertimestamp is allowed o drift from the ideal aligned time in the
ringbuffer. This was an instant reaction, and ment that if one buffer
arrived with a timestamp that would breach the drift-tolerance, a resync
would take place, and the result would be an audible gap for the
listener.
The annoying thing would be that in the case of a "timestamp-outlier",
you would first resync one way, say +100ms, and then, if the next
timestamp was "back on track", you would end up resyncing the other way
(-100ms) So in fact, when you had only one buffer with slightly off
timestamping, you would end up with *two* audible gaps. This is the
problem this patch addresses.
The way to "fix" this problem with the previous implementation, would
have been to increase the "drift-tolerance" to a value that was greater
than the largest timestamp-outlier one would normally expect. The big
problem with this approach, however, is that it will allow normal
operations with a huge offset timestamp vs running-time, which is
detrimental to lip-sync. If the drift-tolerance is set to 200ms, it
basically means that lip-sync can easily end up being off by that much.
This patch will basically start a timer when the first breach of
drift-tolerance is detected. If any following timestamp for the next n
nanoseconds gets "back on track" within the threshold, it has basically
eliminated the effect of an outlier, and the timer is stopped. If,
however, all timestamps within this time-limit are breaching the
threshold, we are probably facing a more permanent offset in the
timestamps, and a resync is allowed to happen.
So basically this patch offers something as rare as both higher
accuracy, it terms of allowing smaller drift-tolerances, as well as much
smoother, less glitchy playback!
Commit message and improvments by Havard Graff.
Fixes bug #640859.
Felipe Contreras [Mon, 7 Nov 2011 10:18:34 +0000 (11:18 +0100)]
baseaudiosink: rename some variables
Felipe Contreras [Sat, 21 May 2011 13:16:42 +0000 (16:16 +0300)]
baseaudiosink: use gst_util_uint64_scale_int when appropriate
It's probably safer this way.
Felipe Contreras [Sat, 21 May 2011 12:49:20 +0000 (15:49 +0300)]
baseaudiosink: split drift-tolerance into alignment-threshold
So that drift-tolerance is used for clock slaving resync, and
alignment-threshold is for timestamp drift.
Felipe Contreras [Sat, 21 May 2011 13:02:36 +0000 (16:02 +0300)]
baseaudiosink: trivial comment fixes
Some found by Havard Graff.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Stefan Sauer [Fri, 4 Nov 2011 21:00:43 +0000 (22:00 +0100)]
adder: don't ref NULL caps
Stefan Sauer [Fri, 4 Nov 2011 20:00:29 +0000 (21:00 +0100)]
volume: use new api to check activity of a controller
Stefan Sauer [Fri, 4 Nov 2011 14:23:25 +0000 (15:23 +0100)]
controller: port to new location and api changes
Wim Taymans [Fri, 4 Nov 2011 16:40:01 +0000 (17:40 +0100)]
playback: name conversion elements differently
Stefan Sauer [Fri, 4 Nov 2011 14:36:25 +0000 (15:36 +0100)]
build: add audio libs (pulled by pbutils) to avoid linking against system version
Wim Taymans [Fri, 4 Nov 2011 12:21:24 +0000 (13:21 +0100)]
ringbuffer: store bpf in the right variable
Wim Taymans [Fri, 4 Nov 2011 12:01:52 +0000 (13:01 +0100)]
docs: fix some docs
Wim Taymans [Fri, 4 Nov 2011 12:00:36 +0000 (13:00 +0100)]
uridecodebin: fix template name
Wim Taymans [Fri, 4 Nov 2011 11:53:33 +0000 (12:53 +0100)]
oggdemux: fix somtimes pad
Wim Taymans [Fri, 4 Nov 2011 09:48:50 +0000 (10:48 +0100)]
fix pad template names for request pads
Sebastian Dröge [Fri, 4 Nov 2011 09:37:12 +0000 (10:37 +0100)]
subtitleoverlay: Use gst_caps_merge() instead of gst_caps_union()
This keeps the caps order and is more efficient.
Sebastian Dröge [Fri, 4 Nov 2011 09:36:51 +0000 (10:36 +0100)]
playsinkconvertbin: Use gst_caps_merge() instead of gst_caps_union()
This keeps the caps order and is more efficient.
Edward Hervey [Fri, 4 Nov 2011 07:41:00 +0000 (08:41 +0100)]
rtpbuffer: Fix compilation issues with gcc 4.6.1
Edward Hervey [Fri, 4 Nov 2011 07:58:23 +0000 (08:58 +0100)]
win32: Update for modified API
Edward Hervey [Fri, 4 Nov 2011 07:57:45 +0000 (08:57 +0100)]
Really remove all mention of gstnetbuffer
Reynaldo H. Verdejo Pinochet [Fri, 4 Nov 2011 00:35:38 +0000 (21:35 -0300)]
Add missing default include paths to androgenizer call
Fixes building tag/ with Android's NDK
Wim Taymans [Thu, 3 Nov 2011 16:58:57 +0000 (17:58 +0100)]
update for request pads change.
Wim Taymans [Thu, 3 Nov 2011 15:48:51 +0000 (16:48 +0100)]
net: remove net library, it's now in core
Mart Raudsepp [Thu, 3 Nov 2011 12:10:31 +0000 (14:10 +0200)]
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).
Mart Raudsepp [Thu, 20 Oct 2011 10:04:52 +0000 (13:04 +0300)]
decodebin2: Use existing "caps" quark for one of the structure sets
Wim Taymans [Thu, 3 Nov 2011 13:19:50 +0000 (14:19 +0100)]
tests: fix netbuffer test
Sebastian Dröge [Thu, 3 Nov 2011 09:07:27 +0000 (10:07 +0100)]
playsinkconvertbin: Don't add identity multiple times
Vincent Penquerc'h [Wed, 19 Oct 2011 13:13:39 +0000 (14:13 +0100)]
playsink: send flush start/stop event when we switch elements
https://bugzilla.gnome.org/show_bug.cgi?id=661262
Vincent Penquerc'h [Wed, 19 Oct 2011 13:13:30 +0000 (14:13 +0100)]
playsink: re-add identity where appropriate
https://bugzilla.gnome.org/show_bug.cgi?id=661262
Vincent Penquerc'h [Wed, 19 Oct 2011 13:12:01 +0000 (14:12 +0100)]
playsink: lock the new {set,get}_property functions
https://bugzilla.gnome.org/show_bug.cgi?id=661262
Thiago Santos [Mon, 17 Oct 2011 23:14:54 +0000 (23:14 +0000)]
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.
Thiago Santos [Mon, 17 Oct 2011 22:41:49 +0000 (22:41 +0000)]
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
Thiago Santos [Mon, 17 Oct 2011 22:41:11 +0000 (22:41 +0000)]
playsinkconvertbin: Adding some debug messages
Adds a couple debug messages and some g_assert to make debugging
easier
Thiago Santos [Mon, 17 Oct 2011 22:02:03 +0000 (22:02 +0000)]
playsink-videoconvert: Fix warning on build
Remove unused variable
Vincent Penquerc'h [Mon, 17 Oct 2011 21:05:30 +0000 (21:05 +0000)]
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
Vincent Penquerc'h [Mon, 17 Oct 2011 18:43:06 +0000 (18:43 +0000)]
playsink: handle NULL cached caps in getcaps
https://bugzilla.gnome.org/show_bug.cgi?id=661262
Vincent Penquerc'h [Mon, 17 Oct 2011 18:06:00 +0000 (18:06 +0000)]
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
Vincent Penquerc'h [Mon, 17 Oct 2011 17:54:27 +0000 (17:54 +0000)]
playsink: cache inner converter bin caps
https://bugzilla.gnome.org/show_bug.cgi?id=661262
Vincent Penquerc'h [Mon, 17 Oct 2011 17:26:48 +0000 (17:26 +0000)]
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
Vincent Penquerc'h [Mon, 17 Oct 2011 17:29:50 +0000 (17:29 +0000)]
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
Vincent Penquerc'h [Mon, 17 Oct 2011 16:55:30 +0000 (16:55 +0000)]
playsink: refactor the converter bins since they are almost identical
https://bugzilla.gnome.org/show_bug.cgi?id=661262
Vincent Penquerc'h [Mon, 17 Oct 2011 13:00:05 +0000 (13:00 +0000)]
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
Vincent Penquerc'h [Fri, 7 Oct 2011 11:16:44 +0000 (11:16 +0000)]
playsink: handle NULL ghost pad target
For the src pad anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=661262
Sebastian Dröge [Thu, 3 Nov 2011 08:56:14 +0000 (09:56 +0100)]
Revert "playsinkaudioconvert: Fix warning when there is no target pad yet"
This reverts commit
f35c51c14915729f0fdf2b348f351ea7e81027cc.
Better patch coming soon.
Sebastian Dröge [Fri, 28 Oct 2011 08:07:42 +0000 (10:07 +0200)]
oggmux: Remove obsolete #include
Tim-Philipp Müller [Wed, 2 Nov 2011 23:33:18 +0000 (23:33 +0000)]
docs: add draft for subtitle overlays to design docs
Main purpose is to provide a generic way to make subtitles work on
top of non-raw video (vaapi, vdpau, etc.).
Colin Walters [Wed, 2 Nov 2011 19:31:11 +0000 (15:31 -0400)]
configure: Allow setting GLIB_EXTRA_CFLAGS
Similar to gstreamer commit
bb2020b1e794210cf7d44c6626122f611016a620
Wim Taymans [Wed, 2 Nov 2011 11:08:22 +0000 (12:08 +0100)]
update for tag API removal
Edward Hervey [Wed, 2 Nov 2011 10:24:05 +0000 (11:24 +0100)]
video: Add convenience macros for accessing GstVideoInfo flags
Wim Taymans [Mon, 31 Oct 2011 01:39:48 +0000 (02:39 +0100)]
netbuffer: _netaddress_ -> _net_address_
Wim Taymans [Mon, 31 Oct 2011 01:35:36 +0000 (02:35 +0100)]
netaddress: updata api
Wim Taymans [Mon, 31 Oct 2011 01:23:21 +0000 (02:23 +0100)]
rename meta* -> *meta
Wim Taymans [Sat, 29 Oct 2011 07:28:57 +0000 (09:28 +0200)]
alsa: update for new task api
Wim Taymans [Sat, 29 Oct 2011 07:03:07 +0000 (09:03 +0200)]
structure: fix for api update
Wim Taymans [Sat, 29 Oct 2011 06:25:07 +0000 (08:25 +0200)]
bufferlist: update for new API
Tim-Philipp Müller [Tue, 1 Nov 2011 00:34:28 +0000 (00:34 +0000)]
Update for pad API changes
GstProbeType, GstProbeReturn and GstActivateMode -> GstPad*
Tim-Philipp Müller [Mon, 31 Oct 2011 14:26:09 +0000 (14:26 +0000)]
subtitleoverlay: don't include header that's been removed
Tim-Philipp Müller [Mon, 31 Oct 2011 14:22:58 +0000 (14:22 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Tim-Philipp Müller [Sun, 30 Oct 2011 14:51:48 +0000 (14:51 +0000)]
audioencoder: save audio info parsed in setcaps in encoder context
Otherwise we'll just error out when the first buffer gets pushed.
This is a porting artefact, in 0.10 the infos were allocated on the
heap, now we're doing everything with stack-allocated structs.
Tim-Philipp Müller [Sun, 30 Oct 2011 11:09:10 +0000 (11:09 +0000)]
ext, gst, gst-libs, tests: update for tag list API changes
René Stadler [Mon, 31 Oct 2011 14:16:36 +0000 (15:16 +0100)]
audio: remove old C file generated from template
Not sure how this one got pulled into a merge. In 0.10, it was moved away to
gst-template a long time ago. gstaudiofilterexample.c got generated from
gstaudiofiltertemplate.c.
Tim-Philipp Müller [Sun, 30 Oct 2011 20:00:47 +0000 (20:00 +0000)]
subtitleoverlay: don't use soon-to-be-deprecated gst_filter_run()
Edward Hervey [Fri, 28 Oct 2011 16:45:09 +0000 (18:45 +0200)]
configure.ac: Fix build
Wim Taymans [Fri, 28 Oct 2011 14:24:44 +0000 (16:24 +0200)]
Merge branch 'master' into 0.11
Wim Taymans [Fri, 28 Oct 2011 14:11:36 +0000 (16:11 +0200)]
fix compile for SEEK_TYPE_CUR removal
Mersad Jelacic [Fri, 28 Oct 2011 11:58:47 +0000 (13:58 +0200)]
audiosink: avoid deadlocking audioringbuffer thread
... when it goes into wait for ringbuffer starting just after such
having been signalled.
Fixes #661738.
Wim Taymans [Fri, 28 Oct 2011 09:37:31 +0000 (11:37 +0200)]
audiofilter: use BPF for unit_size
Wim Taymans [Fri, 28 Oct 2011 09:34:37 +0000 (11:34 +0200)]
Merge branch 'master' into 0.11
René Stadler [Fri, 28 Oct 2011 08:44:38 +0000 (10:44 +0200)]
audiofilter: fix get_unit_size
René Stadler [Fri, 28 Oct 2011 09:13:52 +0000 (11:13 +0200)]
audiofilter: init audio info sooner
René Stadler [Fri, 28 Oct 2011 09:11:55 +0000 (11:11 +0200)]
audio, video: init audio/video format info to UNKNOWN format
This is to prevent e.g. GST_AUDIO_INFO_FORMAT() from crashing on a NULL pointer
dereference when used with an unset info.
Philip Jägenstedt [Tue, 26 Apr 2011 20:20:29 +0000 (22:20 +0200)]
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
Thiago Santos [Mon, 10 Aug 2009 01:48:29 +0000 (01:48 +0000)]
oggmux: port to gstcollectpads2
Wim Taymans [Thu, 27 Oct 2011 16:54:50 +0000 (18:54 +0200)]
basertppay: rename caps fields
Make the caps fields for timestamp and seqnum match the element
properties.
See #628773
Wim Taymans [Thu, 27 Oct 2011 16:50:32 +0000 (18:50 +0200)]
basedepay: remove old fields
Wim Taymans [Thu, 27 Oct 2011 15:33:06 +0000 (17:33 +0200)]
tests: fix compilation
Wim Taymans [Thu, 27 Oct 2011 15:26:58 +0000 (17:26 +0200)]
fix compilation
Wim Taymans [Thu, 27 Oct 2011 13:44:58 +0000 (15:44 +0200)]
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
Wim Taymans [Thu, 27 Oct 2011 13:29:36 +0000 (15:29 +0200)]
overlay: fix compilation
Jan Schmidt [Thu, 27 Oct 2011 12:39:31 +0000 (23:39 +1100)]
build: Fix build for moved volume subdir
Stefan Sauer [Thu, 27 Oct 2011 07:51:46 +0000 (09:51 +0200)]
volume: move volume example to audio
Stefan Sauer [Thu, 27 Oct 2011 07:42:36 +0000 (09:42 +0200)]
audio examples. fix the makefile
Stefan Sauer [Thu, 27 Oct 2011 07:33:55 +0000 (09:33 +0200)]
volume: make global vars static
Stefan Sauer [Thu, 27 Oct 2011 07:33:01 +0000 (09:33 +0200)]
audiomix: add a simple audiomix example
Jan Schmidt [Tue, 25 Oct 2011 09:04:06 +0000 (20:04 +1100)]
playsinkaudioconvert: Fix warning when there is no target pad yet
Nicolas Dufresne [Thu, 13 Oct 2011 15:34:49 +0000 (11:34 -0400)]
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.
René Stadler [Fri, 21 Oct 2011 19:57:17 +0000 (21:57 +0200)]
playbasebin: remove avoidable call to gst_object_set_name