platform/upstream/gst-plugins-good.git
10 years agortspsrc: add tls-database property
Aleix Conchillo Flaqué [Sat, 15 Feb 2014 01:14:42 +0000 (17:14 -0800)]
rtspsrc: add tls-database property

Add support for a new property: tls-database. If the property is set,
the certificate database will be given to the rtsp connection if TLS
protocol is being used. If the server certificate can't be verified with
the default database, this additional database will be used.

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

10 years agoosxaudio: remove unused variables
Thijs Vermeir [Wed, 19 Feb 2014 21:21:54 +0000 (22:21 +0100)]
osxaudio: remove unused variables

10 years agoautodetect: extract common helper code
Stefan Sauer [Wed, 19 Feb 2014 20:26:03 +0000 (21:26 +0100)]
autodetect: extract common helper code

The function to generate the pretty names is basically the same. Use one and add
a parameter.

10 years agoautodetect: improve the tests
Stefan Sauer [Wed, 19 Feb 2014 20:01:39 +0000 (21:01 +0100)]
autodetect: improve the tests

Add fake audio/video sinks. Previously running the test might be flaky due to
the use of real elements (hardware in use), which we don't want to test here.
Add two more tests that check that the fakes are chosen.

10 years agosouphttpsrc: do not emit error when connection with unknown size ends
Branislav Katreniak [Wed, 19 Feb 2014 14:19:30 +0000 (15:19 +0100)]
souphttpsrc: do not emit error when connection with unknown size ends

Commit 46fd12ae5ec53200b16dfd7f17048d6bc60fbfbc 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>
10 years agoautodetect: fix the disabled test
Stefan Sauer [Wed, 19 Feb 2014 10:26:22 +0000 (11:26 +0100)]
autodetect: fix the disabled test

Use a shared helper for both tests. It turns out that the valgrind variant is
fine (maybe due to picking up pulsesink though).

10 years agoautodetect: remove cruft from the test
Stefan Sauer [Wed, 19 Feb 2014 10:05:35 +0000 (11:05 +0100)]
autodetect: remove cruft from the test

Remove the obsolete version check and use the ignore macro for the disabled test.

10 years agodocs: use docbook markup for xi:include
Stefan Sauer [Tue, 18 Feb 2014 21:54:45 +0000 (22:54 +0100)]
docs: use docbook markup for xi:include

It turns out that the change in gtk-doc-1.20 which wraps the |[]| content in
CDATA break xi:inlcude examples. As in a whole jhbuild checkout these where
the only 4, we're fixing them instead.

10 years agoisomp4mux: fix copy and paste
Stefan Sauer [Tue, 18 Feb 2014 21:35:45 +0000 (22:35 +0100)]
isomp4mux: fix copy and paste

This fixes doc warnings.

10 years agodocs: use the gtk-doc syntax to link to properties
Stefan Sauer [Tue, 18 Feb 2014 20:44:24 +0000 (21:44 +0100)]
docs: use the gtk-doc syntax to link to properties

Don't use docbook unless needed. Also stip other docbook tags in the the files we fix.

10 years agopulsesink: fix crash when getting the current-device in NULL->READY
Stefan Sauer [Tue, 18 Feb 2014 10:28:18 +0000 (11:28 +0100)]
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

10 years agosoup: We need libsoup >= 2.40 for proper usage of the content decoder
Sebastian Dröge [Fri, 14 Feb 2014 21:50:49 +0000 (22:50 +0100)]
soup: We need libsoup >= 2.40 for proper usage of the content decoder

Previous versions did not consider our chunk allocator and allocated
memory by themselves, which caused crashes and broken behaviour.

10 years agodocs: fix mismatched para tags
William Jon McCann [Fri, 14 Feb 2014 20:27:20 +0000 (15:27 -0500)]
docs: fix mismatched para tags

newer gtkdoc is more sensitive to mismatched docbook tags.
This fixes the build in master.

10 years agortpjitterbuffer: add support for serialized queries
Wim Taymans [Fri, 14 Feb 2014 14:59:46 +0000 (15:59 +0100)]
rtpjitterbuffer: add support for serialized queries

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

10 years agotests: fix typecast to fix compilation
Wim Taymans [Fri, 14 Feb 2014 14:53:55 +0000 (15:53 +0100)]
tests: fix typecast to fix compilation

10 years agortpsession: proxy caps and allocation on RTP pads
Wim Taymans [Fri, 14 Feb 2014 11:01:00 +0000 (12:01 +0100)]
rtpsession: proxy caps and allocation on RTP pads

recv_rtp_sink: allow proxying of the allocation query.
send_rtp_sink: allow proxying of caps and allocation. This allows us to
query caps downstream as well as get an allocator from downstream.
send_rtp_src: allow proxy of caps, this makes the caps query do
upstream.

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

10 years agoqtdemux: handle tags in mac encoding
Thiago Santos [Thu, 13 Feb 2014 15:29:13 +0000 (12:29 -0300)]
qtdemux: handle tags in mac encoding

Check the charset from (C)*** tags and set the charset
to convert from MAC encoding if suitable.

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

10 years agosouphttpsrc: Use new automatic_eos API from basesrc
Sebastian Dröge [Thu, 13 Feb 2014 11:09:13 +0000 (12:09 +0100)]
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.

10 years agosouphttpsrc: Consistently use have_size instead of content_size!=0
Sebastian Dröge [Thu, 13 Feb 2014 10:11:13 +0000 (11:11 +0100)]
souphttpsrc: Consistently use have_size instead of content_size!=0

10 years agosouphttpsrc: Free extra headers when finalizing the element
Sebastian Dröge [Thu, 13 Feb 2014 09:30:09 +0000 (10:30 +0100)]
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.

10 years agosouphttpsrc: Properly close the session when going back to NULL
Sebastian Dröge [Thu, 13 Feb 2014 09:28:13 +0000 (10:28 +0100)]
souphttpsrc: Properly close the session when going back to NULL

Don't wait for that until the element is disposed.

10 years agosouphttpsrc: add support for keep-alive sessions
Andoni Morales Alastruey [Thu, 28 Feb 2013 11:20:52 +0000 (12:20 +0100)]
souphttpsrc: add support for keep-alive sessions

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

10 years agosouphttpsrc: Add "compress" property to enable/disable automatic gzip/deflate content...
Sebastian Dröge [Wed, 12 Feb 2014 12:00:13 +0000 (13:00 +0100)]
souphttpsrc: Add "compress" property to enable/disable automatic gzip/deflate content encoding handling

10 years agosouphttpsrc: Retry connection if we're finished before the content size only if we...
Sebastian Dröge [Wed, 12 Feb 2014 11:39:10 +0000 (12:39 +0100)]
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

10 years agosouputils: Fix compiler warning
Sebastian Dröge [Wed, 12 Feb 2014 09:08:50 +0000 (10:08 +0100)]
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]

10 years agosouphttp*: add ability to do HTTP session logging
Reynaldo H. Verdejo Pinochet [Wed, 8 Jan 2014 02:00:56 +0000 (23:00 -0300)]
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

10 years agomatroska: add support for GRAY8, BGR and RGB video colourspaces in V_UNCOMPRESSED...
divhaere [Fri, 7 Feb 2014 13:00:15 +0000 (14:00 +0100)]
matroska: add support for GRAY8, BGR and RGB video colourspaces in V_UNCOMPRESSED codec

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

10 years agosouphttpsrc: Add mapping for NOT_FOUND and NOT_AUTHORIZED errors
Sebastian Dröge [Tue, 11 Feb 2014 12:25:46 +0000 (13:25 +0100)]
souphttpsrc: Add mapping for NOT_FOUND and NOT_AUTHORIZED errors

10 years agosouphttpsrc: Don't duplicate status_code to GStreamer error mapping
Sebastian Dröge [Tue, 11 Feb 2014 12:25:22 +0000 (13:25 +0100)]
souphttpsrc: Don't duplicate status_code to GStreamer error mapping

10 years agogoom: Remove unused functions
Sebastian Dröge [Sun, 9 Feb 2014 22:38:44 +0000 (23:38 +0100)]
goom: Remove unused functions

10 years agomatroskaparse: Comment out some unused functions used only from the commented out...
Sebastian Dröge [Sun, 9 Feb 2014 22:21:20 +0000 (23:21 +0100)]
matroskaparse: Comment out some unused functions used only from the commented out pull-mode code

10 years agoid3v2mux: Fix another compiler warning
Sebastian Dröge [Sat, 8 Feb 2014 20:01:32 +0000 (21:01 +0100)]
id3v2mux: Fix another compiler warning

10 years agosouphttpsrc: Fix implicit enum conversion compiler warning
Sebastian Dröge [Sat, 8 Feb 2014 16:43:32 +0000 (17:43 +0100)]
souphttpsrc: Fix implicit enum conversion compiler warning

error: implicit conversion from enumeration type
'SoupStatus' to different enumeration type 'SoupKnownStatusCode'

10 years agointerleave: Fix unitialized variable compiler warning in test
Sebastian Dröge [Sat, 8 Feb 2014 16:41:21 +0000 (17:41 +0100)]
interleave: Fix unitialized variable compiler warning in test

error: variable 'mask' is used uninitialized
whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]

10 years agoid3v2mux: Fix unitialized variable compiler warning
Sebastian Dröge [Sat, 8 Feb 2014 16:27:51 +0000 (17:27 +0100)]
id3v2mux: Fix unitialized variable compiler warning

error: variable 'image_type' is used uninitialized
whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]

10 years agooss4: Fix typo in header include guard
Sebastian Dröge [Sat, 8 Feb 2014 16:25:27 +0000 (17:25 +0100)]
oss4: Fix typo in header include guard

error: 'GST_OSS4_AUDIO_H' is used as a header guard here,
followed by #define of a different macro [-Werror,-Wheader-guard]

10 years agortprtxsend: Fix unitialized variable compiler warning
Sebastian Dröge [Sat, 8 Feb 2014 16:24:06 +0000 (17:24 +0100)]
rtprtxsend: Fix unitialized variable compiler warning

variable 'rtx_ssrc' is used uninitialized whenever
'if' condition is false [-Werror,-Wsometimes-uninitialized]

10 years agortpac3depay: Remove unused variable
Sebastian Dröge [Sat, 8 Feb 2014 16:21:19 +0000 (17:21 +0100)]
rtpac3depay: Remove unused variable

10 years agoflx: Fix typo in header include guard
Sebastian Dröge [Sat, 8 Feb 2014 16:19:19 +0000 (17:19 +0100)]
flx: Fix typo in header include guard

error: '__GST_FLX_FMT__H__' is used as a header guard here,
followed by #define of a different macro [-Werror,-Wheader-guard]

10 years agoqtmux: remove have_dts flag from pads
Thiago Santos [Fri, 7 Feb 2014 13:07:41 +0000 (10:07 -0300)]
qtmux: remove have_dts flag from pads

It was used in the past in 0.10 when there was no explicit DTS
field in buffers, now we have it in 1.x series and we can
check it directly with GST_BUFFER_DTS_IS_VALID

10 years agoqtmux: improve support for sparse streams
Thiago Santos [Fri, 7 Feb 2014 04:49:26 +0000 (01:49 -0300)]
qtmux: improve support for sparse streams

Do not try to use subsequent buffer timestamps to calculate
sparse streams durations because the stream is sparse and
the buffers might not be 'time adjacent'. So rely on the
duration and give the option to the pad to provide
custom 'empty' buffers to represent the gaps in the
stream, this can vary on how the data is represented.

Right now, the only sparse stream supported is tx3g subtitles.

10 years agoqtmux: add support for text/x-raw subtitles
Thiago Santos [Thu, 6 Feb 2014 15:15:22 +0000 (12:15 -0300)]
qtmux: add support for text/x-raw subtitles

Adds it to mp4mux, qtmux and gppmux.

Buffers need to be prefixed with 2 bytes for the text length before
being muxed.

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

10 years agoqtmux: add support for the TX3G atoms
Thiago Santos [Thu, 6 Feb 2014 15:09:01 +0000 (12:09 -0300)]
qtmux: add support for the TX3G atoms

Adds functions for creating and setting values related to the
tx3g atom for raw text subtitle support.

QTFF spec has information on those atoms

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

10 years agoqtmux: add subtitle support to qtmuxmap structures
Thiago Santos [Wed, 5 Feb 2014 13:27:54 +0000 (10:27 -0300)]
qtmux: add subtitle support to qtmuxmap structures

adds basic stubs for subtitle support around the qtmux and
qtmuxmap structures. Still no real subtitle implemented, but
basic functions in place

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

10 years agomatroska: factor out read context init/reset
Reynaldo H. Verdejo Pinochet [Mon, 20 Jan 2014 20:31:14 +0000 (17:31 -0300)]
matroska: factor out read context init/reset

While at this, move _track_reset() to track-ids
so it can be called from the common read context
reset routine.

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

10 years agoeffectv: fix doc section of revtv element
Wim Taymans [Thu, 6 Feb 2014 11:21:07 +0000 (12:21 +0100)]
effectv: fix doc section of revtv element

10 years agoosxvideo: Fix libtool usage
Edward Hervey [Wed, 5 Feb 2014 11:46:54 +0000 (12:46 +0100)]
osxvideo: Fix libtool usage

--tag=CC is needed for static build

10 years agodeinterlace: do not try set deinterlace method if passthrough is enabled
Matthieu Bouron [Thu, 16 Jan 2014 11:26:41 +0000 (11:26 +0000)]
deinterlace: do not try set deinterlace method if passthrough is enabled

Fixes an issue with progressive content and unsupported video formats
for the deinterlace method.

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

10 years agoflacenc: order format in template caps by preference
Tim-Philipp Müller [Tue, 4 Feb 2014 20:26:56 +0000 (21:26 +0100)]
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.

10 years agov4l2: Remove obsolete definition GST_V4L2_MISSING_BUFDECL
Dan Kegel [Sun, 2 Feb 2014 17:57:03 +0000 (09:57 -0800)]
v4l2: Remove obsolete definition GST_V4L2_MISSING_BUFDECL

The only use was removed by 9edc0c0365f79ab07ff2e65461c6696e3931a3f0

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

10 years agogst: Don't use endianness-specific S8 audio format
Rafał Mużyło [Tue, 4 Feb 2014 12:43:56 +0000 (13:43 +0100)]
gst: Don't use endianness-specific S8 audio format

It does not exist.

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

10 years agocairooverlay: add support for RGB16
Julien Isorce [Fri, 31 Jan 2014 14:17:54 +0000 (14:17 +0000)]
cairooverlay: add support for RGB16

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

10 years agomatroskamux: Fix constantly growing used uid list
Per x Johansson [Thu, 30 Jan 2014 08:43:50 +0000 (09:43 +0100)]
matroskamux: Fix constantly growing used uid list

Moves the used uid list to the class to avoid having it grow forever.

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

10 years agoAutomatic update of common submodule
Edward Hervey [Thu, 30 Jan 2014 09:44:05 +0000 (10:44 +0100)]
Automatic update of common submodule

From d48bed3 to 1a07da9

10 years agowavparse: Ignore Broadcast Wave Format (BWF) tags when searching for 'fmt' chunk
Mike Sheldon [Fri, 24 Jan 2014 01:52:08 +0000 (01:52 +0000)]
wavparse: Ignore Broadcast Wave Format (BWF) tags when searching for 'fmt' chunk

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

10 years agocheck: Use fakesink sync=True instead of an audio sink
Edward Hervey [Wed, 29 Jan 2014 09:37:53 +0000 (10:37 +0100)]
check: Use fakesink sync=True instead of an audio sink

Ensures the test can run on systems without alsa (or any audio output for
that matter), and will avoid people running build slaves wondering what
the hell was beeping during the night :)

10 years agoac3parse: custom get_sink_caps handling for private stream caps
Mark Nauwelaerts [Mon, 27 Jan 2014 19:05:42 +0000 (20:05 +0100)]
ac3parse: custom get_sink_caps handling for private stream caps

... now that those are transformed rather than parsed, some transforming
of caps is required as well to make auto-plugging succeed.

10 years agov4l2: guard use of ENODATA with #ifdef
Ryan Lortie [Sat, 25 Jan 2014 07:06:00 +0000 (02:06 -0500)]
v4l2: guard use of ENODATA with #ifdef

Not all systems with v4l have ENODATA defined, so check that we have it
before attempting to use it.

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

10 years agoRevert "rtspsrc: Proxy rtpjitterbuffer do-retransmission property"
Sebastian Dröge [Fri, 24 Jan 2014 11:37:39 +0000 (12:37 +0100)]
Revert "rtspsrc: Proxy rtpjitterbuffer do-retransmission property"

This reverts commit 9f7b1128b1f00a2b87a232ff890867549ab95ba5.

This should be handled automatically be rtspsrc if the AVPF profile
is used, and manual enabling of it can be done with the new-manager
signal.

10 years agortspsrc: add signal to notify of new manager
Wim Taymans [Fri, 24 Jan 2014 09:21:11 +0000 (10:21 +0100)]
rtspsrc: add signal to notify of new manager

So that you can configure and connect to signals on the rtpbin.

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

10 years agortspsrc: Proxy rtpjitterbuffer do-retransmission property
Aleix Conchillo Flaqué [Thu, 23 Jan 2014 23:17:58 +0000 (15:17 -0800)]
rtspsrc: Proxy rtpjitterbuffer do-retransmission property

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

10 years agortpjitterbuffer: handle expected packet being an RTX packet
Wim Taymans [Tue, 21 Jan 2014 16:52:44 +0000 (17:52 +0100)]
rtpjitterbuffer: handle expected packet being an RTX packet

If the expected packet (do_next_seqnum is TRUE) is the one we requested
for retranmission earlier, do the logic to update the retransmission
statistics as well before setting up the timers for the next expected
packet.
Also reset the retransmission counter if the timer is reused for another
seqnum.

10 years agortpbin: add a caps accumulator for the request-pt-map signal
Wim Taymans [Tue, 21 Jan 2014 14:48:20 +0000 (15:48 +0100)]
rtpbin: add a caps accumulator for the request-pt-map signal

Add an accumulator that stops the signal emission as soon as a caps has
been retrieved. Otherwise the default handler would continue emitting
the signal and possibly overwrite the result with NULL again.

10 years agortxreceive: copy flags and timestamps from original buffer
Wim Taymans [Tue, 21 Jan 2014 14:25:54 +0000 (15:25 +0100)]
rtxreceive: copy flags and timestamps from original buffer

10 years agortpjitterbuffer: ignore invalid timestamps in rtt calculation
Wim Taymans [Tue, 21 Jan 2014 14:24:52 +0000 (15:24 +0100)]
rtpjitterbuffer: ignore invalid timestamps in rtt calculation

When the input buffer does not have a valid timestamp, don't try to
calculate the round-trip-time.

10 years agomatroskaparse: better default caps when none set
Reynaldo H. Verdejo Pinochet [Thu, 16 Jan 2014 17:23:13 +0000 (14:23 -0300)]
matroskaparse: better default caps when none set

Uses information gathered during EBML parsing to
forge a more suitable set of caps instead of blindly
assuming everything is video/x-matroska.

For consistency, stream type reset was added to
matroska-demux too.

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

10 years agotests: rtprtx::test_rtxreceive_data_reconstruction: remove useless code for triggerin...
George Kiagiadakis [Wed, 15 Jan 2014 16:29:35 +0000 (17:29 +0100)]
tests: rtprtx::test_rtxreceive_data_reconstruction: remove useless code for triggering retransmission

There is no need anymore to push yet another buffer in rtxsend
in order to trigger the previously requested retransmissions
to actually happen.

10 years agotests: rtprtx::test_rtxreceive_data_reconstruction: fix race condition
George Kiagiadakis [Wed, 15 Jan 2014 16:27:19 +0000 (17:27 +0100)]
tests: rtprtx::test_rtxreceive_data_reconstruction: fix race condition

Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.

This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.

10 years agotests: rtprtx::test_rtxsender_packet_retention: fix race condition
George Kiagiadakis [Wed, 15 Jan 2014 16:17:57 +0000 (17:17 +0100)]
tests: rtprtx::test_rtxsender_packet_retention: fix race condition

Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.

This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.

10 years agotests: rtprtx::test_push_forward_seq: fix race condition
George Kiagiadakis [Wed, 15 Jan 2014 10:26:33 +0000 (11:26 +0100)]
tests: rtprtx::test_push_forward_seq: fix race condition

Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.

This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.

10 years agotests: rtprtx::test_push_forward_seq: fix buffer refcounting
George Kiagiadakis [Wed, 15 Jan 2014 08:47:03 +0000 (09:47 +0100)]
tests: rtprtx::test_push_forward_seq: fix buffer refcounting

10 years agortprtxsend: ensure that no rtx buffers are sent after EOS
George Kiagiadakis [Tue, 21 Jan 2014 12:42:38 +0000 (13:42 +0100)]
rtprtxsend: ensure that no rtx buffers are sent after EOS

To do that, enqueue the EOS event to be sent from the srcpad task
thread and flush the queue right afterwards, so that no more rtx
buffers can be sent, even if there are more requests coming in.

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

10 years agortprtxsend: run a new GstTask on the src pad
George Kiagiadakis [Wed, 15 Jan 2014 08:46:14 +0000 (09:46 +0100)]
rtprtxsend: run a new GstTask on the src pad

The reason behind this is to minimize the retransmission delay.
Previously, when a NACK was received, rtprtxsend would put a
retransmission packet in a queue and it would send it from chain(),
i.e. only after a new buffer would arrive.

This unfortunately was causing big delays, in the order of 60-100 ms,
which can be critical for the receiver side.

By having a separate GstTask for pushing buffers out of rtxsend,
we can push buffers out right after receiving the event, without
waiting for chain() to get called.

10 years agoshout2send: error out if no caps were received
Tim-Philipp Müller [Fri, 3 Jan 2014 17:47:55 +0000 (17:47 +0000)]
shout2send: error out if no caps were received

Instead of assuming that input is ogg.

10 years agoshout2send: accept audio/webm, audio/ogg and video/ogg as well
Tim-Philipp Müller [Fri, 3 Jan 2014 17:30:12 +0000 (17:30 +0000)]
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.

10 years agortpvp8pay: Don't leak input buffers
Sebastian Dröge [Mon, 20 Jan 2014 09:12:45 +0000 (10:12 +0100)]
rtpvp8pay: Don't leak input buffers

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

10 years agoavimux: reset some more audio pad data when needed
Mark Nauwelaerts [Sun, 19 Jan 2014 16:40:56 +0000 (17:40 +0100)]
avimux: reset some more audio pad data when needed

10 years agoavimux: write correct blockalign for vbr audio
Mark Nauwelaerts [Sun, 19 Jan 2014 16:38:59 +0000 (17:38 +0100)]
avimux: write correct blockalign for vbr audio

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

10 years agortpjitterbuffer: do not drop serialized events when latency is set
Aleix Conchillo Flaqué [Fri, 17 Jan 2014 01:36:12 +0000 (17:36 -0800)]
rtpjitterbuffer: do not drop serialized events when latency is set

Serialized events are now queued in the jitter buffer, so we don't
want to drop them even latency is set.

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

10 years agoavimux: don't make the buffer writable unless absolutely necessary
Michael Olbrich [Wed, 11 Dec 2013 08:36:22 +0000 (09:36 +0100)]
avimux: don't make the buffer writable unless absolutely necessary

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

10 years agov4l2: set GST_BUFFER_FLAG_DELTA_UNIT when appropriate
Michael Olbrich [Thu, 12 Sep 2013 14:56:56 +0000 (16:56 +0200)]
v4l2: set GST_BUFFER_FLAG_DELTA_UNIT when appropriate

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

10 years agov4l2bufferpool: don't ref the newly created allocator
Michael Olbrich [Fri, 17 Jan 2014 06:46:09 +0000 (07:46 +0100)]
v4l2bufferpool: don't ref the newly created allocator

Otherwise the allocator will never be deleted.

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

10 years agomatroskademux: Don't skip all video frames until the first keyframe
Sebastian Dröge [Wed, 15 Jan 2014 21:47:12 +0000 (22:47 +0100)]
matroskademux: Don't skip all video frames until the first keyframe

Instead do it like all other demuxers and let parsers and decoders
handle that. The keyframe information inside the container might
be completely wrong like in the sample file of the bug report,
and if it is correct and we push no keyframes, then the parsers
and decoders will handle that properly anyway.

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

10 years agoqtdemux: remove elst_offset variables
Thiago Santos [Mon, 13 Jan 2014 13:08:09 +0000 (10:08 -0300)]
qtdemux: remove elst_offset variables

They are not used anymore

10 years agoqtdemux: remember reverse playback when verifying the segment end
Thiago Santos [Tue, 7 Jan 2014 00:36:17 +0000 (21:36 -0300)]
qtdemux: remember reverse playback when verifying the segment end

Check if the rate is positive or negative to correctly compare the current
position with the segment to make reverse playback work

10 years agoqtdemux: do not ignore empty segments
Thiago Santos [Fri, 3 Jan 2014 13:59:35 +0000 (10:59 -0300)]
qtdemux: do not ignore empty segments

Make sure empty segments are used and pushed with a gap event
to represent its data (or lack of it)

Each QtSegment is mapped into a GstSegment with the corresponding
media range. For empty QtSegments a gap event is pushed instead
of GstBuffers and it advances to the next QtSegment.

To make this work with seeks, need to keep track of the starting
'base' to make sure it remains consistently increasing when
pushing new segment events.
For example: if a seek makes qtdemux start from 5s, the first
segment will have a base=0. When the next segment is activated,
its base time will be QtSegment.time - qtdemux.segment_base so
that it doesn't include the first 5s that weren't played and
shouldn't be accounted on the running time

This purposedly will remove the fix made for
https://bugzilla.gnome.org/show_bug.cgi?id=700264, at this
point it was decided to respect the gaps, even if they cause
a delay on playback, because that's the way the file was crafted.

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

10 years agotests: Remove usage of the system clock from the rtprtx test
Olivier Crête [Fri, 13 Dec 2013 04:05:43 +0000 (23:05 -0500)]
tests: Remove usage of the system clock from the rtprtx test

10 years agotests: Initial segment in rtpcollision test
Olivier Crête [Fri, 13 Dec 2013 04:22:41 +0000 (23:22 -0500)]
tests: Initial segment in rtpcollision test

10 years agoexamples/*-rtpaux: specify payload type association for the audio stream, so that...
George Kiagiadakis [Tue, 14 Jan 2014 14:56:42 +0000 (15:56 +0100)]
examples/*-rtpaux: specify payload type association for the audio stream, so that rtx works also for audio

10 years agortprtxsend: remove wrong check for payload type not having been set
George Kiagiadakis [Tue, 14 Jan 2014 12:08:18 +0000 (13:08 +0100)]
rtprtxsend: remove wrong check for payload type not having been set

1) pt can be lower than 96
2) there is no point in checking that because rtprtxsend will not
   even store buffers for payload types that it doesn't know about,
   so this case will never be reached

10 years agortprtxsend: fix data locking when creating rtx packets
George Kiagiadakis [Tue, 14 Jan 2014 12:01:41 +0000 (13:01 +0100)]
rtprtxsend: fix data locking when creating rtx packets

This patch moves the creation of rtx packets to be done early,
in the src_event() function, when they are requested. The purpose
is to run gst_rtp_rtx_buffer_new() with the object locked to
protect internal data, because if it is done at the pushing stage,
we would have to lock and unlock multiple times in a row while we
are pushing the rtx buffers.

Previously there was no locking at all, which was terribly wrong.

10 years agortprtxsend: lock access to internal data in sink_event() function
George Kiagiadakis [Tue, 14 Jan 2014 11:50:23 +0000 (12:50 +0100)]
rtprtxsend: lock access to internal data in sink_event() function

10 years agortprtxsend: remove unnecessary call to reset() from finalize()
George Kiagiadakis [Tue, 14 Jan 2014 11:44:06 +0000 (12:44 +0100)]
rtprtxsend: remove unnecessary call to reset() from finalize()

...and use _free_full() on the pending buffers queue now that
reset() is not being called

10 years agortprtxsend: remove unused parameter from the internal reset() method
George Kiagiadakis [Tue, 14 Jan 2014 11:38:51 +0000 (12:38 +0100)]
rtprtxsend: remove unused parameter from the internal reset() method

10 years agortprtxsend: Use g_slice_* for allocating internal structures
George Kiagiadakis [Tue, 14 Jan 2014 11:32:38 +0000 (12:32 +0100)]
rtprtxsend: Use g_slice_* for allocating internal structures

10 years agortprtxreceive: remove stupid mutex unlock in the middle of chain()
George Kiagiadakis [Tue, 14 Jan 2014 11:28:01 +0000 (12:28 +0100)]
rtprtxreceive: remove stupid mutex unlock in the middle of chain()

10 years agortprtxreceive: use GST_DEBUG_OBJECT / GST_WARNING_OBJECT instead of GST_DEBUG / g_warning
George Kiagiadakis [Tue, 14 Jan 2014 11:25:36 +0000 (12:25 +0100)]
rtprtxreceive: use GST_DEBUG_OBJECT / GST_WARNING_OBJECT instead of GST_DEBUG / g_warning

10 years agortprtxreceive: fix integer format specifiers in GST_DEBUG
George Kiagiadakis [Tue, 14 Jan 2014 11:19:58 +0000 (12:19 +0100)]
rtprtxreceive: fix integer format specifiers in GST_DEBUG

seqnum in this function is 32-bit, so G_GUINT16_FORMAT would
produce undefined output on big endian systems

10 years agortprtxsend: change the rtx_pt_map directly in set_property() instead of delaying...
George Kiagiadakis [Tue, 14 Jan 2014 11:13:49 +0000 (12:13 +0100)]
rtprtxsend: change the rtx_pt_map directly in set_property() instead of delaying it for chain()

The same lock is held, so there is no point in complicating it...

10 years agortprtxreceive: change the rtx_pt_map directly in set_property() instead of delaying...
George Kiagiadakis [Tue, 14 Jan 2014 11:07:58 +0000 (12:07 +0100)]
rtprtxreceive: change the rtx_pt_map directly in set_property() instead of delaying it for chain()

The same lock is held, so there is no point in complicating it...