platform/upstream/gst-plugins-base.git
7 years agortsp-url: unescape special chars in user/pass part of URL
Stuart Weaver [Wed, 25 Nov 2015 11:30:42 +0000 (11:30 +0000)]
rtsp-url: unescape special chars in user/pass part of URL

This way special characters such as '@' can be used in
usernames or passwords, e.g.

  rtsp://view:%40dm%4An@<IP-ADDR>/media/camera1

will now parse username and password into:

  User: view
  Pass: @dm:n

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

7 years agodiscoverer: Add support to dump dot files
Vineeth TM [Wed, 18 Nov 2015 04:59:30 +0000 (13:59 +0900)]
discoverer: Add support to dump dot files

Dump graphs during error/warning messages and discover is done

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

7 years agotests: tag: add unit test for ID3v2 UTF-16 string list parsing
Tim-Philipp Müller [Sat, 24 Dec 2016 10:15:24 +0000 (10:15 +0000)]
tests: tag: add unit test for ID3v2 UTF-16 string list parsing

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

7 years agotests: tag: add test for ID3v2 extended header parsing
Tim-Philipp Müller [Sat, 24 Dec 2016 14:32:34 +0000 (14:32 +0000)]
tests: tag: add test for ID3v2 extended header parsing

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

7 years agoid3v2: fix splitting strings in ISO-8859-1 and UTF-16 formats
Thomas Bluemel [Wed, 24 Aug 2016 17:39:39 +0000 (11:39 -0600)]
id3v2: fix splitting strings in ISO-8859-1 and UTF-16 formats

When parsing NUL-terminated strings, do not include the terminating
NUL byte(s).  Depending on the encoding used, either g_utf8_validate()
failed due to this, or worse the call to g_utf16_to_utf8() would
return 0 items read on an empty string, causing it to fail parsing
certain frames.

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

7 years agoid3v2: fix handling of tags with extended headers
Thomas Bluemel [Wed, 24 Aug 2016 16:33:14 +0000 (10:33 -0600)]
id3v2: fix handling of tags with extended headers

The extended header size value does not include itself.

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

7 years agoencoding-profile: Initialize variables to avoid build failures
Thibault Saunier [Fri, 23 Dec 2016 21:08:43 +0000 (18:08 -0300)]
encoding-profile: Initialize variables to avoid build failures

encoding-profile.c: In function ‘get_profile_format_from_possible_factory_name’:
encoding-profile.c:1532:6: error: ‘fact’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if (fact)
      ^
encoding-profile.c: In function ‘profile_from_string’:
encoding-profile.c:1720:6: error: ‘res’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if (profile)
      ^
cc1: all warnings being treated as errors

7 years agoencoding-profile: Allow using factory names in serialization format
Thibault Saunier [Fri, 23 Dec 2016 17:23:48 +0000 (14:23 -0300)]
encoding-profile: Allow using factory names in serialization format

Instead of enforcing the user to know and understand caps to describe
the encoding format, let him use element factory names directly.
This also makes it possible to ensure that a specific encodore/muxer
is used instead of letting the ranking system do it.

It is now possible to describe an encoding format simply specifying:

  matroskamux:x264enc:vobisenc

Factor out functions in the parsing, cleaning up the whole thing.
Update documentation.

7 years agoencoding-profile: Also take into account preset name when comparing profiles
Thibault Saunier [Wed, 21 Dec 2016 22:32:41 +0000 (19:32 -0300)]
encoding-profile: Also take into account preset name when comparing profiles

7 years agoencoding-profile: Handle path to serialized target when deserializing a profile
Thibault Saunier [Wed, 21 Dec 2016 16:24:37 +0000 (13:24 -0300)]
encoding-profile: Handle path to serialized target when deserializing a profile

The synthax is path/to/encoding/profile.gep:profilename

7 years agoencoding-target: Add 'file-extension' as a known category
Thibault Saunier [Wed, 21 Dec 2016 15:13:38 +0000 (12:13 -0300)]
encoding-target: Add 'file-extension' as a known category

7 years agoencoding-target: Allow using name and targets from serialized file
Thibault Saunier [Wed, 21 Dec 2016 14:05:30 +0000 (11:05 -0300)]
encoding-target: Allow using name and targets from serialized file

We used to only care about the name of the files even if the name
is defined in the encoding target serialized file.

That commit also allows user to define several names for a single
target file (using a ';' between the names) which allows us to have
a target for youtube that is called 'youtube;yt' or a target for
'ogg;ogv;oga' file extension.

7 years agoencoding-target: Auto convert loading target name to lowercase
Thibault Saunier [Wed, 21 Dec 2016 14:01:27 +0000 (11:01 -0300)]
encoding-target: Auto convert loading target name to lowercase

We *only* support lowercase encoding target names so we can just
handle user to use uper case ones converting them.

7 years agopbutils: Add documentation about encoding targets
Thibault Saunier [Wed, 21 Dec 2016 13:02:31 +0000 (10:02 -0300)]
pbutils: Add documentation about encoding targets

7 years agoplaybin-test: Don't use removed playbin3 'auto-select-streams' property
hoonhee.lee [Sat, 10 Dec 2016 02:43:47 +0000 (11:43 +0900)]
playbin-test: Don't use removed playbin3 'auto-select-streams' property

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

7 years agoaudiotestsrc: Fix incorrect start of tick waveform
Carlos Rafael Giani [Fri, 2 Sep 2016 13:23:18 +0000 (15:23 +0200)]
audiotestsrc: Fix incorrect start of tick waveform

Make sure ticks start with an accumulator value of 0 by incrementing it
after filling in samples instead of before and by resetting the accumulator
every time a tick begins. This prevents it from being discontinuous at the
beginning of the tick.

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

7 years agotools: gst-play: set GST_GL_XINITHREADS
Nicolas Dechesne [Thu, 22 Dec 2016 17:47:19 +0000 (18:47 +0100)]
tools: gst-play: set GST_GL_XINITHREADS

This ensure that XInitThreads is called and so gl contexts are properly
initialized.

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

7 years agoaudioringbuffer: add set_callback_full() for g-i
Evan Nemerson [Fri, 27 Jun 2014 01:01:06 +0000 (18:01 -0700)]
audioringbuffer: add set_callback_full() for g-i

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

7 years agotcpclientsrc: add timeout property
Nicola Murino [Tue, 20 Dec 2016 11:33:12 +0000 (12:33 +0100)]
tcpclientsrc: add timeout property

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

7 years agoparsebin: Ignore failure to send sticky events
Jan Schmidt [Tue, 20 Dec 2016 13:11:06 +0000 (00:11 +1100)]
parsebin: Ignore failure to send sticky events

When plugging and then exposing a parser, don't fail
if it fails to send sticky events. The most likely
reason is that things were flushed due to the app
immediately doing a seek, but we can't detect flushing
separately to other error conditions without a
gst_pad_send_event_full() core function that returns
a GstFlowReturn.

7 years agoriff-media: Fix up last commit
Sebastian Dröge [Tue, 20 Dec 2016 11:00:59 +0000 (13:00 +0200)]
riff-media: Fix up last commit

7 years agoriff: add ADPCM_G722 support
Nicola Murino [Sat, 28 Mar 2015 17:16:16 +0000 (18:16 +0100)]
riff: add ADPCM_G722 support

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

7 years agotests: Fix build
Thibault Saunier [Mon, 19 Dec 2016 18:20:35 +0000 (15:20 -0300)]
tests: Fix build

7 years agoencodebin: Fix build initializing sprof
Thibault Saunier [Mon, 19 Dec 2016 18:08:12 +0000 (15:08 -0300)]
encodebin: Fix build initializing sprof

7 years agoencodebin: Fallback to other profile if we fail with one
Thibault Saunier [Sat, 17 Dec 2016 01:11:41 +0000 (22:11 -0300)]
encodebin: Fallback to other profile if we fail with one

In some case we might have EncodingProfile that will be defined
in a way that, for example if a Preset is not present, another
profile for that stream should be used.

A test is added showing the feature.

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

7 years agoencodebin: Enhance error debug when failing to create an encoder
Thibault Saunier [Fri, 16 Dec 2016 19:27:04 +0000 (16:27 -0300)]
encodebin: Enhance error debug when failing to create an encoder

7 years agotag: id3v2: turn redundant check into an assert
Tim-Philipp Müller [Sun, 18 Dec 2016 12:29:42 +0000 (12:29 +0000)]
tag: id3v2: turn redundant check into an assert

We checked this already earlier, so this is dead code.
Leave an assert in place for consistency with the other
branch and in case the rest of the code changes.

CID 1397350.

7 years agodiscoverer: Get caps from the element's srcpad if possible
Sebastian Dröge [Sat, 17 Dec 2016 19:58:29 +0000 (21:58 +0200)]
discoverer: Get caps from the element's srcpad if possible

The caps put into the stream topology by decodebin are the caps at the
moment the pads are exposed on it. This is usually before decoders
received any buffers.
In discoverer we however wait for pre-roll, which ensures that each
decoder handled buffers already. At this point, there might be more
information known about the caps already that we could make use of.

One example here is extra information stored in the SEI of H264, like
the multiview-mode. This will be known if there is a SEI before the
first keyframe, but decodebin won't put this into the topology as it
only waits for the initial caps of h264parse (which come directly after
SPS/PPS).

With this change, the multiview-mode is in the caps reported by
discoverer in many cases.

7 years agodecodebin2: Put the correct element srcpad into the topology for the very last elemen...
Sebastian Dröge [Sat, 17 Dec 2016 19:35:24 +0000 (21:35 +0200)]
decodebin2: Put the correct element srcpad into the topology for the very last element of a chain

We were putting the decode pad there, which is the ghostpad linked to
the last element. The decode pad is already in the pad field.

7 years agodecodebin2: Put the correct pad into the stream-topology if a parser/converter is...
Sebastian Dröge [Sat, 17 Dec 2016 19:34:40 +0000 (21:34 +0200)]
decodebin2: Put the correct pad into the stream-topology if a parser/converter is used

We have to take the capsfilter into account then as the elements are not
linked directly. Previously this caused NULL be set in these cases.

7 years agoActually delete .spec.in file as well
Tim-Philipp Müller [Fri, 16 Dec 2016 17:39:59 +0000 (17:39 +0000)]
Actually delete .spec.in file as well

Only removed it from build description.

7 years agoencoding-profile: Fix documentation and port to gtk markdown
Thibault Saunier [Fri, 16 Dec 2016 14:11:57 +0000 (11:11 -0300)]
encoding-profile: Fix documentation and port to gtk markdown

And remove some trailling whitepsaces

7 years agomeson:doc: Build libraries documentations
Thibault Saunier [Fri, 16 Dec 2016 12:59:25 +0000 (09:59 -0300)]
meson:doc: Build libraries documentations

7 years agobase: Actually support using the default encoding target
Thibault Saunier [Fri, 16 Dec 2016 12:58:15 +0000 (09:58 -0300)]
base: Actually support using the default encoding target

7 years agoencoding-target: Remove useless check for local presence
Thibault Saunier [Thu, 15 Dec 2016 19:12:02 +0000 (16:12 -0300)]
encoding-target: Remove useless check for local presence

7 years agopbutils: Add safe guard too encoding profile API
Thibault Saunier [Thu, 15 Dec 2016 19:10:55 +0000 (16:10 -0300)]
pbutils: Add safe guard too encoding profile API

7 years agoaudio: Fix introspection annotation
Thibault Saunier [Thu, 15 Dec 2016 13:57:14 +0000 (10:57 -0300)]
audio: Fix introspection annotation

In gst_audio_check_valid_channel_positions the mask
is an out parameter.

And minor conversion from a print to a GST_ERROR.

7 years agoencoding-target: Handle GST_ENCODING_TARGET_PATH in list_all
Thibault Saunier [Wed, 14 Dec 2016 21:06:09 +0000 (18:06 -0300)]
encoding-target: Handle GST_ENCODING_TARGET_PATH in list_all

And fix the compare_target function

7 years agodecodebin: For adaptive streaming, ensure to put the buffering multiqueue after a...
Sebastian Dröge [Thu, 15 Dec 2016 14:29:02 +0000 (16:29 +0200)]
decodebin: For adaptive streaming, ensure to put the buffering multiqueue after a parser or demuxer

There are cases when there is no demuxer involved that could do the
buffering, e.g. HLS with raw MP3 or AAC. In this case we want to place
the buffering multiqueue after the parser.

Before this change, we've considered the first element after the
adaptive streaming demuxer as a parser. This is not always true, e.g.
id3demux. Instead we now wait until we actually have a parser (or
decoder).

Fixes playback on such HLS streams.

7 years agoRemove generated .spec file
Tim-Philipp Müller [Wed, 14 Dec 2016 09:48:02 +0000 (09:48 +0000)]
Remove generated .spec file

Likely extremely bitrotten, and we should not ship this anyway.

7 years agortsp: add boxed types for new authentication credential API
Tim-Philipp Müller [Tue, 13 Dec 2016 22:45:02 +0000 (22:45 +0000)]
rtsp: add boxed types for new authentication credential API

To make the structs usable in bindings, and fix

gstrtspmessage.c:1188: Warning: GstRtsp:
gst_rtsp_message_parse_auth_credentials: return value: Invalid
non-constant return of bare structure or union; register as
boxed type or (skip)

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

7 years agogst: Don't declare variables inside the for loop header
Sebastian Dröge [Tue, 13 Dec 2016 20:26:08 +0000 (22:26 +0200)]
gst: Don't declare variables inside the for loop header

This is a C99 feature.

7 years agoaudioringbuffer: do not require 4 byte multiple for encoded MPEG
Vincent Penquerc'h [Tue, 13 Dec 2016 09:44:09 +0000 (09:44 +0000)]
audioringbuffer: do not require 4 byte multiple for encoded MPEG

Bytes per frame doesn't make sense for encoded audio.

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

7 years agoplayback: Add ANY caps features to default text raw caps
Seungha Yang [Mon, 12 Dec 2016 05:50:11 +0000 (14:50 +0900)]
playback: Add ANY caps features to default text raw caps

Raw text caps with any caps features should be also default raw caps

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

7 years agomeson: Support building without Gst debug
Thibault Saunier [Fri, 9 Dec 2016 20:08:20 +0000 (17:08 -0300)]
meson: Support building without Gst debug

7 years agoxmptag: Don't leak the namespace string if there are multiple
Sebastian Dröge [Fri, 9 Dec 2016 15:36:47 +0000 (17:36 +0200)]
xmptag: Don't leak the namespace string if there are multiple

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

7 years agoid3v2: Clarify id3v2_add_id3v2_frame_blob_to_taglist()
Jan Schmidt [Fri, 9 Dec 2016 06:59:09 +0000 (17:59 +1100)]
id3v2: Clarify id3v2_add_id3v2_frame_blob_to_taglist()

Pass the frame data and size explicitly to
id3v2_add_id3v2_frame_blob_to_taglist() and add a
comment that it's being deliberately / manually
passed the full ID3v2 frame including header.

7 years agoid3v2: Add missing overrun check for frame sizes
Jan Schmidt [Fri, 9 Dec 2016 06:57:52 +0000 (17:57 +1100)]
id3v2: Add missing overrun check for frame sizes

When frames claim to have a footer, ensure they
are large enough to contain one to avoid an invalid
read overrun.

Spotted by Joshua Yabut

7 years agoogg: Fix element factory klass for OGM parsers
Jan Schmidt [Tue, 22 Nov 2016 12:08:09 +0000 (23:08 +1100)]
ogg: Fix element factory klass for OGM parsers

They're parsers, not decoders, so fix the klass info
accordingly.

7 years agodocs: design: remove outdated draft docs (hw-acceleration, va)
Tim-Philipp Müller [Thu, 8 Dec 2016 23:01:28 +0000 (23:01 +0000)]
docs: design: remove outdated draft docs (hw-acceleration, va)

7 years agodocs: design: move most design docs to gst-docs module
Tim-Philipp Müller [Thu, 8 Dec 2016 22:59:58 +0000 (22:59 +0000)]
docs: design: move most design docs to gst-docs module

7 years agodecodebin3: Remove unused variable
Seungha Yang [Sat, 3 Dec 2016 14:01:53 +0000 (23:01 +0900)]
decodebin3: Remove unused variable

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

7 years agodecodebin3: More cleanup DecodebinOutputStream and MultiQueueSlot
Seungha Yang [Sat, 3 Dec 2016 13:46:20 +0000 (22:46 +0900)]
decodebin3: More cleanup DecodebinOutputStream and MultiQueueSlot

When removing DecodebinInputStream, cleanup DecodebinOutputStream and
MultiQueueSlot also if they were drained.

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

7 years agodecodebin3: Drop duration query during _input_pad_unlink ()
Seungha Yang [Sat, 3 Dec 2016 13:37:55 +0000 (22:37 +0900)]
decodebin3: Drop duration query during _input_pad_unlink ()

Playbin3 takes lock when querying duration and handling
stream-collection message. So,to post stream-collection message,
duration query should be dropped when input pad is being unlinked.

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

7 years agodecodebin3: Update stream-collection with _input_pad_unlink()
Seungha Yang [Sat, 3 Dec 2016 13:12:21 +0000 (22:12 +0900)]
decodebin3: Update stream-collection with _input_pad_unlink()

Since parsebin does not post new stream-collection message when
it was being removed, decodebin3 should update it itself.

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

7 years agodecodebin3: Cleanup no more used DecodebinInput
Seungha Yang [Sat, 3 Dec 2016 13:28:28 +0000 (22:28 +0900)]
decodebin3: Cleanup no more used DecodebinInput

Remove DecodebinInput using gst_element_call_async() API.

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

7 years agodecodebin3: Cleanup no more used MultiQueueSlot
Seungha Yang [Sat, 3 Dec 2016 12:50:47 +0000 (21:50 +0900)]
decodebin3: Cleanup no more used MultiQueueSlot

Since MultiQueueSlot cannot be removed inside of streaming thread,
use gst_element_call_async() API.

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

7 years agodecodebin3: Send custom-eos event to notify drained state
Seungha Yang [Sat, 3 Dec 2016 12:42:30 +0000 (21:42 +0900)]
decodebin3: Send custom-eos event to notify drained state

Likewise how urisourcebin is doing, use custom event if other streams
are still alive.

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

7 years agoplaybin3: Reconfigure playsink again with pad-removed
Seungha Yang [Sat, 3 Dec 2016 11:44:21 +0000 (20:44 +0900)]
playbin3: Reconfigure playsink again with pad-removed

If selected streams and actived streams are matched,
do reconfigure of playsink again with pad-removed signal

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

7 years agoplayback: Remove trailing whitespace
Seungha Yang [Tue, 25 Oct 2016 12:06:40 +0000 (21:06 +0900)]
playback: Remove trailing whitespace

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

7 years agourisourcebin: Try to link output slot before cleanup
Seungha Yang [Sun, 23 Oct 2016 13:10:39 +0000 (22:10 +0900)]
urisourcebin: Try to link output slot before cleanup

Before cleaning up output slot, check pending pads first, if available.
Then, cleanup it only if linking was failed.

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

7 years agourisourcebin: Cleanup unused output slot
Seungha Yang [Sat, 22 Oct 2016 09:53:17 +0000 (18:53 +0900)]
urisourcebin: Cleanup unused output slot

Since urisourcebin cannot cleanup unused output slot
in streaming thread, it will be handled in thread pool
with gst_element_call_async ().

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

7 years agotagdemux: Fix crash when shutting down element during getrange()
Sebastian Dröge [Tue, 6 Dec 2016 14:29:23 +0000 (16:29 +0200)]
tagdemux: Fix crash when shutting down element during getrange()

Ensure that nothing is in any of the streaming thread functions
anymore when going from PAUSED to READY. While the parent's state change
function has deactivated all pads, there is nothing preventing
downstream from activating our srcpad again and calling the getrange()
function. Although we're in READY!

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

7 years agoAutomatic update of common submodule
Edward Hervey [Sat, 3 Dec 2016 07:19:15 +0000 (08:19 +0100)]
Automatic update of common submodule

From f980fd9 to 39ac2f5

7 years agotypefind: add another test to itc typefinder
Reynaldo H. Verdejo Pinochet [Fri, 2 Dec 2016 23:12:12 +0000 (15:12 -0800)]
typefind: add another test to itc typefinder

Report certainty after every test passes.

Additionally:

 - Remove self-explanatory comment.

7 years agossaparse: Free initialization section before storing the next one
Sebastian Dröge [Thu, 1 Dec 2016 17:57:47 +0000 (19:57 +0200)]
ssaparse: Free initialization section before storing the next one

If getting multiple caps events.

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

7 years agooggdemux: Don't end up ignoring caps just because there are no headers for this stream
Sebastian Dröge [Thu, 1 Dec 2016 13:12:59 +0000 (15:12 +0200)]
oggdemux: Don't end up ignoring caps just because there are no headers for this stream

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

7 years agoaudioconvert: Error out if mapping input/output buffer failed
Sebastian Dröge [Wed, 30 Nov 2016 08:55:16 +0000 (10:55 +0200)]
audioconvert: Error out if mapping input/output buffer failed

7 years agoaudioconvert: Don't map the input buffer in in-place mode
Sebastian Dröge [Wed, 30 Nov 2016 08:48:40 +0000 (10:48 +0200)]
audioconvert: Don't map the input buffer in in-place mode

Input and output buffer are the same, let's not do unnecessary work.

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

7 years agoaudio-converter: In passthrough, also don't copy if in and out block are the same
Sebastian Dröge [Wed, 30 Nov 2016 08:43:50 +0000 (10:43 +0200)]
audio-converter: In passthrough, also don't copy if in and out block are the same

In and out array are usually different, they are stack allocated arrays.
However the blocks inside them still can be the same.

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

7 years agoaudioconvert: Don't call transform_ip() in passthrough mode
Sebastian Dröge [Wed, 30 Nov 2016 08:36:14 +0000 (10:36 +0200)]
audioconvert: Don't call transform_ip() in passthrough mode

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

7 years agomultihandlesink: Fix buffers-queued being off by one
Jan Alexander Steffens (heftig) [Tue, 29 Nov 2016 14:30:43 +0000 (15:30 +0100)]
multihandlesink: Fix buffers-queued being off by one

max_buffer_usage is the index of the oldest buffer in the queue,
starting at zero, not the number of buffers queued.

find_limits returns the index of the oldest buffer that satisfies the
limits in its min_idx parameter, not the number of buffers needed. Fix
this use too in order to keep passing the tests that read
buffers-queued.

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

7 years agomultifdsink: Add a test involving a slow client
Jan Alexander Steffens (heftig) [Tue, 29 Nov 2016 15:26:22 +0000 (16:26 +0100)]
multifdsink: Add a test involving a slow client

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

7 years agomultihandlesink: Update bufpos in a separate pass
Jan Alexander Steffens (heftig) [Wed, 23 Nov 2016 13:35:04 +0000 (14:35 +0100)]
multihandlesink: Update bufpos in a separate pass

If a client gets dropped and the iteration gets restarted, bufpos is
incremented again for all clients that preceded the dropped one, causing
havoc.

Adjust the bufpos for all clients first before trying to drop any.

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

7 years agoplaybin: Fix caps memory leak in usage of gst_static_caps_get() API
Garima Gaur [Tue, 29 Nov 2016 11:07:50 +0000 (16:37 +0530)]
playbin: Fix caps memory leak in usage of gst_static_caps_get() API

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

7 years agowin32: update .def file for new audioconverter API
Tim-Philipp Müller [Mon, 28 Nov 2016 20:25:35 +0000 (20:25 +0000)]
win32: update .def file for new audioconverter API

Fixes distcheck.

7 years agomeson: Add headers and libm to has_function checks
Scott D Phillips [Tue, 29 Nov 2016 02:28:24 +0000 (18:28 -0800)]
meson: Add headers and libm to has_function checks

The functions from math.h may be implemented in libm.

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

7 years agodiscoverer: Handle NULL/ANY/EMPTY caps without crashing
Sebastian Dröge [Mon, 28 Nov 2016 17:45:46 +0000 (19:45 +0200)]
discoverer: Handle NULL/ANY/EMPTY caps without crashing

7 years agocheck/videorate: Avoid leaking extra buffers
Edward Hervey [Mon, 28 Nov 2016 15:54:55 +0000 (16:54 +0100)]
check/videorate: Avoid leaking extra buffers

7 years agovideo-info: Properly initialize/set extra fields
Edward Hervey [Mon, 28 Nov 2016 15:53:10 +0000 (16:53 +0100)]
video-info: Properly initialize/set extra fields

The flags and field order weren't properly initialized in the
gst_video_info_init().

Furthermore in gst_video_info_from_caps() we might set unitiliazed
values previously, this only sets them if valid.

7 years agosdp: Fix attribute leak
Edward Hervey [Mon, 28 Nov 2016 15:51:43 +0000 (16:51 +0100)]
sdp: Fix attribute leak

We need to free the strdup'd string (to_free) in all cases

7 years agortsp: Don't leak authorization string
Edward Hervey [Mon, 28 Nov 2016 15:51:23 +0000 (16:51 +0100)]
rtsp: Don't leak authorization string

7 years agoaudio-converter: optimize endian conversion
Petr Kulhavy [Wed, 19 Oct 2016 10:21:37 +0000 (12:21 +0200)]
audio-converter: optimize endian conversion

Optimize LE<->BE conversion by adding a dedicated fast path instead of
using the generic converter. Implement transform_ip function in order to do the
endian swap in place.

This saves buffer allocation for the intermediate format, can be done in place
and also performs the conversion in one step instead of unpack-convert-pack.

For all bit widths the naive algorithm is implemented, which provides the best
performance when compiled with -O3. ORC was considered but eventually removed
as it requires a dedicated function for in-place conversion (due to the
"restrict" parameters).

A more complex algorithm for the 24-bit conversion with unrolled loop and
32-bit processing is implemented in the #if 0 section. It performs better if
compiled with -O2. With -O3 however the naive algorithm performs better.

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

7 years agoaudio-convert: simplify the chain free process
Petr Kulhavy [Fri, 21 Oct 2016 12:30:31 +0000 (14:30 +0200)]
audio-convert: simplify the chain free process

It is not needed to store a pointer to every single chain element to free it.
Instead walk the channel list backwards and free the chain elements one by one.

Rename GstAudioConverter->chain_pack to chain_end.

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

7 years agosubtitleoverlay: Fix caps memory leak when failing to get sinkpad from subtitle renderer
Garima Gaur [Mon, 28 Nov 2016 11:42:26 +0000 (17:12 +0530)]
subtitleoverlay: Fix caps memory leak when failing to get sinkpad from subtitle renderer

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

7 years agodiscoverer: Extract video information from caps manually without GstVideoInfo
Sebastian Dröge [Mon, 28 Nov 2016 08:12:49 +0000 (10:12 +0200)]
discoverer: Extract video information from caps manually without GstVideoInfo

The caps might not be fixated (which is required by GstVideoInfo) and we
would assert otherwise. However the caps often contain useful
information in the already-fixed parts that we can use here.

7 years agodiscoverer: Also stop waiting for subtitles if we get EOS
Sebastian Dröge [Mon, 28 Nov 2016 08:04:38 +0000 (10:04 +0200)]
discoverer: Also stop waiting for subtitles if we get EOS

We're not going to get a buffer or GAP event anymore after EOS and would
wait forever otherwise.

7 years agoriff-media: Check if caps are NULL before using them for the first time, not afterwards
Sebastian Dröge [Sat, 26 Nov 2016 11:53:49 +0000 (13:53 +0200)]
riff-media: Check if caps are NULL before using them for the first time, not afterwards

Otherwise we'll get a g_critical() before erroring out cleanly on
https://samples.mplayerhq.hu/A-codecs/ATRAC3/SND0.AT3

7 years agocommon: use https protocol for common submodule
Tim-Philipp Müller [Sat, 26 Nov 2016 11:20:51 +0000 (11:20 +0000)]
common: use https protocol for common submodule

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

7 years agortpbuffer: Fix ensure_buffers() if whole packet is in one GstMemory
Miguel Paris [Fri, 25 Nov 2016 09:48:06 +0000 (10:48 +0100)]
rtpbuffer: Fix ensure_buffers() if whole packet is in one GstMemory

When gst_rtp_buffer_add_extension_onebyte_header() is used over a
GstRtpBuffer that only contains a memory for the whole packet,
ensure_buffers function crashes at the next point:

mem = gst_memory_copy (rtp->map[i].memory, offset, rtp->size[i]);

when i==2 because the payload is not mapped.

In addition the offset is calculated subtracting in the wrong direction.

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

7 years agovideo-info: Add unit test for overflow checks
Sebastian Dröge [Thu, 24 Nov 2016 13:40:22 +0000 (15:40 +0200)]
video-info: Add unit test for overflow checks

And also prevent overflows caused by allowing uint width/height in
gst_video_info_set_format() but storing them as (signed!) ints.

7 years agovideo-info: And change the overflow check to not actually overflow itself
Sebastian Dröge [Thu, 24 Nov 2016 13:12:40 +0000 (15:12 +0200)]
video-info: And change the overflow check to not actually overflow itself

7 years agovideo: Handle errors in gst_video_info_set_format() / gst_video_info_align()
Sebastian Dröge [Wed, 23 Nov 2016 18:10:34 +0000 (20:10 +0200)]
video: Handle errors in gst_video_info_set_format() / gst_video_info_align()

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

7 years agovideo-info: Sanity check the frame size to prevent overflows
Sebastian Dröge [Wed, 23 Nov 2016 18:00:19 +0000 (20:00 +0200)]
video-info: Sanity check the frame size to prevent overflows

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

7 years agomikey: Generate the correct SRTP policy
Ulf Olsson [Wed, 23 Nov 2016 12:48:06 +0000 (13:48 +0100)]
mikey: Generate the correct SRTP policy

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

7 years agortspdefs: Assert on the excepted MD5 digest string length
Sebastian Dröge [Wed, 23 Nov 2016 16:26:29 +0000 (18:26 +0200)]
rtspdefs: Assert on the excepted MD5 digest string length

CID 1394494.

7 years agotypefind: bounds check windows ico detection
Matthew Waters [Wed, 23 Nov 2016 10:27:55 +0000 (21:27 +1100)]
typefind: bounds check windows ico detection

Fixes out of bounds read

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

7 years agotag: fix some warnings in mklicensestables
Scott D Phillips [Wed, 23 Nov 2016 05:12:23 +0000 (21:12 -0800)]
tag: fix some warnings in mklicensestables

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

7 years agogstfdmemory: log with GST_INFO instead of GST_ERROR on permission denied
Julien Isorce [Fri, 7 Oct 2016 14:08:37 +0000 (15:08 +0100)]
gstfdmemory: log with GST_INFO instead of GST_ERROR on permission denied

For example mmap can fail with EACCES if the the fd has been open
with read only mode. And mapping the memory might be the only way
to check that. So no need to print out an error.

Ex: ioctl(dev, DRM_IOCTL_PRIME_HANDLE_TO_FD, flags & ~DRM_RDWR)

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

7 years agotypefind: add typefinder for Apple/iTunes itc artwork files
Reynaldo H. Verdejo Pinochet [Tue, 18 Oct 2016 23:18:19 +0000 (16:18 -0700)]
typefind: add typefinder for Apple/iTunes itc artwork files

Avoids audio/mpeg false-positive described at:

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