Commit graph

2517 commits

Author SHA1 Message Date
Vincent Penquerc'h
ca9528d0b0 speexenc: update output segment stop time to match clipped samples
This will let oggmux generate a granpos on the last page that properly
represents the clipped samples at the end of the stream.
2014-10-30 14:43:22 +00:00
Vincent Penquerc'h
b18d8b085a flacenc: update output segment stop time to match clipped samples
This will let oggmux generate a granpos on the last page that properly
represents the clipped samples at the end of the stream.
2014-10-30 14:30:30 +00:00
Tim-Philipp Müller
31b8cfecc2 pulse, v4l2: add missing G_END_DECLS in some places 2014-10-28 21:32:06 +00:00
Tim-Philipp Müller
666b596aa2 pulse: remove some unused typedefs 2014-10-23 15:46:29 +01:00
Ananda
ec3af50cc2 speex: Fix segfault when resetting the codecs multiple times
https://bugzilla.gnome.org/show_bug.cgi?id=738793
2014-10-23 10:30:26 +02:00
Arun Raghavan
163155715f pulsesink: Temporarily disable stream status posting
We need a mechanism in PulseAudio to allow running code outside the
mainloop lock. Then we'd be able to post to the bus (taking the
GST_OBJECT_LOCK), without worrying about locking order with the mainloop
lock, which is the current cause of deadlocks while trying to post the
stream status messages.

https://bugzilla.gnome.org/show_bug.cgi?id=736071
2014-10-22 23:12:38 +05:30
Nirbheek Chauhan
f35f3ccf7c souphttpclientsink: Fix lifetime of stream headers and queued buffers
Stream headers are updated whenever ::set_caps is called, so we can't assume
they'll be valid before the message body is written out. We *can* assume that
for queued buffers, but SOUP_MEMORY_STATIC is still wrong for those.

Also, add some debug logging for stream header interactions.

https://bugzilla.gnome.org/show_bug.cgi?id=737771
2014-10-02 12:47:36 +03:00
Nirbheek Chauhan
374552a720 souphttpclientsink: Add some more useful debug logging 2014-10-02 09:48:49 +03:00
Nirbheek Chauhan
745d497318 souphttpclientsink: Free queued buffers in ::reset
::render sets a new callback for writing out new buffers only if there aren't
already buffers queued for writing with a previously-scheduled callback.
However, if the previously-scheduled callback is interrupted by a state change
(either manually or due to an error) and there are still buffers in the queue,
restarting the pipeline will result in buffers being queued forever, and no
callbacks will ever be scheduled, and no buffers will be written out.

https://bugzilla.gnome.org/show_bug.cgi?id=737739
2014-10-02 09:48:27 +03:00
Sebastian Dröge
23a3377b1e vp8enc/vp9enc: Protect the encoder with a mutex in all situations 2014-09-30 11:35:42 +03:00
Sebastian Dröge
df053c997c vp9enc: Allow caps renegotiation
https://bugzilla.gnome.org/show_bug.cgi?id=726329
2014-09-30 11:35:42 +03:00
Sebastian Dröge
ced5d657e3 vp8enc: finish() and drain() should return a GstFlowReturn 2014-09-30 11:35:42 +03:00
Jose Antonio Santos Cadenas
a2e2012ae3 vp8enc: Allow caps renegotiation
https://bugzilla.gnome.org/show_bug.cgi?id=726329
2014-09-30 11:35:35 +03:00
Arun Raghavan
2a3adec2f7 pulse: Add some documentation about threading and synchronisation
This gives a quick introduction to how the pulsesink/pulsesrc code
interacts with the pa_threaded_mainloop that we start up to communicate
with the server.
2014-09-30 06:28:50 +05:30
Arun Raghavan
0ed08ac3fd pulsesink: Make emitting stream status messages synchronous
The stream status messages are emitted in the PA mainloop thread, which
means the mainloop lock is taken, followed by the Gst object lock (by
gst_element_post_message()). In all other locations, the order of
locking is reversed (this is unavoidable in a bunch of cases where the
object lock is taken by GstBaseSink or GstAudioBaseSink, and then we get
control to take the mainloop lock).

The only way to guarantee that the defer callback for stream status
messages doesn't deadlock is to either stop posting those messages, or
make sure that the message emission is completed before we proceed to
any point that might take the object lock before the mainloop lock
(which is what we do after this patch).

https://bugzilla.gnome.org/show_bug.cgi?id=736071
2014-09-30 06:28:50 +05:30
Sanjay NM
26a1344f37 Miscellaneous minor cleanups
Fix redundant variables and assignments,
and unreachable breaks.

https://bugzilla.gnome.org/show_bug.cgi?id=736875
https://bugzilla.gnome.org/show_bug.cgi?id=736876
https://bugzilla.gnome.org/show_bug.cgi?id=736879
https://bugzilla.gnome.org/show_bug.cgi?id=736880
https://bugzilla.gnome.org/show_bug.cgi?id=736881
https://bugzilla.gnome.org/show_bug.cgi?id=736888
https://bugzilla.gnome.org/show_bug.cgi?id=736890
https://bugzilla.gnome.org/show_bug.cgi?id=736892
https://bugzilla.gnome.org/show_bug.cgi?id=736893
https://bugzilla.gnome.org/show_bug.cgi?id=736894
2014-09-24 00:45:31 +01:00
Vineeth T M
89b9313e20 gdkpixbufdec: modify wrong packetized mode logic
packetized mode is being set when framerate is being set
which is not correct. Changing the same by checking the
input segement format. If input segment is in TIME it is
Packetized, and if it is in BYTES it is not.

https://bugzilla.gnome.org/show_bug.cgi?id=736252
2014-09-16 14:50:59 +03:00
Sebastian Dröge
90ccd8212a jpegdec: Remove unused variable and use correct decoder variable name 2014-09-16 11:26:22 +03:00
Sebastian Dröge
f489beb7c5 pngdec: Remove unused variable 2014-09-16 11:25:42 +03:00
Vineeth T M
448b1ac2b1 jpeggdec: modify wrong packetized mode logic
packetized mode is being set when framerate is being set
which is not correct. Changing the same by checking the
input segement format. If input segment is in TIME it is
Packetized, and if it is in BYTES it is not.

https://bugzilla.gnome.org/show_bug.cgi?id=736252
2014-09-16 11:25:31 +03:00
Vineeth T M
e45e6382d6 pngdec: modify wrong packetized mode logic
packetized mode is being set when framerate is being set
which is not correct. Changing the same by checking the
input segement format. If input segment is in TIME it is
Packetized, and if it is in BYTES it is not.

https://bugzilla.gnome.org/show_bug.cgi?id=736252
2014-09-16 11:25:24 +03:00
Sebastian Dröge
53b5a44a06 souphttpsrc: If the server reports "Accept-Ranges: none" don't try range requests 2014-09-11 12:53:29 +03:00
Sebastian Dröge
4b697df494 souphttpsrc: Include redirection target in error messages
Just giving the original URI can give the false impression that e.g.
that one failed host name resolution, while actually the redirection target
did.
2014-09-04 12:14:11 +03:00
Vineeth T M
8df9d690af gdkpixbufdec: free query after use
In gst_gdk_pixbuf_dec_setup_pool(), query is being allocated using
gst_query_new_allocation(), but the same is not unreferenced
hence calling gst_query_unref() after usage of query.

https://bugzilla.gnome.org/show_bug.cgi?id=735950
2014-09-03 22:36:01 +01:00
Sebastian Dröge
9eb22a533b vp9dec: Get input width/height from the codec instead of the input caps
They are reported properly by libvpx if the correct struct members are used.
This also fixes handling of resolution changes without input caps changes.

https://bugzilla.gnome.org/show_bug.cgi?id=719359
2014-09-02 09:09:49 +03:00
Tom Greenwood
5430b6c351 vp8dec: Fix for handling resolution changes when decoding VP8
If the resolution changes in the bitstream without the input caps changing we
would previously output corrupted video or crash.

https://bugzilla.gnome.org/show_bug.cgi?id=719359
2014-09-02 08:42:24 +03:00
Thiago Santos
8bee49c85e vp9dec: Fix segfault when a new caps is received
Remember to unref the output caps when a new caps event is received
as it should generate a new one based on the new caps.

https://bugzilla.gnome.org/show_bug.cgi?id=734266
2014-09-02 01:01:43 -03:00
Jose Antonio Santos Cadenas
f22b91dad5 vp8dec: Reset output and input states when changing format
https://bugzilla.gnome.org/show_bug.cgi?id=734266
2014-09-01 23:56:51 -03:00
Vineeth T M
0509e86b43 gdkpixbufdec: EOS and NOT_LINKED are no errors in general
Don't post an error message for them but let upstream handle
anything accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=735564
2014-08-28 11:46:51 +03:00
Sebastian Rasmussen
485da06b14 speexenc: Improve annotation of internal function
https://bugzilla.gnome.org/show_bug.cgi?id=734542
2014-08-10 11:17:23 +01:00
Nicola Murino
60648012f3 jpegenc: Add support for encoding from NV21 and NV12
https://bugzilla.gnome.org/show_bug.cgi?id=732870
2014-07-21 09:36:55 +02:00
Sebastian Dröge
6be8225fde pulsesrc: Fix compiler warning when compiling with G_DISABLE_ASSERT 2014-06-29 20:02:14 +02:00
Tim-Philipp Müller
e9613c8512 pulse: fix compiler warnings when compiling with -DG_DISABLE_ASSERT
Compiler complains about uninitialised variables in the impossible
'default' code path in device provider source/sink switch-case.
2014-06-29 17:06:30 +01:00
Olivier Crête
a9c385686a Rename GstDeviceMonitor to GstDeviceProvider 2014-06-26 14:57:36 -04:00
Tim-Philipp Müller
dd165a4b1a pulse, v4l2: update for device "klass" -> "device-class" rename 2014-06-21 01:32:03 +01:00
Vincent Penquerc'h
592c34336e flacdec: add const where appropriate 2014-06-10 12:15:15 +01:00
Edward Hervey
9843b08e53 speexenc: add missing va_end in variadic function
Coverity 1139944
2014-06-09 10:39:20 +02:00
Edward Hervey
eb30edae9f vp9enc: Don't dereference NULL checks
CID #1197703
2014-06-02 09:47:34 +02:00
Edward Hervey
b4a129ad71 vp8enc: Don't dereference NULL variable
CID #1139838
2014-06-02 09:46:05 +02:00
Sebastian Dröge
edc7d9027e souphttpsrc: Add custom sticky event to contain the HTTP request and response headers
This can be useful to e.g. get cookie information downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=729707
2014-05-28 09:20:21 +02:00
Edward Hervey
ce4bb3ffef vp8enc: Don't dereference NULL variable
CID #1139838
2014-05-20 08:24:48 +02:00
Edward Hervey
5263f91e13 vp9enc: Don't dereference NULL checks
CID #1197703
2014-05-20 08:24:48 +02:00
Sebastian Dröge
f5b2b6e696 flacdec: Add support for variable block size files and remove dead code
This dead code wasn't used since the 1.0 port and would need to
be modified heavily for variable block size support.

https://bugzilla.gnome.org/show_bug.cgi?id=729894
2014-05-10 09:30:16 +02:00
Sebastian Dröge
2a7abc98db souphttpsrc: Clean up all pending operations from libsoup before unreffing our context
When we cancel connection attempts and similar things, there are still
some operations pending on our main context from the GCancellables. We
should let them all run before unreffing our context, otherwise we leak
file descriptors.

Unfortunately this requires libsoup 2.47.0 or newer as earlier versions
steal our main context from us and we can't use it for cleanup later
without assertions and funny crashes.

Based on a patch by Dmitry Shatrov <shatrov@gmail.com>.

https://bugzilla.gnome.org/show_bug.cgi?id=663944
2014-05-08 10:18:38 +02:00
Vincent Penquerc'h
1da2fd457d vp9enc: do not dereference NULL pointer
Coverity 1197703
2014-05-05 14:33:38 +01:00
Olivier Crête
39bbccdf79 pulsedevicemonitor: Index are per facility, not global
So need to keep the type of device in the device object
2014-05-04 01:14:39 -04:00
Olivier Crête
6c8e42944a pulsedevicemonitor: pa_subscription_event_t are enums, not flags
Coverity 1195132
2014-05-04 01:14:39 -04:00
Vincent Penquerc'h
a6e7948711 vp8enc: guard against NULL pointer dereference
Coverity 1139838
2014-05-02 14:02:52 +01:00
Vincent Penquerc'h
d2f66f5394 flacdec: fix theoretical integer overflow
This code isn't actually used at the moment, unsure if I should
just remove it or not...

Coverity 1139811
2014-05-02 13:59:07 +01:00
Vincent Penquerc'h
74c93b8fc7 speexdec: remove dead code
fpp can never equal 0 here, or the loop would not execute at all.
Zero fpp was possible before as the loop condition was allowing
it specifically, but no more.

Coverity 1139681
2014-05-02 09:45:07 +01:00
Vincent Penquerc'h
14ceb5727c flacdec: remove dead code
For 8 bit width, we always have depth==gdepth==width==8.

Coverity 1139678
2014-04-30 18:06:40 +01:00
Sebastian Dröge
3b6c17c2b6 souphttpsrc: Remember if a redirect is permanent or not and store it in the query 2014-04-28 10:04:03 +02:00
Tim-Philipp Müller
c9597298f9 docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 23:35:17 +01:00
Rafał Mużyło
b32de2794b pngdec: enable libpng interlaced picture handling
Makes libpng deinterlace Adam7 interlaced pictures
by default. It is the only interlaced format available
and if the picture isn't interlaced the code should behave
as before.

https://bugzilla.gnome.org/show_bug.cgi?id=726161
2014-04-11 19:12:25 -03:00
Sebastian Dröge
37609c0a82 souphttpsrc: Only keep-alive the connection in stop() if we have finished all previous messages
After cancelling a request we need to create a new connection.
2014-04-11 13:30:53 +02:00
Edward Hervey
09ea92848b dvdec: Don't set bogus timestamp/duration
This will happen if we have an incoming stream with a non-TIME segment

Could be improved later to figure out proper pts/duration.

CID #1199702
CID #1199703
2014-04-11 11:54:12 +02:00
Edward Hervey
10feb2ba7d dvdec: Properly refuse incoming stream without framerate
The return value wasn't properly propagated back if the caps
didn't contain a framerate
2014-04-11 11:53:42 +02:00
Sebastian Dröge
847ba2a30d souphttpsrc: Also retry on unexpected network failures 2014-04-10 16:47:21 +02:00
Sebastian Dröge
037dfb6723 souphttpsrc: New property to specify the maximum number of retries before we give up 2014-04-10 16:47:07 +02:00
Alexander Zallesov
b089524b21 souphttpsrc: Change default timeout to 15 seconds
If nothing happens after 15 seconds, chances are good that
our connection will never will work. Stop after 15 seconds
instead of waiting until the system's default timeout, which
can be > 1 minute.
2014-04-10 11:11:35 +02:00
Sebastian Dröge
d918212e12 souphttpsrc: Use GST_FLOW_FLUSHING when flushing, not GST_FLOW_EOS
... and reset it properly after flushing is done. Fixes playback
in many cases when buffering is used.

https://bugzilla.gnome.org/show_bug.cgi?id=727821
2014-04-09 10:56:29 +02:00
Sebastian Dröge
94bfdc7a56 jpegdec: All frames are sync points 2014-03-26 08:03:46 +01:00
Sebastian Dröge
5eb4901a8c pngdec: All frames are sync points 2014-03-26 08:03:46 +01:00
Olivier Crête
019a0009af pulse: Add device monitors
https://bugzilla.gnome.org/show_bug.cgi?id=678402
2014-03-16 20:37:54 -04:00
Tim-Philipp Müller
5f0ea73d28 pulse: fix format info to caps conversion for mulaw 2014-03-16 15:55:00 +00:00
Olivier Crête
e714ab9dba pulse: Make gst_pulse_format_info_to_caps() shared
https://bugzilla.gnome.org/show_bug.cgi?id=678402
2014-03-16 15:28:29 +00:00
Sebastian Dröge
5d06735dbd souphttpsrc: Add properties for selecting SSL/TLS certificate checking
And by default properly check certificates against the system's CA
certificates. Everything else is not a good default at all.
2014-03-12 15:32:55 +01:00
Sebastian Dröge
ac83961033 souphttpsrc: Make sure to not return EOS immediately if we finished a range request
Only return EOS the next time create() is called, if at all. basesrc
should already take care of not calling it again.

Also always return immediately if the previous flow return was
not OK. This indicates an error somewhere.
2014-03-07 16:56:51 +01:00
Sebastian Dröge
9701051485 souphttpsrc: Don't forget to quit mainloop after we cancelled when we got data after the stop position 2014-03-06 13:38:09 +01:00
Sebastian Dröge
0c6f1ce998 souphttpsrc: If we had a stop position, allow for the server to finish our connection instead of just cancelling
Otherwise keep-alive does not make much sense and also the server will have
confusing things in the logs.
2014-03-06 13:36:38 +01:00
Thiago Santos
04bd422432 jpegdec: mark all parsed frames as sync points
all jpeg frames are sync points, so mark them as such so
reverse playback can properly work with the video decoder
base class

https://bugzilla.gnome.org/show_bug.cgi?id=725104
2014-02-27 19:08:15 -03:00
Stefan Sauer
117fa7c3e4 jack: add some simple log handlers for jack
Add log handlers for jack that write to the gst debug log. This avoids spamming
the console when e.g. using autoaudiosink, having the jack elements installed,
but not running jack.
2014-02-23 00:17:00 +01:00
Branislav Katreniak
6f1d4da8b4 souphttpsrc: do not emit error when connection with unknown size ends
Commit 46fd12ae5e introduced connection
recovery. But when server does not specify content-size,
souphttpsrc tries to reconnect even after regular end of stream.
Http server replies  with SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE
but souphttpsrc still emits error instead of EOS.

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

Signed-off-by: Branislav Katreniak <bkatreniak@nuvotechnologies.com>
2014-02-19 16:59:16 +01:00
Stefan Sauer
3abad7af66 pulsesink: fix crash when getting the current-device in NULL->READY
The "goto unlock" is wrong as in this code path we haven't take the lock yet.
Fixes #724619
2014-02-18 11:28:18 +01:00
Sebastian Dröge
fdb39a9f7b souphttpsrc: Use new automatic_eos API from basesrc
We want to notice ourselves that we're EOS. Otherwise we will
always cancel requests in the very end and confuse the server...
and also make it impossible to use persistent connections.
2014-02-13 12:09:13 +01:00
Sebastian Dröge
4dfad42e81 souphttpsrc: Consistently use have_size instead of content_size!=0 2014-02-13 11:11:13 +01:00
Sebastian Dröge
dde171ac30 souphttpsrc: Free extra headers when finalizing the element
It's set as property by the application, we should not just reset
properties when going back to READY.
2014-02-13 10:36:29 +01:00
Sebastian Dröge
a79f92ee9d souphttpsrc: Properly close the session when going back to NULL
Don't wait for that until the element is disposed.
2014-02-13 10:36:29 +01:00
Andoni Morales Alastruey
4d80d3fad9 souphttpsrc: add support for keep-alive sessions
https://bugzilla.gnome.org/show_bug.cgi?id=699926
2014-02-13 10:36:29 +01:00
Sebastian Dröge
106bc2b17b souphttpsrc: Add "compress" property to enable/disable automatic gzip/deflate content encoding handling 2014-02-12 13:00:13 +01:00
Sebastian Dröge
9cac68709a souphttpsrc: Retry connection if we're finished before the content size only if we actually have a content size
https://bugzilla.gnome.org/show_bug.cgi?id=722185
2014-02-12 12:39:10 +01:00
Sebastian Dröge
436d41fa8e souputils: Fix compiler warning
gstsouputils.c:35:25: error: comparison of constant 9 with expression of type
      'SoupLoggerLogLevel' is always false
      [-Werror,-Wtautological-constant-out-of-range-compare]
2014-02-12 10:08:50 +01:00
Reynaldo H. Verdejo Pinochet
4f42fff349 souphttp*: add ability to do HTTP session logging
This changeset adds the loggin infrastructure and
mods both souphttpsrc and souphttclientsink to use it.

https://bugzilla.gnome.org/show_bug.cgi?id=721764
2014-02-11 17:50:44 -03:00
Sebastian Dröge
cf31a4284b souphttpsrc: Add mapping for NOT_FOUND and NOT_AUTHORIZED errors 2014-02-11 13:25:46 +01:00
Sebastian Dröge
5514bc2785 souphttpsrc: Don't duplicate status_code to GStreamer error mapping 2014-02-11 13:25:22 +01:00
Sebastian Dröge
fd55cb324d id3v2mux: Fix another compiler warning 2014-02-08 21:01:32 +01:00
Sebastian Dröge
f299fc899c id3v2mux: Fix unitialized variable compiler warning
error: variable 'image_type' is used uninitialized
whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
2014-02-08 17:27:51 +01:00
Tim-Philipp Müller
85501e6c2a flacenc: order format in template caps by preference
To minimise risk of bad fixation, though audioconvert
at least should be smart enough to avoid it.
2014-02-04 21:26:56 +01:00
Rafał Mużyło
ac4df5e2c5 gst: Don't use endianness-specific S8 audio format
It does not exist.

https://bugzilla.gnome.org/show_bug.cgi?id=723331
2014-02-04 13:44:29 +01:00
Julien Isorce
90b01fce61 cairooverlay: add support for RGB16
https://bugzilla.gnome.org/show_bug.cgi?id=723289
2014-01-31 14:17:54 +00:00
Tim-Philipp Müller
4480a25844 shout2send: error out if no caps were received
Instead of assuming that input is ogg.
2014-01-21 10:56:19 +00:00
Tim-Philipp Müller
d7210befdc shout2send: accept audio/webm, audio/ogg and video/ogg as well
Those are advertised in the template caps, but the
setcaps handler didn't handle them. But then oggmux
and oggparse at least for now still always output
application/ogg anyway, so that wasn't a real problem.
2014-01-21 00:49:44 +00:00
Reynaldo H. Verdejo Pinochet
0e159e3b03 souphttpsrc: use status code macro instead of 407
Rest of the code is using the _PROXY_AUTHENTICATION_REQUIRED
macro too. Easier to understand if you don't recall HTTP
error codes by heart.
2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet
ac7d346355 shout2send: change audio_format field to format
This element and the underlying libshout2 library
can handle video media files too. The code already
handles video/webm so the name gets confusing. Also
add and use DEFAULT_FORMAT macro Instead of hardwiring
SHOUT_FORMAT_VORBIS at init

https://bugzilla.gnome.org/show_bug.cgi?id=721342
2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet
667c803730 shout2send: clarify meaning of the URL prop
https://bugzilla.gnome.org/show_bug.cgi?id=721342
2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet
e6321ecb74 shout2send: docs, add a sample pipeline
And finish adding shout2send to the docs while at it

https://bugzilla.gnome.org/show_bug.cgi?id=721342
2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet
4182f42f7b gdkpixbufoverlay: remove spurious @see_also 2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet
9dd6e22ba9 shout2send: drop IP only requirement for _set_host()
libshout2 (we require > 2.0 at config time) supports
both IP and hostname for _set_host(). Dropped an
outdated FIXME regarding this limitation, adjusted
some comments and changed the param blurb to reflect
this too.
2013-12-27 01:31:33 -03:00
Reynaldo H. Verdejo Pinochet
786f87ef30 shout2send: Retarget FIXME to 2.0 2013-12-27 01:31:20 -03:00
Sebastian Dröge
92c3211c79 id3v2mux: Set picture type in the APIC frames 2013-12-16 16:17:07 +01:00