platform/upstream/gst-plugins-good.git
9 years agoalawdec: make error handling a bit nicer
Thiago Santos [Sat, 15 Aug 2015 14:31:04 +0000 (11:31 -0300)]
alawdec: make error handling a bit nicer

Print the element along with the debug to make it easier to trace
the failures

9 years agoalawdec: port to audiodecoder base class
Thiago Santos [Sat, 15 Aug 2015 14:04:16 +0000 (11:04 -0300)]
alawdec: port to audiodecoder base class

mulawdec was already ported, alawdec was left behind.

9 years agoqtdemux: only look for more samples in moofs in pull-mode
Thiago Santos [Sat, 15 Aug 2015 13:34:14 +0000 (10:34 -0300)]
qtdemux: only look for more samples in moofs in pull-mode

For playback of some fragmented formats with qtdemux it will
try to look for the next moof after finishing one but it is only
possible for pull-mode. For playback of streaming fragmented formats
such as DASH it should just not try to look for another moof but
instead wait for more data.

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

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

9 years agodcaparse: Don't look for a second syncword
Sebastian Dröge [Sat, 15 Aug 2015 10:58:50 +0000 (12:58 +0200)]
dcaparse: Don't look for a second syncword

There are streams out there that consistently contain garbage between
every frame so we never ever find a second consecutive syncword.

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

9 years agovp8enc, vp9enc: reset multipass file index when stopping encoder
Tim-Philipp Müller [Sat, 15 Aug 2015 10:12:05 +0000 (11:12 +0100)]
vp8enc, vp9enc: reset multipass file index when stopping encoder

Fixes multipass encoding when re-using the same element/pipeline
for subsequent encoding runs.

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

9 years agovp9enc: provide support for multiple pass cache files
Tim-Philipp Müller [Sat, 15 Aug 2015 10:09:42 +0000 (11:09 +0100)]
vp9enc: provide support for multiple pass cache files

Some files may provide different caps insight of one stream. Since
vp9enc support caps reinit, we should support cache reinit too.
If more then file cache file will be created, the naming will be:
cache cache.1 cache.2 ...

Based on patch by: Oleksij Rempel <linux@rempel-privat.de>

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

9 years agotests: aacparse: use caps query instead of accept-caps
Thiago Santos [Fri, 14 Aug 2015 14:41:42 +0000 (11:41 -0300)]
tests: aacparse: use caps query instead of accept-caps

The accept-caps query just does a shallow check at the current
element while at this test we want it to also look at downstream.
So use caps query there.

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

9 years agoaudioparsers: enable accept-template flag
Thiago Santos [Fri, 14 Aug 2015 14:40:22 +0000 (11:40 -0300)]
audioparsers: enable accept-template flag

Do a quick check with the pad template caps as it is enough. Users
should have figured the appropriate full caps on a previous caps query

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

9 years agortspsrc: send the User-Agent header
George Kiagiadakis [Fri, 14 Aug 2015 13:46:53 +0000 (15:46 +0200)]
rtspsrc: send the User-Agent header

Sometimes it is useful to know this information on the
server side. Other popular implementations (vlc, ffmpeg, ...)
also send this header on every message.

This includes a new "user-agent" property that the user
can set to use a custom User-Agent string. The default
is "GStreamer/<version>"

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

9 years agortspsrc: wrap gst_rtsp_message_init_request in a local function
George Kiagiadakis [Fri, 14 Aug 2015 13:42:42 +0000 (15:42 +0200)]
rtspsrc: wrap gst_rtsp_message_init_request in a local function

This will allow adding common request initialization, like the
user agent string, in just one place.

9 years agoaudioecho: make sure buffer gets reallocated if max_delay changes
Prashant Gotarne [Fri, 14 Aug 2015 04:06:09 +0000 (09:36 +0530)]
audioecho: make sure buffer gets reallocated if max_delay changes

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

9 years agovp8enc: provide support for multiple pass cache files
Oleksij Rempel [Thu, 9 Jul 2015 07:51:26 +0000 (09:51 +0200)]
vp8enc: provide support for multiple pass cache files

Some files may provide different caps insight of one stream. Since vp8enc
support caps reinit, we should support cache reinit too.
If more then file cache file will be created, the naming will be:
cache
cache.1
cache.2
...

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

9 years agortpmp4gdepay: fix timestamps for RTP packets with multiple AUs
Ramiro Polla [Wed, 15 Apr 2015 20:51:51 +0000 (22:51 +0200)]
rtpmp4gdepay: fix timestamps for RTP packets with multiple AUs

Use constantDuration to calculate the timestamp of non-first AU in the
RTP packet.

If constantDuration is not present in the MIME parameters, its value
must be calculated based on the timing information from two consecutive
RTP packets with AU-Index equal to 0.

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

9 years agosouphttpsrc: remove unnecessary if, g_free is null safe
Thiago Santos [Fri, 14 Aug 2015 09:43:13 +0000 (06:43 -0300)]
souphttpsrc: remove unnecessary if, g_free is null safe

9 years agosouphttpsrc: add property to set HTTP method
Alex Ashley [Fri, 14 Aug 2015 07:33:56 +0000 (08:33 +0100)]
souphttpsrc: add property to set HTTP method

To allow souphttpsrc to be use HTTP methods other than GET
(e.g. HEAD), add a "method" property that is a string. If this
property is not set, GET is used.

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

9 years agocheck: Rename states unit test
Edward Hervey [Fri, 14 Aug 2015 09:13:01 +0000 (11:13 +0200)]
check: Rename states unit test

Makes it easier to differentiate from other modules states unit test

9 years agogoom: Rename get_type() function of base class to prevent symbol conflicts
Sebastian Dröge [Fri, 14 Aug 2015 07:21:25 +0000 (09:21 +0200)]
goom: Rename get_type() function of base class to prevent symbol conflicts

This is a problem when statically linking.

9 years agortpjitterbuffer: Keep the DTS estimate if we got no DTS after a jitterbuffer reset
Sebastian Dröge [Thu, 13 Aug 2015 14:32:55 +0000 (16:32 +0200)]
rtpjitterbuffer: Keep the DTS estimate if we got no DTS after a jitterbuffer reset

Otherwise we will just output buffers without timestamps after a reset if no
timestamps are provided by upstream, e.g. when using RTSP over TCP.

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

9 years agomatroska: Remove unused variable
Ravi Kiran K N [Wed, 12 Aug 2015 11:46:01 +0000 (17:16 +0530)]
matroska: Remove unused variable

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

9 years agortp: Copy metadata in the (de)payloader, but only the relevant ones
Sebastian Dröge [Tue, 4 Aug 2015 17:59:17 +0000 (20:59 +0300)]
rtp: Copy metadata in the (de)payloader, but only the relevant ones

The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the video tag.

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

9 years agoqtdemux: fix small typo in comment
Thiago Santos [Mon, 10 Aug 2015 21:20:15 +0000 (18:20 -0300)]
qtdemux: fix small typo in comment

9 years agogoom2k1/doc: Fixup previous commit
Nicolas Dufresne [Mon, 10 Aug 2015 20:19:18 +0000 (16:19 -0400)]
goom2k1/doc: Fixup previous commit

9 years agogoom2k1/doc: Use GstGoom2k1 namespace
Nicolas Dufresne [Mon, 10 Aug 2015 19:55:19 +0000 (15:55 -0400)]
goom2k1/doc: Use GstGoom2k1 namespace

The doc generator isn't happy when we have class name clash. Simply
use it's own namespace.

9 years agoaudioecho: removed unused variable in set_property
Prashant Gotarne [Mon, 10 Aug 2015 11:40:42 +0000 (17:10 +0530)]
audioecho: removed unused variable in set_property

unused local variable 'delay' is removed.

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

9 years agoqtdemux: fix suboptimal queue iteration code
Tim-Philipp Müller [Mon, 10 Aug 2015 11:45:27 +0000 (12:45 +0100)]
qtdemux: fix suboptimal queue iteration code

9 years agoqtdemux: don't use glib 2.44-only API
Tim-Philipp Müller [Sun, 9 Aug 2015 16:25:45 +0000 (17:25 +0100)]
qtdemux: don't use glib 2.44-only API

9 years agoqtdemux: add support for ISOBMFF Common Encryption
Alex Ashley [Wed, 29 Jul 2015 13:14:50 +0000 (14:14 +0100)]
qtdemux: add support for ISOBMFF Common Encryption

This commit adds support for ISOBMFF Common Encryption (cenc), as
defined in ISO/IEC 23001-7. It uses a GstProtection event to
pass the contents of PSSH boxes to downstream decryptor elements
and attached GstProtectionMeta to each sample.

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

9 years agortph264depay: checking if depay has sps/pps nals before insertion
Hyunjun Ko [Mon, 10 Aug 2015 05:13:50 +0000 (14:13 +0900)]
rtph264depay: checking if depay has sps/pps nals before insertion

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

9 years agomatroskamux: fix outdated comment
Tim-Philipp Müller [Sat, 8 Aug 2015 15:44:49 +0000 (16:44 +0100)]
matroskamux: fix outdated comment

The default behaviour was changed in the 0.10 -> 1.x
transition, but the comment was not updated.

9 years agortptheorapay: If flushing a packet failed, go out of the loop immediately
Sebastian Dröge [Sat, 8 Aug 2015 15:42:22 +0000 (17:42 +0200)]
rtptheorapay: If flushing a packet failed, go out of the loop immediately

9 years agortpvorbispay: If flushing a packet failed, go out of the loop immediately
Sebastian Dröge [Sat, 8 Aug 2015 15:41:02 +0000 (17:41 +0200)]
rtpvorbispay: If flushing a packet failed, go out of the loop immediately

9 years agortptheorapay: Extract pixel format from the ident header to put it into the sampling...
Sebastian Dröge [Sat, 8 Aug 2015 15:34:50 +0000 (17:34 +0200)]
rtptheorapay: Extract pixel format from the ident header to put it into the sampling field of the caps

We always put 4:2:0 into the caps before, which obviously is wrong for 4:2:2
and 4:4:4 formats.

9 years agortpklv(de)pay: add "RTP" in the klass string
George Kiagiadakis [Thu, 6 Aug 2015 15:46:13 +0000 (17:46 +0200)]
rtpklv(de)pay: add "RTP" in the klass string

GstRTSPMedia uses this classification to detect the real payloader
inside a dynpay bin and asserts if it doesn't find it, therefore
it is required

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

9 years agotests: rtpaux: use a dynamic pt in the test
Thiago Santos [Wed, 5 Aug 2015 14:13:09 +0000 (11:13 -0300)]
tests: rtpaux: use a dynamic pt in the test

1) Tests that using dynamic PT instead of the default ones work
2) If we ever decide to change the codec here we don't need to
   worry about change the PT for the default one of the new codec
   in the test

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

9 years agortprtxsend: print valid type where guint32 is expected
Hyunjun Ko [Wed, 5 Aug 2015 01:53:15 +0000 (10:53 +0900)]
rtprtxsend: print valid type where guint32 is expected

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

9 years agortppayload: set standard payload type as default
Hyunjun Ko [Thu, 6 Aug 2015 02:33:37 +0000 (11:33 +0900)]
rtppayload: set standard payload type as default

Initialize the PT to the default value of the codec and check if
it is still the default before declaring the pt to be dynamic or
not when setting the caps.

Also use the PT constants from the rtp lib when possible

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

9 years agoqtdemux: store the moof-offset also for push mode
Thiago Santos [Sun, 26 Jul 2015 15:07:56 +0000 (12:07 -0300)]
qtdemux: store the moof-offset also for push mode

It will be used in some cases for getting the correct offsets
from trun atoms.

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

9 years agoqtdemux: handle default-base-is-moof flag
Thiago Santos [Sun, 26 Jul 2015 05:09:24 +0000 (02:09 -0300)]
qtdemux: handle default-base-is-moof flag

Handle the flag from the tfhd that signals the base offset to
start from the moof atom

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

9 years agomatroskademux: Preserve forward referenced track tags
Glen Diener [Thu, 30 Jul 2015 00:54:35 +0000 (18:54 -0600)]
matroskademux: Preserve forward referenced track tags

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

9 years agotests: rtpaux: fix test failure
Thiago Santos [Tue, 4 Aug 2015 21:07:35 +0000 (18:07 -0300)]
tests: rtpaux: fix test failure

The RTP PT for alaw is 8.
Less than 50 packets are received in the length of this test so it
would never drop a buffer or would drop only the last buffer and
it would fail sometimes when the received wouldn't receive the
retransmission packet in time.

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

9 years agortpstreamdepay: Only allow activation in push mode
Sebastian Dröge [Tue, 4 Aug 2015 17:59:17 +0000 (20:59 +0300)]
rtpstreamdepay: Only allow activation in push mode

We need a proper caps event from upstream with the full RTP caps as we can't
create caps ourselves from thin air. Fixes usage of rtpstreamdepay after e.g.
a filesrc or any other element that supports pull mode.

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

9 years agosoup: fix typo in translated string
Tim-Philipp Müller [Tue, 4 Aug 2015 15:28:17 +0000 (16:28 +0100)]
soup: fix typo in translated string

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

9 years agortph264depay: Put the profile and level into the caps
Sebastian Dröge [Tue, 4 Aug 2015 09:25:46 +0000 (12:25 +0300)]
rtph264depay: Put the profile and level into the caps

9 years agortph264depay: Only update the srcpad caps if something else than the codec_data changed
Sebastian Dröge [Tue, 4 Aug 2015 09:09:12 +0000 (12:09 +0300)]
rtph264depay: Only update the srcpad caps if something else than the codec_data changed

h264parse does the same, let's keep the behaviour consistent. As we now
include the codec_data inside the stream too here, this causes less caps
renegotiation.

9 years agortph264depay: PPS replaces and old PPS if it has the same id, independent of SPS id
Sebastian Dröge [Tue, 4 Aug 2015 08:48:27 +0000 (11:48 +0300)]
rtph264depay: PPS replaces and old PPS if it has the same id, independent of SPS id

The spec says:

When a picture parameter set NAL unit with a particular value of
pic_parameter_set_id is received, its content replaces the content of the
previous picture parameter set NAL unit, in decoding order, with the same
value of pic_parameter_set_id (when a previous picture parameter set NAL unit
with the same value of pic_parameter_set_id was present in the bitstream).

9 years agosplitmuxsink: remove extra \n at debug message
Thiago Santos [Mon, 3 Aug 2015 16:45:59 +0000 (13:45 -0300)]
splitmuxsink: remove extra \n at debug message

9 years agosplitmuxsink: prevent deadlock when states change too fast
Thiago Santos [Mon, 3 Aug 2015 16:42:20 +0000 (13:42 -0300)]
splitmuxsink: prevent deadlock when states change too fast

If the GOP is completed, pads have to start gathering for the
next one but it is possible that the the state might go to
COLLECTING_GOP_START and back to WAITING_GOP_COMPLETE before the
thread has a chance to wake up and proceed, leaving it trapped in
the check_completed_gop loop and deadlocking the other threads
waiting for it to advance.

To solve it, this patch also checks that tha input running time
hasn't changed to prevent this scenario.

9 years agortph264depay: Insert SPS/PPS NALs into the stream
Sebastian Dröge [Mon, 3 Aug 2015 14:55:01 +0000 (17:55 +0300)]
rtph264depay: Insert SPS/PPS NALs into the stream

h264parse does the same and this fixes decoding of some streams with 32 SPS
(or 256 PPS). It is allowed to have SPS ID 0 to 31 (or PPS ID 0 to 255), but
the field in the codec_data for the number of SPS or PPS is only 5 (or 8) bit.
As such, 32 SPS (or 256 PPS) are interpreted as 0 everywhere.

This looks like a mistake in the part of the spec about the codec_data.

9 years agosouphttpsrc: handle empty http proxy string
Eunhae Choi [Thu, 30 Jul 2015 02:29:27 +0000 (11:29 +0900)]
souphttpsrc: handle empty http proxy string

1) If the system http_proxy environment variable is not set
or set to an empty string, we must not set proxy to avoid
http connection error.

2) In case of proxy property setting, if user want to clear
the proxy setting, they should be able to set it to NULL or
an empty string again, so this is fixed too.

3) Check if the proxy string was parsed correctly.

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

9 years agodvdemux: remove unused variable
Ravi Kiran K N [Wed, 29 Jul 2015 10:16:20 +0000 (15:46 +0530)]
dvdemux: remove unused variable

Remove unused variable 'framecount' from dvdemux

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

9 years agortspsrc: assertion error due to wrong condition check
Vineeth TM [Thu, 30 Jul 2015 06:32:09 +0000 (15:32 +0900)]
rtspsrc: assertion error due to wrong condition check

In media to caps function, reserved_keys array is being used for variable i,
leading to GLib-CRITICAL **: g_ascii_strcasecmp: assertion 's1 != NULL' failed
changed it to variable j

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

9 years agortpmp4vdepay: rtpbuffer is being unref'ed twice
Vineeth TM [Thu, 30 Jul 2015 06:21:20 +0000 (15:21 +0900)]
rtpmp4vdepay: rtpbuffer is being unref'ed twice

process_rtp_packet doesn't transfer the rtp buffer to mp4v_process_depay
the refernce should not be removed here

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

9 years agortspsrc: Strip keys from the fmtp that we use internally in our caps
Sebastian Dröge [Wed, 29 Jul 2015 10:26:46 +0000 (11:26 +0100)]
rtspsrc: Strip keys from the fmtp that we use internally in our caps

Skip keys from the fmtp, which we already use ourselves for the
caps. Some software is adding random things like clock-rate into
the fmtp, and we would otherwise here set a string-typed clock-rate
in the caps... and thus fail to create valid RTP caps

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

9 years agosplitmuxsink: Support mpegtsmux as a muxer.
Jan Schmidt [Wed, 29 Jul 2015 09:28:33 +0000 (19:28 +1000)]
splitmuxsink: Support mpegtsmux as a muxer.

As a fallback, look for a pad template sink_%d on
the muxer when requesting pads, to support mpegtsmux

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

9 years agosplitmuxsrc: Use a separate lock to delay typefind.
Jan Schmidt [Wed, 24 Jun 2015 15:35:27 +0000 (01:35 +1000)]
splitmuxsrc: Use a separate lock to delay typefind.

Don't hold the main splitmux part lock over
the parent state change function, as it prevents
posting error messages that happen. Since the purpose
is to prevent typefinding from proceeding, use a
separate mutex just for that.

9 years agomatroska: fix memory leak
Vineeth TM [Wed, 29 Jul 2015 04:43:50 +0000 (13:43 +0900)]
matroska: fix memory leak

After adding to tag list, key_val is not being free'd
resulting in memory leak

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

9 years agoqtdemux: fix 16-bit PCM audio advertised with 'raw ' fourcc
Manasa Athreya [Mon, 27 Jul 2015 04:34:14 +0000 (13:34 +0900)]
qtdemux: fix 16-bit PCM audio advertised with 'raw ' fourcc

'NONE' and 'raw ' fourcc don't always contain U8 audio, it can
be more bits as well, in which case it's just like 'twos'.

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

9 years agov4l2: Allow framerate to be large then 100pfs
Dimitrios Katsaros [Fri, 24 Jul 2015 13:10:05 +0000 (15:10 +0200)]
v4l2: Allow framerate to be large then 100pfs

This limit was arbitrary. We still fixate near 100pfs for compatibility.

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

9 years agoavidemux: Stop without posting error on flushing
Olivier Crête [Sat, 25 Jul 2015 07:25:28 +0000 (03:25 -0400)]
avidemux: Stop without posting error on flushing

This could just be a normal pipeline shutdown.

9 years agov4l2bufferpool: set GST_BUFFER_COPY_FLAGS to copy flags also
Hyunjun Ko [Thu, 23 Jul 2015 06:00:08 +0000 (15:00 +0900)]
v4l2bufferpool: set GST_BUFFER_COPY_FLAGS to copy flags also

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

9 years agotests: add minmal matroskademux test for subtitle output
Tim-Philipp Müller [Thu, 16 Jul 2015 17:09:30 +0000 (18:09 +0100)]
tests: add minmal matroskademux test for subtitle output

Some of the subtitle chunks will have embedded
NUL-terminators (last three), some don't (first three),
some will have markup, some won't, some will be valid
UTF-8 (all but last), some won't (last stanza).

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

9 years agomatroskademux: fix for subtitle buffers with NUL terminators
Dimitrios Christidis [Thu, 16 Jul 2015 15:49:26 +0000 (18:49 +0300)]
matroskademux: fix for subtitle buffers with NUL terminators

Commit 45892ec8 created a regression where g_utf8_validate() would fail
if the subtitle buffer had a NUL terminator as part of the data.

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

9 years agortpvp8depay: Check available bytes before copy
Stian Selnes [Tue, 21 Jul 2015 11:31:05 +0000 (13:31 +0200)]
rtpvp8depay: Check available bytes before copy

Need to check that the number of bytes we want to copy from the adapter
actually is available and handle the error case gracefully. This error
may happen if malformed packets are received and we don't have a
complete frame.

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

9 years agoqtdemux: Support subtitle when track subtype is fourcc_subt
Paul Hyunil [Thu, 16 Jul 2015 00:32:36 +0000 (09:32 +0900)]
qtdemux: Support subtitle when track subtype is fourcc_subt

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

9 years agov4l2bufferpool: Set timestamp when queue buffer.
Song Bing [Mon, 20 Jul 2015 08:59:40 +0000 (16:59 +0800)]
v4l2bufferpool: Set timestamp when queue buffer.

Should set timestamp when queue buffer.

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

9 years agortpmux: handle different ssrc's on sinkpads
Havard Graff [Thu, 16 Jul 2015 13:12:17 +0000 (15:12 +0200)]
rtpmux: handle different ssrc's on sinkpads

Do this by not putting the ssrc from the src pads in the caps used to
probe other sinkpads, and then  intersecting with it later.

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

9 years agoUpdate mailing list address from sourceforge to freedesktop
Tim-Philipp Müller [Thu, 16 Jul 2015 16:19:03 +0000 (17:19 +0100)]
Update mailing list address from sourceforge to freedesktop

9 years agomatroskademux: fix trailing '*' displayed with some text subtitles
Dimitrios Christidis [Wed, 15 Jul 2015 10:44:52 +0000 (13:44 +0300)]
matroskademux: fix trailing '*' displayed with some text subtitles

The subtitle buffer we push out should not include a NUL terminator
as part of the data, we just add such a terminator for safety, but
it should not be included in the buffer size.

A NUL terminator is not valid UTF-8, so checks will fail if it's
included in the size, and the NUL will be replaced by the fallback
character specified when converting, i.e. '*'.

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

9 years agopulse: add properties to GstDevice
Wim Taymans [Wed, 15 Jul 2015 16:23:05 +0000 (18:23 +0200)]
pulse: add properties to GstDevice

Add the extra properties we get from pulse to the GstDevice we expose
with the device monitor

9 years agoaudiofx: Fix typo in example pipelines
Ravi Kiran K N [Wed, 15 Jul 2015 11:50:20 +0000 (17:20 +0530)]
audiofx: Fix typo in example pipelines

Fix typo in example pipelines of audiowsincband and audioinvert.

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

9 years agosplitmuxsink: add a "format-location" signal that allows better control over filenames
George Kiagiadakis [Wed, 15 Apr 2015 16:27:04 +0000 (18:27 +0200)]
splitmuxsink: add a "format-location" signal that allows better control over filenames

In certain applications, splitting into files named after a base
location template and an incremental sequence number is not enough.

This signal gives more fine-grained control to the application to
decide how to name the files.

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

9 years agoosxaudiosrc: no resampling on OS X
Ilya Konstantinov [Wed, 15 Apr 2015 17:13:27 +0000 (20:13 +0300)]
osxaudiosrc: no resampling on OS X

Unlike Remote IO, AUHAL doesn't have built-in resampling
for sources -- confirmed by Core Audio engineer Doug Wyatt:
http://lists.apple.com/archives/coreaudio-api/2006/Sep/msg00088.html

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

9 years agoosxaudiosrc: avoid get_channel_layout
Ilya Konstantinov [Wed, 15 Apr 2015 15:29:14 +0000 (18:29 +0300)]
osxaudiosrc: avoid get_channel_layout

This only produces a warning and serves no purpose.

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

9 years agoosxaudio: Avoid making a duplicate structure in caps for mono/stereo case
Arun Raghavan [Tue, 7 Apr 2015 10:10:14 +0000 (15:40 +0530)]
osxaudio: Avoid making a duplicate structure in caps for mono/stereo case

For 1ch or 2ch devices, we just need to set the caps to allow both
options since CoreAudio will up/downmix appropriately.

Also fixes the condition for the 2ch case to be exact, rather than at
least 2 channels since the downmix will not take place in the >stereo
case.

9 years agoosxaudio: Don't set the format on an initialized AudioUnit
Arun Raghavan [Mon, 6 Apr 2015 10:52:34 +0000 (16:22 +0530)]
osxaudio: Don't set the format on an initialized AudioUnit

We need to initialize the AudioUnit early to be able to probe the
underlying device, but according to the AudioUnitInitialize() and
AudioUnitUninitialize() documentation, format changes should be done
while the AudioUnit is uninitialized. So we explicitly uninitialize the
AudioUnit during a format change and reinitialize it when we're done.

9 years agoosxaudio: Minor spelling fix (unitialize -> uninitialize)
Arun Raghavan [Mon, 6 Apr 2015 10:25:59 +0000 (15:55 +0530)]
osxaudio: Minor spelling fix (unitialize -> uninitialize)

9 years agoosxaudio: Fix lockup in _audio_unit_property_listener
Ilya Konstantinov [Sat, 21 Mar 2015 18:34:25 +0000 (20:34 +0200)]
osxaudio: Fix lockup in _audio_unit_property_listener

_audio_unit_property_listener is called either from a Core Audio thread
or as a result of a Core Audio API (e.g. AudioUnitInitialize)
from our own thread. In the latter case, osxbuf can be already locked
(GStreamer's mutex is not recursive).

We introduce the flag cached_caps_valid and use it instead of nullifying
cached_caps when we cannot lock on osxbuf.

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

9 years agoosxaudio: Invalidate cached caps on format change
Ilya Konstantinov [Thu, 12 Mar 2015 10:15:12 +0000 (12:15 +0200)]
osxaudio: Invalidate cached caps on format change

Listen for changes in hardware stream format and channel layout, and
invalidate cached caps (since they contain the preferred caps).

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

9 years agoosxaudio: Overhaul of probing caps
Ilya Konstantinov [Mon, 9 Mar 2015 21:34:06 +0000 (23:34 +0200)]
osxaudio: Overhaul of probing caps

- Probing caps is unified between source and sink
- Hardware stream format is now reported as preferred capabilities
  (dynamically updated when hardware configuration changes)
- Get hardware channel layout from Remote IO just like from HAL
- More comprehensive mapping between AudioChannelLabel and
  GstAudioChannelPosition
- Support for unpositioned channel layouts
- Announce stereo-mono upmixing/downmixing in caps

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

9 years agoosxaudio: AudioUnitInitialize on open
Ilya Konstantinov [Mon, 9 Mar 2015 21:15:56 +0000 (23:15 +0200)]
osxaudio: AudioUnitInitialize on open

Call AudioUnitInitialize upon open. Otherwise, we cannot get
(hardware) stream format nor channel layout from the outer scope.

9 years agortp: depayloaders: implement process_rtp_packet() vfunc
Tim-Philipp Müller [Sun, 12 Jul 2015 13:27:15 +0000 (14:27 +0100)]
rtp: depayloaders: implement process_rtp_packet() vfunc

For more optimised RTP packet handling: means we don't
need to map the input buffer again but can just re-use
the mapping the base class has already done.

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

9 years agortpvrawdepay: implement process_rtp_packet() vfunc
Tim-Philipp Müller [Wed, 27 May 2015 18:19:27 +0000 (19:19 +0100)]
rtpvrawdepay: implement process_rtp_packet() vfunc

For more optimised RTP packet handling: means we don't
need to map the input buffer again but can just re-use
the map the base class has already done.

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

9 years agortpjitterbuffer: Fix indention
Sebastian Dröge [Thu, 9 Jul 2015 21:13:32 +0000 (00:13 +0300)]
rtpjitterbuffer: Fix indention

9 years agortpjitterbuffer: Always estimate DTS from the current clock time
Sebastian Dröge [Thu, 9 Jul 2015 20:59:10 +0000 (23:59 +0300)]
rtpjitterbuffer: Always estimate DTS from the current clock time

Estimating it from the RTP time will give us the PTS, so in cases of PTS!=DTS
we would produce wrong DTS. As now the estimated DTS is based on the clock,
don't store it in the jitterbuffer items as it would otherwise be used in the
skew calculations and would influence the results. We only really need the DTS
for timer calculations.

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

9 years agogitignore: ignore rtph263 test
Thiago Santos [Thu, 9 Jul 2015 12:26:09 +0000 (09:26 -0300)]
gitignore: ignore rtph263 test

9 years agortpjitterbuffer: fix build error with gcc (Debian 4.9.2-21) 4.9.2
Thiago Santos [Thu, 9 Jul 2015 02:47:44 +0000 (23:47 -0300)]
rtpjitterbuffer: fix build error with gcc (Debian 4.9.2-21) 4.9.2

Replace static constants with macros to make gcc happy

  CC       elements/elements_rtpjitterbuffer-rtpjitterbuffer.o
elements/rtpjitterbuffer.c:387:1: error: initializer element is not constant
 static const GstClockTime PCMU_BUF_DURATION = PCMU_BUF_MS * GST_MSECOND;
 ^
elements/rtpjitterbuffer.c:388:1: error: initializer element is not constant
 static const guint PCMU_BUF_SIZE = 64000 * PCMU_BUF_MS / 1000;
 ^
elements/rtpjitterbuffer.c:390:5: error: initializer element is not constant
     PCMU_BUF_CLOCK_RATE * PCMU_BUF_MS / 1000;

9 years agortpjitterbuffer: run indent and fix some comments
Thiago Santos [Thu, 9 Jul 2015 02:40:45 +0000 (23:40 -0300)]
rtpjitterbuffer: run indent and fix some comments

Fix indent on this file and break some comment lines into two to make
it fit 80 chars per line

9 years agoqtdemux: rework segment event handling for adaptive streaming
Thiago Santos [Wed, 8 Jul 2015 18:02:24 +0000 (15:02 -0300)]
qtdemux: rework segment event handling for adaptive streaming

When a new time segment is received upstream is going to restart
with a new atom. Make the neededbytes and todrop variables
reflect that to avoid waiting too much or dropping the
initial bytes that contain the header.

9 years agoqtdemux: push data from adapter before starting new segment
Thiago Santos [Wed, 8 Jul 2015 15:35:55 +0000 (12:35 -0300)]
qtdemux: push data from adapter before starting new segment

The adapter might have data remaining from the previous segment,
push it all before clearing the adapter and starting a new segment.

It can accumulate data if it had pushed and got not-linked, returning
immediately without processing all the data. Before starting a new
segment this data should be handled.

9 years agortpjitterbuffer: Calculate DTS from the clock if we had none for the first packet...
Sebastian Dröge [Wed, 8 Jul 2015 16:59:13 +0000 (19:59 +0300)]
rtpjitterbuffer: Calculate DTS from the clock if we had none for the first packet after a reset

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

9 years agortpjitterbuffer: fix gap-time calculation and remove "late"
Havard Graff [Wed, 8 Jul 2015 19:08:36 +0000 (21:08 +0200)]
rtpjitterbuffer: fix gap-time calculation and remove "late"

The amount of time that is completely expired and not worth waiting for,
is the duration of the packets in the gap (gap * duration) - the
latency (size) of the jitterbuffer (priv->latency_ns). This is the duration
that we make a "multi-lost" packet for.

The "late" concept made some sense in 0.10 as it reflected that a buffer
coming in had not been waited for at all, but had a timestamp that was
outside the jitterbuffer to wait for. With the rewrite of the waiting
(timeout) mechanism in 1.0, this no longer makes any sense, and the
variable no longer reflects anything meaningful (num > 0 is useless,
the duration is what matters)

Fixed up the tests that had been slightly modified in 1.0 to allow faulty
behavior to sneak in, and port some of them to use GstHarness.

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

9 years agoRevert "rtpjitterbuffer: Fix expected_dts calc in calculate_expected"
Stian Selnes [Tue, 30 Jun 2015 09:21:31 +0000 (11:21 +0200)]
Revert "rtpjitterbuffer: Fix expected_dts calc in calculate_expected"

This reverts commit 05bd708fc5e881390fe839803b53144393d95ab0.

The reverted patch is wrong and introduces a regression because there
may still be time to receive some of the packets included in the gap
if they are reordered.

9 years agoqtdemux: flush samples before adding more from moof
Thiago Santos [Wed, 8 Jul 2015 02:53:02 +0000 (23:53 -0300)]
qtdemux: flush samples before adding more from moof

Avoids accumulating all samples from a fragmented stream that could
lead to a 'index-too-big' error once it goes over 50MB of data. It
could reach that before 2h of playback so it doesn't take that long.

As upstream elements are providing data in time format they should
be the ones that have more information about the full media index
and should be able to seek if possible.

9 years agoqtdemux: rename upstream_newsegment to upstream_format_is_time
Thiago Santos [Wed, 8 Jul 2015 02:56:12 +0000 (23:56 -0300)]
qtdemux: rename upstream_newsegment to upstream_format_is_time

upstream_newsegment isn't really clear on what it means, it is set
to TRUE when the upstream element sends a segment in TIME format, so
rename it to be more clear about it.

It is important to know this because it means that upstream has
a notion of time and qtdemux is likely being driven by an upstream
element that is reading from a higher level abstraction than a file,
such as a DASH, MSS or DLNA element.

9 years agoqtdemux: fix leak by flushing previous sample info from trak
Thiago Santos [Wed, 8 Jul 2015 00:31:08 +0000 (21:31 -0300)]
qtdemux: fix leak by flushing previous sample info from trak

In fragmented streaming, multiple moov/moof will be parsed and their
previously stored samples array might leak when new values are parsed.
The parse_trak and callees won't free the previously stored values
before parsing the new ones.

In step-by-step, this is what happens:

1) initial moov is parsed, traks as well, streams are created. The
   trak doesn't contain samples because they are in the moof's trun
   boxes. n_samples is set to 0 while parsing the trak and the samples
   array is still NULL.
2) moofs are parsed, and their trun boxes will increase n_samples and
   create/extend the samples array
3) At some point a new moov might be sent (bitrate switching, for example)
   and parsing the trak will overwrite n_samples with the values from
   this trak. If the n_samples is set to 0 qtdemux will assume that
   the samples array is NULL and will leak it when a new one is
   created for the subsequent moofs.

This patch makes qtdemux properly free previous sample data before
creating new ones and adds an assert to catch future occurrences of
this issue when the code changes.

9 years agoqtdemux: fix index size check and debug message
Thiago Santos [Tue, 7 Jul 2015 19:46:33 +0000 (16:46 -0300)]
qtdemux: fix index size check and debug message

It is allocating samples_count + n_samples, not only n_samples

9 years agortpjitterbuffer: Calculate receive time if we don't have any
Sebastian Dröge [Wed, 8 Jul 2015 14:02:05 +0000 (17:02 +0300)]
rtpjitterbuffer: Calculate receive time if we don't have any

This is required to properly schedule packet loss timers and make
sure all our calculations work properly.

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

9 years agortpjitterbuffer: Handle seqnum gaps in TCP streams without erroring out or overflowin...
Sebastian Dröge [Wed, 8 Jul 2015 12:13:17 +0000 (15:13 +0300)]
rtpjitterbuffer: Handle seqnum gaps in TCP streams without erroring out or overflowing calculations

That is, handle DTS==GST_CLOCK_TIME_NONE correctly.

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

9 years agoavidemux: fix event leak
Vineeth T M [Wed, 8 Jul 2015 11:31:42 +0000 (20:31 +0900)]
avidemux: fix event leak

when seek fails in avidemux, event is not being freed.

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

9 years agortph263depay: Make sure payload is large enough
Stian Selnes [Wed, 8 Jul 2015 10:02:22 +0000 (12:02 +0200)]
rtph263depay: Make sure payload is large enough

Plus new unit test.

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