platform/upstream/gstreamer.git
7 years agorawvideoparse: Compute plane offsets & strides if no custom ones are set
Carlos Rafael Giani [Tue, 16 Aug 2016 07:31:40 +0000 (09:31 +0200)]
rawvideoparse: Compute plane offsets & strides if no custom ones are set

This is useful to ensure that the offsets and strides are computed if
only width, height, format etc. in the property config are set.

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

7 years agoavfassetsrc: Don't escape the URI another time in another location too
Sergei Saveliev [Tue, 16 Aug 2016 15:46:49 +0000 (18:46 +0300)]
avfassetsrc: Don't escape the URI another time in another location too

One location was forgotten in a913a0b9679dd58945ad105d240db45595fdaba6

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

7 years agogl/egl: fix inverted typedef
Matthew Waters [Tue, 16 Aug 2016 10:33:21 +0000 (20:33 +1000)]
gl/egl: fix inverted typedef

2b6841d had an inverted typedef defining ginptr and EGLAttrib.  Fix that.

7 years agowildmidi: Fix compilation with wildmidi 0.4
Sebastian Dröge [Tue, 16 Aug 2016 07:37:28 +0000 (10:37 +0300)]
wildmidi: Fix compilation with wildmidi 0.4

Old versions used char* for the data, new versions use int8_t*. They're often
not the same and differ in signedness.

7 years agogl/build: add configure check for possibly missing EGLAttrib
Matthew Waters [Tue, 16 Aug 2016 06:51:02 +0000 (16:51 +1000)]
gl/build: add configure check for possibly missing EGLAttrib

Fixes the build on older android targets.

7 years agogl/egl/dmabuf: Wrong attribute list type for EGL 1.5
Song Bing [Wed, 13 Jul 2016 09:15:44 +0000 (17:15 +0800)]
gl/egl/dmabuf: Wrong attribute list type for EGL 1.5

For EGL 1.5 spec, the attribute list type should be EGLAttrib.

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

7 years agoglcontext: fix race joining thread on finalize
Vincent Penquerc'h [Mon, 15 Aug 2016 15:14:25 +0000 (16:14 +0100)]
glcontext: fix race joining thread on finalize

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

7 years agoqt: Use wglShareLists() workaround unconditionally.
Jan Schmidt [Mon, 15 Aug 2016 14:40:53 +0000 (00:40 +1000)]
qt: Use wglShareLists() workaround unconditionally.

Sometimes wglCreateContextAttribsARB() exists, but
isn't functional (some Intel drivers), so it's
easiest to do the workaround unconditionally.

7 years agowinks: Fix RGB frame flipping and postprocessing
Jan Schmidt [Mon, 15 Aug 2016 06:37:44 +0000 (16:37 +1000)]
winks: Fix RGB frame flipping and postprocessing

Uncompressed RGB frames can be (usually are) bottom-up
layout in DirectShow, and the code to flip them wasn't
properly ported from 0.10. Fix it.

Fix post-processing of RGB buffers. We need a writable
buffer, but the requests pool is holding an extra ref.
This could use more fixing to use a buffer pool

7 years agowinks: Give the ksvideosrc PRIMARY rank
Jan Schmidt [Fri, 12 Aug 2016 12:17:25 +0000 (22:17 +1000)]
winks: Give the ksvideosrc PRIMARY rank

It's the primary video source on Windows, so give it a
rank for autoplugging by camerabin and friends

7 years agowinks: Fix swapped RGBx/RGB caps mapping, and endianness.
Jan Schmidt [Fri, 12 Aug 2016 12:16:33 +0000 (22:16 +1000)]
winks: Fix swapped RGBx/RGB caps mapping, and endianness.

The RGBx and RGB format mappings were reversed.

What Windows calls RGB are laid out as BGR in our parlance, so
switch that too

7 years agoqt: Move debug statement to after the category init
Jan Schmidt [Mon, 8 Aug 2016 03:41:14 +0000 (13:41 +1000)]
qt: Move debug statement to after the category init

Don't output debug to an uninitialised debug category.

7 years agodashdemux: Disable unit test for the time being
Sebastian Dröge [Thu, 11 Aug 2016 10:19:59 +0000 (12:19 +0200)]
dashdemux: Disable unit test for the time being

It uses random data streams but dashdemux nowadays actually looks into the
streams and doesn't like randomness very much. The tests should probably just
become validate tests on real streams.

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

7 years agoRevert "Revert "dashdemux: When doing SIDX seeking, return instead of overriding...
Sebastian Dröge [Thu, 11 Aug 2016 10:11:22 +0000 (12:11 +0200)]
Revert "Revert "dashdemux: When doing SIDX seeking, return instead of overriding the timestamp with 0 from the MPD seeking method""

This reverts commit aea2c13fc1672a7260679d706d0a084a34ba7531.

7 years agodashdemux: When doing chunked downloading on SIDX, clip requests on the SIDX entry...
Sebastian Dröge [Thu, 4 Aug 2016 11:47:41 +0000 (14:47 +0300)]
dashdemux: When doing chunked downloading on SIDX, clip requests on the SIDX entry boundaries

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

7 years agodashdemux: Collect average moof and first sync sample sizes
Sebastian Dröge [Tue, 2 Aug 2016 05:47:55 +0000 (08:47 +0300)]
dashdemux: Collect average moof and first sync sample sizes

And always request those in the beginning so that ideally we get the moof and
the first sync sample all together with the first HTTP request.

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

7 years agodashdemux: Download any sync-sample following the moof directly in key-units only...
Sebastian Dröge [Tue, 2 Aug 2016 05:35:26 +0000 (08:35 +0300)]
dashdemux: Download any sync-sample following the moof directly in key-units only mode

We don't have to do yet another additional request but can just download the
data directly.

Also unify the key-unit only mode buffer pushing and extract it into its own
function now that it became more complicated.

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

7 years agodashdemux: If a fragment contains no sync samples, disable key-unit mode
Sebastian Dröge [Fri, 29 Jul 2016 09:50:58 +0000 (12:50 +0300)]
dashdemux: If a fragment contains no sync samples, disable key-unit mode

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

7 years agodashdemux: Remember if for a stream we could do key-units only mode
Sebastian Dröge [Fri, 29 Jul 2016 09:32:50 +0000 (12:32 +0300)]
dashdemux: Remember if for a stream we could do key-units only mode

This makes sure we don't even try going into that mode if we previously saw
that the stream does not have the suitable metadata.

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

7 years agodashdemux: Also allow key-unit only mode if (some) sample flags are given by trex...
Sebastian Dröge [Fri, 29 Jul 2016 08:54:21 +0000 (11:54 +0300)]
dashdemux: Also allow key-unit only mode if (some) sample flags are given by trex but we can still find sync frames

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

7 years agodashdemux: Use chunked downloading for the moof in KEY_UNITS mode
Sebastian Dröge [Tue, 12 Jul 2016 17:09:52 +0000 (20:09 +0300)]
dashdemux: Use chunked downloading for the moof in KEY_UNITS mode

Allows us to reuse the HTTP connection and reduce latencies a lot.

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

7 years agoadaptivedemux: Add API for allowing subclasses to download URLs in chunks
Sebastian Dröge [Tue, 12 Jul 2016 07:22:43 +0000 (10:22 +0300)]
adaptivedemux: Add API for allowing subclasses to download URLs in chunks

This allows to gradually download part of a fragment when the final size is
not known and only a part of it should be downloaded. For example when only
the moof should be parsed and/or a single keyframe should be downloaded.

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

7 years agodashdemux: Mark every first buffer of moov, sidx, moof and mdat as DISCONT in keyfram...
Sebastian Dröge [Wed, 1 Jun 2016 11:02:11 +0000 (14:02 +0300)]
dashdemux: Mark every first buffer of moov, sidx, moof and mdat as DISCONT in keyframe-only mode

We need to mark every first buffer of a key unit as discont, and also every
first buffer of a moov and moof. This ensures that qtdemux takes note of our
buffer offsets for each of those buffers instead of keeping track of them
itself from the first buffer. We need offsets to be consistent between moof
and mdat

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

7 years agodashdemux: Only enable key-unit trick mode for video streams
Sebastian Dröge [Thu, 28 Jul 2016 07:53:49 +0000 (10:53 +0300)]
dashdemux: Only enable key-unit trick mode for video streams

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

7 years agodashdemux: Only do keyframe-only playback if the corresponding seek flag is given
Sebastian Dröge [Tue, 31 May 2016 12:12:49 +0000 (15:12 +0300)]
dashdemux: Only do keyframe-only playback if the corresponding seek flag is given

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

7 years agodashdemux: Implement downloading of only sync samples
Sebastian Dröge [Mon, 30 May 2016 09:09:34 +0000 (12:09 +0300)]
dashdemux: Implement downloading of only sync samples

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

7 years agodashdemux: Store parsed moof and extract offsets of sync samples in it
Sebastian Dröge [Mon, 30 May 2016 08:15:03 +0000 (11:15 +0300)]
dashdemux: Store parsed moof and extract offsets of sync samples in it

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

7 years agodash: Add test for parsing a moof box
Sebastian Dröge [Mon, 2 May 2016 14:11:31 +0000 (17:11 +0300)]
dash: Add test for parsing a moof box

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

7 years agodash: Add unit test for ISOBFF box header parsing
Sebastian Dröge [Mon, 2 May 2016 13:03:56 +0000 (16:03 +0300)]
dash: Add unit test for ISOBFF box header parsing

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

7 years agodashdemux: Implement parsing of moof box
Sebastian Dröge [Thu, 7 Apr 2016 18:33:51 +0000 (21:33 +0300)]
dashdemux: Implement parsing of moof box

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

7 years agodashdemux: Move code around to keep all sidx related functions together
Sebastian Dröge [Thu, 7 Apr 2016 10:34:57 +0000 (13:34 +0300)]
dashdemux: Move code around to keep all sidx related functions together

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

7 years agodashdemux: Store box fourccs in the header at a central place
Sebastian Dröge [Thu, 7 Apr 2016 09:57:13 +0000 (12:57 +0300)]
dashdemux: Store box fourccs in the header at a central place

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

7 years agodashdemux: Implement parsing of ISOBMFF boxes
Sebastian Dröge [Mon, 28 Mar 2016 10:45:36 +0000 (13:45 +0300)]
dashdemux: Implement parsing of ISOBMFF boxes

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

7 years agodash: Add helper for parsing box headers
Sebastian Dröge [Wed, 16 Mar 2016 11:48:09 +0000 (13:48 +0200)]
dash: Add helper for parsing box headers

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

7 years agox265enc: Enable aspect ratio
xlazom00 [Wed, 10 Aug 2016 22:50:12 +0000 (22:50 +0000)]
x265enc: Enable aspect ratio

x265 encoder need aspectRatioIdc == X265_EXTENDED_SAR if we want to use
sarWidth/sarHeight

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

7 years agoopenjpegenc: use the corrent enumeration
Josep Torra [Mon, 8 Aug 2016 11:10:12 +0000 (13:10 +0200)]
openjpegenc: use the corrent enumeration

Fixes the following error when building in osx.

error: implicit conversion from enumeration type
'GstJPEG2000Colorspace' to different enumeration type
'GstJPEG2000Sampling'

7 years agoamc: Fix call to realloc() to allocate the correct size of items
Sebastian Dröge [Mon, 8 Aug 2016 09:28:44 +0000 (11:28 +0200)]
amc: Fix call to realloc() to allocate the correct size of items

7 years agofdkaac: actually build and dist
Tim-Philipp Müller [Sun, 7 Aug 2016 19:53:30 +0000 (20:53 +0100)]
fdkaac: actually build and dist

7 years agohls, timecode: fix linking
xlazom00 [Sat, 6 Aug 2016 23:31:23 +0000 (23:31 +0000)]
hls, timecode: fix linking

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

8 years agofdkaac: Add FDK AAC based decoder element
Sebastian Dröge [Sun, 7 Aug 2016 09:20:16 +0000 (12:20 +0300)]
fdkaac: Add FDK AAC based decoder element

Missing is support for error concealment, etc.

8 years agofdkaac: Add FDK AAC based encoder element
Sebastian Dröge [Sun, 7 Aug 2016 08:39:07 +0000 (11:39 +0300)]
fdkaac: Add FDK AAC based encoder element

This currently only handles LC profile and exposes a bitrate property, but
handles up to 7.1 channels. See TODO list for missing features.

8 years agofdkaac: Initial plugin skeleton
Sebastian Dröge [Sun, 7 Aug 2016 05:51:06 +0000 (08:51 +0300)]
fdkaac: Initial plugin skeleton

8 years agoaiffparse: keep end_offset when seeking
Bernhard Miller [Mon, 1 Aug 2016 09:45:30 +0000 (11:45 +0200)]
aiffparse: keep end_offset when seeking

After seeking in aiff files the information about the data end offset is
discarded, leading to audio artifacts with metadata chunks at the end of
a file.
This patch retains the end offset information after a seek event.

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

8 years agodvdspu: don't crash if video frame could not be mapped
Tim-Philipp Müller [Sat, 6 Aug 2016 15:15:33 +0000 (16:15 +0100)]
dvdspu: don't crash if video frame could not be mapped

As might happen with e.g. vaapi and the test file from
https://bugzilla.gnome.org/show_bug.cgi?id=736227

8 years agoRevert "dashdemux: When doing SIDX seeking, return instead of overriding the timestam...
Edward Hervey [Fri, 5 Aug 2016 07:16:58 +0000 (09:16 +0200)]
Revert "dashdemux: When doing SIDX seeking, return instead of overriding the timestamp with 0 from the MPD seeking method"

This reverts commit 947656cfd22b75f914d5abe0af82396787f67564.

This makes all dash seeking tests fail. Needs more testing to fully understand
what's going wrong. Revert ok'd by Sebastian

8 years agotimecodewait: New element to wait for a specific timecode
Vivia Nikolaidou [Tue, 31 May 2016 16:21:17 +0000 (19:21 +0300)]
timecodewait: New element to wait for a specific timecode

timecodewait receives a timecode as an argument (either as string or as
GstVideoTimeCode - one is gst-launch-friendly and the other is code-friendly),
and it will drop all audio and video buffers until that timecode has been
reached.

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

8 years agotimecodestamper: New element to attach SMPTE timecode to buffers
Vivia Nikolaidou [Fri, 20 May 2016 15:17:52 +0000 (18:17 +0300)]
timecodestamper: New element to attach SMPTE timecode to buffers

The timecodestamper element attaches a SMPTE timecode to each video buffer.
This timecode corresponds to the current stream time.

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

8 years agodecklinkvideosink: Add support for GstVideoTimeCode
Vivia Nikolaidou [Sun, 15 May 2016 14:25:44 +0000 (17:25 +0300)]
decklinkvideosink: Add support for GstVideoTimeCode

The timecode will be fetched from the video buffer and outputted on the
decklink video sink.

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

8 years agodecklinkvideosrc: Add support for GstVideoTimeCode
Vivia Nikolaidou [Sun, 15 May 2016 13:04:14 +0000 (16:04 +0300)]
decklinkvideosrc: Add support for GstVideoTimeCode

The timecode will be fetched from the decklink source and attached to the
video buffer.

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

8 years agoglcolorconvert: add missing rgb16 and bgr16 video formats in switch
Matthew Waters [Thu, 4 Aug 2016 13:14:41 +0000 (23:14 +1000)]
glcolorconvert: add missing rgb16 and bgr16 video formats in switch

Fixes an assertion that code should not be reached

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

8 years agohls: Avoid potential NULL pointer dereference.
Jan Schmidt [Thu, 4 Aug 2016 12:28:13 +0000 (22:28 +1000)]
hls: Avoid potential NULL pointer dereference.

Fixes CID 1364753

8 years agohls: Avoid coverity warning about access off the end of an array.
Jan Schmidt [Thu, 4 Aug 2016 12:21:16 +0000 (22:21 +1000)]
hls: Avoid coverity warning about access off the end of an array.

Fixes CID 1364755

8 years agodashdemux: When doing SIDX seeking, return instead of overriding the timestamp with...
Sebastian Dröge [Thu, 4 Aug 2016 11:42:34 +0000 (14:42 +0300)]
dashdemux: When doing SIDX seeking, return instead of overriding the timestamp with 0 from the MPD seeking method

We don't need to call the latter at all as we're definitely in this period and
the segment is selected via the SIDX.

This is especially important when doing SNAP seeks, as otherwise we would
always start from the beginning of the period (usually 0) again.

8 years agohls: m3u8: remove impossible condition
Luis de Bethencourt [Thu, 4 Aug 2016 10:08:30 +0000 (11:08 +0100)]
hls: m3u8: remove impossible condition

After the check in line 1,111,  media->uri can't be NULL. So the two checks
for GST_HLS_MEDIA_TYPE_CLOSED_CAPTIONS are the same, removing the redundant
one which goes to cc_unsupported.

CID 1364752

8 years agohlsdemux: Don't output pending data after error
Jan Schmidt [Wed, 3 Aug 2016 18:53:50 +0000 (04:53 +1000)]
hlsdemux: Don't output pending data after error

If the last_ret status is not OK, skip output
of any pending PCR scan buffer, similarly to how
the pending decryption buffer is handled above.

8 years agoadaptivedemux: On EOS, handle it before waking download loop
Jan Schmidt [Wed, 3 Aug 2016 18:29:38 +0000 (04:29 +1000)]
adaptivedemux: On EOS, handle it before waking download loop

Otherwise, if the download loop wakes too quickly, it
might miss the last_ret value update from the processing
thread and loop again.

8 years agohlsdemux: Include config.h and add header in utils
Jan Schmidt [Wed, 3 Aug 2016 15:51:37 +0000 (01:51 +1000)]
hlsdemux: Include config.h and add header in utils

In gsthlsdemux-util.c, include config.h before any
other headers, and add a copyright / license header.

8 years agotsdemux: Fix draining on wrong programs
Edward Hervey [Wed, 13 Jul 2016 09:02:23 +0000 (11:02 +0200)]
tsdemux: Fix draining on wrong programs

When draining a program, we might send a newsegment event on the pads
that are going to be removed (and then the pending data).

In order to do that, calculate_and_push_newsegment() needs to know
what list of streams it should take into account (instead of blindly
using the current one).

All callers to calculate_and_push_newsegment() and push_pending_data()
can now specify the program on which to act (or NULL for the default
one).

8 years agotsdemux: Fix GAP synchronization without a valid PCR PID
Edward Hervey [Tue, 12 Jul 2016 13:58:40 +0000 (15:58 +0200)]
tsdemux: Fix GAP synchronization without a valid PCR PID

For streams that don't have a valid PCR PID, we just use the latest
PTS from any given stream.

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

8 years agotsdemux: handle pcr_pid == 0x1fff
Michael Olbrich [Tue, 31 May 2016 11:09:43 +0000 (13:09 +0200)]
tsdemux: handle pcr_pid == 0x1fff

Streams without PCR make senses in HLS, where the playlist timestamps
can be used to seek or calculate the duration.

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

8 years agompegtsdemux: do not abort playback when no PCR were found during initial scan
Arnaud Vrac [Sun, 10 May 2015 18:10:49 +0000 (20:10 +0200)]
mpegtsdemux: do not abort playback when no PCR were found during initial scan

Seeking will not be possible in those streams but at least the can be
played. Note scanning is only done when tsdemux is configured in pull mode.

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

8 years agompegtsdemux: only wait for PCR when PCR pid is set
Arnaud Vrac [Sat, 9 May 2015 13:52:22 +0000 (15:52 +0200)]
mpegtsdemux: only wait for PCR when PCR pid is set

Streams without PCR make senses in HLS, where the playlist timestamps
can be used to seek or calculate the duration.

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

8 years agohls: Fix compiler warning for possibly uninit variable
Jan Schmidt [Tue, 2 Aug 2016 18:18:18 +0000 (04:18 +1000)]
hls: Fix compiler warning for possibly uninit variable

8 years agohlsdemux: seek all streams
Michael Olbrich [Thu, 28 Jul 2016 12:22:02 +0000 (14:22 +0200)]
hlsdemux: seek all streams

8 years agohlsdemux: simplify gst_hls_demux_seek()
Michael Olbrich [Wed, 25 May 2016 09:23:59 +0000 (11:23 +0200)]
hlsdemux: simplify gst_hls_demux_seek()

Don't initialize current_sequence. It is always overwritten in the walk
loop.

8 years agohlsdemux: don't download the last fragment when seeking beyond the end of the track
Michael Olbrich [Tue, 24 May 2016 13:23:12 +0000 (15:23 +0200)]
hlsdemux: don't download the last fragment when seeking beyond the end of the track

It's not used anyways.

8 years agohlsdemux: Add support for ID3 tag parsing
Jan Schmidt [Tue, 12 Jul 2016 13:05:55 +0000 (23:05 +1000)]
hlsdemux: Add support for ID3 tag parsing

Parse start PTS out of the ID3 tags in
audio fragments. Informational only for now.

8 years agohlsdemux: Do some reading and dumping of PCRs
Jan Schmidt [Wed, 24 Feb 2016 05:57:16 +0000 (16:57 +1100)]
hlsdemux: Do some reading and dumping of PCRs

Read PCRs out of the MPEG-TS stream in a basic way
and (for now) just log them

8 years agohlsdemux: Only use the primary stream for bitrate selection.
Jan Schmidt [Fri, 4 Mar 2016 16:08:55 +0000 (03:08 +1100)]
hlsdemux: Only use the primary stream for bitrate selection.

When playing alternate rendition auxilliary streams, ignore
them in bitrate measurement (for now).

8 years agohlsdemux: Only select video and audio streams by default
Jan Schmidt [Fri, 15 Jul 2016 06:24:17 +0000 (16:24 +1000)]
hlsdemux: Only select video and audio streams by default

Ignore subtitle streams for now, because the
different fragment duration causes problems
switching bitrates w/ decodebin2 group draining.

8 years agohlsdemux: Publish all media for alternate renditions.
Jan Schmidt [Wed, 24 Feb 2016 14:58:25 +0000 (01:58 +1100)]
hlsdemux: Publish all media for alternate renditions.

Create an output stream for each media when alternate renditions
are present. Update the manifests for all those streams, and
make sure that typefinding is still done for files smaller than 2KB
such as small WebVTT files.

8 years agohlsdemux: Adjust downstream buffer offsets
Jan Schmidt [Mon, 7 Mar 2016 14:24:20 +0000 (01:24 +1100)]
hlsdemux: Adjust downstream buffer offsets

When fetching a byte-region from a server resource,
adjust the downstream buffer offsets so that downstream
doesn't know. This is because id3demux insists on the
first offset being 0. Later we might strip ID3 headers
entirely and this will be unneeded.

8 years agohlsdemux: Choose the default variant and track it when updating
Jan Schmidt [Tue, 8 Mar 2016 16:07:22 +0000 (03:07 +1100)]
hlsdemux: Choose the default variant and track it when updating

Modify playlist updating to track information across updates
better, although still hackish.

When connection_speed == 0, choose the default variant
not the first one in the (now sorted) variant list, as that
will have the lowest bitrate.

8 years agohlsdemux: move variant list handling over to new master playlist code
Tim-Philipp Müller [Sat, 5 Dec 2015 11:12:33 +0000 (11:12 +0000)]
hlsdemux: move variant list handling over to new master playlist code

Adapt hlsdemux for the m3u8 playlist changes.

8 years agohls: m3u8: Rework m3u8 parsing and storage.
Tim-Philipp Müller [Fri, 27 Nov 2015 19:26:02 +0000 (19:26 +0000)]
hls: m3u8: Rework m3u8 parsing and storage.

Make M3U8 and GstM3U8MediaFile refcounted. The contents
of it and GstM3U8MediaFile are pretty much immutable
already, but if we make it refcounted we can just
return a ref to the media file from _get_next_fragment()
instead of copying over all fields one-by-one, and then
copying them all into the adaptive stream structure fields again.

Move state from client into m3u8 structure.  This will
be useful later when we'll have multiple media playlists
being streamed at the same time, as will be the case with
alternative renditions.

This has the downside that we need to copy over some
state when we switch between variant streams.

The GstM3U8Client structure is gone, and main/current
lists are not directly in hlsdemux. hlsdemux had as
many CLIENT_LOCK/UNLOCK as the m3u8 code anyway...

8 years agoqmlglsrc: Add qmlglsrc unit test example
Haihua Hu [Wed, 27 Jul 2016 01:28:23 +0000 (09:28 +0800)]
qmlglsrc: Add qmlglsrc unit test example

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

8 years agoqt: implement qmlglsrc for qml view grab
Haihua Hu [Wed, 27 Jul 2016 00:16:47 +0000 (08:16 +0800)]
qt: implement qmlglsrc for qml view grab

[Matthew Waters]: gst-indent sources

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

8 years agoglwindow: Fix glimagesink cannot show frame when connect to qmlglsrc
Haihua Hu [Wed, 27 Jul 2016 02:55:01 +0000 (10:55 +0800)]
glwindow: Fix glimagesink cannot show frame when connect to qmlglsrc

When connect to qmlglsrc, x11 event loop will be replace by qt event loop
which will cause the window cannot receive event from xserver, such as resize

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

8 years agoglupload: Use bufferpool to allocate new buffer in GLTextureUploadMeta
Hyunjun Ko [Tue, 2 Aug 2016 08:21:20 +0000 (17:21 +0900)]
glupload: Use bufferpool to allocate new buffer in GLTextureUploadMeta

To improve performace of upload with GLTextureUploadMeta,
use bufferpool instead of allocating new buffer every time.

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

8 years agoglwindow: move unsetting queue_resize to _resize() instead of _draw()
Matthew Waters [Wed, 27 Jul 2016 04:48:50 +0000 (14:48 +1000)]
glwindow: move unsetting queue_resize to _resize() instead of _draw()

Makes infinitely more sense and implementation were expecting that behaviour
anyway and would enter a resize, draw, resize, draw, ... cycle instead of only
resizing once.

8 years agoadaptivedemux: Never ever hold the manifest lock while changing the source element...
Sebastian Dröge [Wed, 3 Aug 2016 06:14:07 +0000 (09:14 +0300)]
adaptivedemux: Never ever hold the manifest lock while changing the source element state

Otherwise we will deadlock in various situations that take the manifest lock
from the streaming thread or when shutting down or ...

8 years agoaiffparse: In PUSH mode we will never get the ID3 tags as they are at the end of...
Sebastian Dröge [Tue, 2 Aug 2016 14:07:37 +0000 (17:07 +0300)]
aiffparse: In PUSH mode we will never get the ID3 tags as they are at the end of the file

This previously did not fail as before we didn't get any tags at all in PUSH
mode, now we get the bitrates.

8 years agoaiffparse: Add tags for container format and bitrate
Carlos Rafael Giani [Tue, 2 Aug 2016 11:48:43 +0000 (13:48 +0200)]
aiffparse: Add tags for container format and bitrate

The bitrate is added to help downstream elements (like uridecodebin)
figure out a proper network buffer size

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

8 years agotests: dashdemux: add test for gst_mpd_client_get_maximum_segment_duration
Alex Ashley [Wed, 20 Jan 2016 16:42:24 +0000 (16:42 +0000)]
tests: dashdemux: add test for gst_mpd_client_get_maximum_segment_duration

Add a test of the gst_mpd_client_get_maximum_segment_duration() function
to check that it first checks the MPD@maxSegmentDuration and then falls
back to checking all of the segment durations.

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

8 years agodashdemux: include segment duration when calculating seek range
Alex Ashley [Wed, 24 Feb 2016 15:54:54 +0000 (15:54 +0000)]
dashdemux: include segment duration when calculating seek range

The gst_dash_demux_get_live_seek_range () function returns a stop value
that is beyond the available range. The functions
gst_mpd_client_check_time_position() and
gst_mpd_client_get_next_segment_availability_end_time() in
gstmpdparser.c include the segment duration when checking if a segment
is available. The gst_dash_demux_get_live_seek_range() function
in gstdashdemux.c ignores the segment duration.

According to the DASH specification, if maxSegmentDuration is not present,
then the maximum Segment duration is the maximum duration of any Segment
documented in the MPD.

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

8 years agoadaptivedemux: retry once on 4xx/5xx in certain conditions
Vincent Penquerc'h [Wed, 24 Feb 2016 15:52:41 +0000 (15:52 +0000)]
adaptivedemux: retry once on 4xx/5xx in certain conditions

This helps catch those 404 server errors in live streams when
seeking to the very beginning, as the server will handle a
request with some delay, which can cause it to drop the fragment
before sending it.

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

8 years agoadaptivedemux: expose HTTP status
Alex Ashley [Wed, 24 Feb 2016 15:47:09 +0000 (15:47 +0000)]
adaptivedemux: expose HTTP status

To allow adaptivedemux to make retry decisions, it needs to know what
sort of HTTP error has occurred. For example, the retry logic for a
410 error is different from a 504 error.

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

8 years agoadaptivedemux: allow seeking before start in live streams
Vincent Penquerc'h [Mon, 7 Mar 2016 17:04:33 +0000 (17:04 +0000)]
adaptivedemux: allow seeking before start in live streams

Some derived classes (at least dashdemux) expose a seeking range
based on wall clock. This means that a subsequent seek to the start
of this range will be before the allowed range.

To solve this, seeks without the ACCURATE flag are allowed to seek
before the start for live streams, in which case the segment is
shifted to start at the start of the new seek range. If there is
an end position, is is shifted too, to keep the duration constant.

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

8 years agoglimagesink: Fix horizontal/vertical flip matrizes
Haihua Hu [Mon, 1 Aug 2016 06:12:35 +0000 (14:12 +0800)]
glimagesink: Fix horizontal/vertical flip matrizes

They were swapped.

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

8 years agovideoparsers: h264: Add more scalable profiles to the profile list
Sreerenj Balachandran [Fri, 29 Jul 2016 13:32:22 +0000 (16:32 +0300)]
videoparsers: h264: Add more scalable profiles to the profile list

Adding Scalable Constrained High (G.10.1.2.1) and
Scalable High Intra(G.10.1.3) profiles to the profile list

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

8 years agoandroidmedia: Run gst-indent over everything once again
Sebastian Dröge [Mon, 1 Aug 2016 07:30:29 +0000 (10:30 +0300)]
androidmedia: Run gst-indent over everything once again

8 years agoamc: If we find multiple codecs with the same name, just merge them
Sebastian Dröge [Mon, 1 Aug 2016 07:28:26 +0000 (10:28 +0300)]
amc: If we find multiple codecs with the same name, just merge them

On the ODroid C1+ the H265 and H264 have the same name but are listed as two
different codecs. We have to handle them as the same one that supports both,
as otherwise we will register the same GType name twice which fails and we
then only have H265 support and not H264 support.

8 years agoamc: Use a GQueue for O(1) append instead of a GList
Sebastian Dröge [Mon, 1 Aug 2016 07:15:04 +0000 (10:15 +0300)]
amc: Use a GQueue for O(1) append instead of a GList

8 years agoadaptivedemux: Also call reset() in READY->PAUSED
Sebastian Dröge [Fri, 29 Jul 2016 09:31:38 +0000 (12:31 +0300)]
adaptivedemux: Also call reset() in READY->PAUSED

This allows subclasses to have initialization code in a single place.

8 years agorawaudioparse: Use G_GINT64_MODIFIER for portability
Sebastian Dröge [Fri, 29 Jul 2016 07:49:26 +0000 (10:49 +0300)]
rawaudioparse: Use G_GINT64_MODIFIER for portability

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

8 years agounalignedaudioparse: Fix element factory name of inner parser
Sebastian Dröge [Fri, 29 Jul 2016 07:07:23 +0000 (10:07 +0300)]
unalignedaudioparse: Fix element factory name of inner parser

8 years agoamc: Print generated raw/encoded caps in debug logs
Sebastian Dröge [Fri, 29 Jul 2016 05:54:00 +0000 (08:54 +0300)]
amc: Print generated raw/encoded caps in debug logs

8 years agodashdemux: Skip audio streams if TRICKMODE_NO_AUDIO is given in the seek event
Sebastian Dröge [Thu, 28 Jul 2016 08:27:29 +0000 (11:27 +0300)]
dashdemux: Skip audio streams if TRICKMODE_NO_AUDIO is given in the seek event

We just don't expose pads for audio streams, or even download them.

8 years agodashdemux: Reset number of subtitle streams counter on reset() too
Sebastian Dröge [Thu, 28 Jul 2016 08:16:24 +0000 (11:16 +0300)]
dashdemux: Reset number of subtitle streams counter on reset() too

Otherwise we will continue increasing forever the number of subtitle streams
when reusing the element for another DASH manifest.

8 years agotests: fix simple-launch-lines when jpeg lib isn't present
Vincent Penquerc'h [Tue, 26 Jul 2016 16:01:55 +0000 (17:01 +0100)]
tests: fix simple-launch-lines when jpeg lib isn't present

JPEG detection in configure.ac defines HAVE_JPEG to 0 if the
jpeg lib isn't found, rather then not defining it.

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