platform/upstream/gstreamer.git
7 years agomeson: remove unused mpg123 build file
Tim-Philipp Müller [Sun, 21 Aug 2016 15:21:07 +0000 (16:21 +0100)]
meson: remove unused mpg123 build file

mpg123 was moved to ugly.

7 years agoAdd support for Meson as alternative/parallel build system
Nirbheek Chauhan [Fri, 12 Aug 2016 15:51:45 +0000 (21:21 +0530)]
Add support for Meson as alternative/parallel build system

https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Matej Knopp <matej.knopp@gmail.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.

7 years agoplugins: Use stdint.h instead of _stdint.h
Nirbheek Chauhan [Thu, 18 Aug 2016 12:16:19 +0000 (17:46 +0530)]
plugins: Use stdint.h instead of _stdint.h

_stdint.h is generated by Autotools and we don't really need it. All
supported platforms now ship with stdint.h. The only stickler was MSVC,
and since Visual Studio 2015 it also ships stdint.h now.

7 years agowin32: Update libgstgl.def
Nirbheek Chauhan [Fri, 12 Aug 2016 16:21:17 +0000 (21:51 +0530)]
win32: Update libgstgl.def

7 years agocodecparsers: Explicitly export functions marked inline
Nirbheek Chauhan [Tue, 1 Mar 2016 19:23:44 +0000 (00:53 +0530)]
codecparsers: Explicitly export functions marked inline

On MSVC, inline functions are not available outside of a file unless
explicitly exported

7 years agorawvideoparse: fix typo in comment
Luis de Bethencourt [Fri, 19 Aug 2016 11:24:58 +0000 (12:24 +0100)]
rawvideoparse: fix typo in comment

Small typo in the comment explaining the code fixed by the previous commit.
Fixing it.

7 years agorawvideoparse: Revert last commit and actually remember the physically last plane
Sebastian Dröge [Fri, 19 Aug 2016 11:19:38 +0000 (14:19 +0300)]
rawvideoparse: Revert last commit and actually remember the physically last plane

Instead of just always taking the last one as before.

7 years agorawvideoparse: remove unused assignment
Luis de Bethencourt [Fri, 19 Aug 2016 10:57:33 +0000 (11:57 +0100)]
rawvideoparse: remove unused assignment

Value in last_plane will be overwritten before used, remove unused
asignment.

Fixes commit 91cf5ac69f9c99fe41d60f42b4174915dd135e7b
CID 1371462

7 years agodaala: fix typo related compilation error
Philippe Renon [Thu, 18 Aug 2016 16:55:41 +0000 (18:55 +0200)]
daala: fix typo related compilation error

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

7 years agoapplemedia-nonpublic: remove bitrotten plugin that's no longer needed
Tim-Philipp Müller [Fri, 19 Aug 2016 10:02:46 +0000 (11:02 +0100)]
applemedia-nonpublic: remove bitrotten plugin that's no longer needed

7 years agoavfvideosrc: account for retina displays when capturing screens
Florian Zwoch [Fri, 19 Aug 2016 09:46:24 +0000 (19:46 +1000)]
avfvideosrc: account for retina displays when capturing screens

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

7 years agobuild: bump graphene requirement to 1.4
Matthew Waters [Fri, 19 Aug 2016 07:11:13 +0000 (17:11 +1000)]
build: bump graphene requirement to 1.4

7 years agogltransformation: rewrite the inverse transformation logic
Matthew Waters [Fri, 19 Aug 2016 05:35:49 +0000 (15:35 +1000)]
gltransformation: rewrite the inverse transformation logic

It now returns the correct values for both orthographic and perspective
projections and takes into account the aspect ratio of the video, handles
the Y-flipping in GL and by us and uses some more helpers from graphene.

7 years agoglwindow: marshal gst_gl_window_resize through the window loop
Matthew Waters [Fri, 1 Jul 2016 06:18:55 +0000 (16:18 +1000)]
glwindow: marshal gst_gl_window_resize through the window loop

saves having every caller do it themselves.

7 years agogl/wayland: use multi-threaded safe event wayland API
Matthew Waters [Thu, 30 Jun 2016 13:06:43 +0000 (23:06 +1000)]
gl/wayland: use multi-threaded safe event wayland API

Multiple threads may be accessing the wayland fd at the same time which
requires the use of special wayland API to deal with to ensure nobody
will steal reads and cause a stall for anyone else.

7 years agogl/examples/fxtest: fix up for wayland support
Matthew Waters [Thu, 30 Jun 2016 14:15:55 +0000 (00:15 +1000)]
gl/examples/fxtest: fix up for wayland support

- Pass the wayland display to gst
- Redrawing on resize is no longer needed.

7 years agodvb/parsechannels: warn on ignored key/value pairs
Reynaldo H. Verdejo Pinochet [Wed, 17 Aug 2016 23:21:34 +0000 (16:21 -0700)]
dvb/parsechannels: warn on ignored key/value pairs

Otherwise at runtine, users get the misleading
parsing-OK message with no info on, for example,
properties that failed to map because of a typo.

7 years agodvb/parsechannels: handle problems parsing dvbv5 config keys
Reynaldo H. Verdejo Pinochet [Tue, 16 Aug 2016 22:35:39 +0000 (15:35 -0700)]
dvb/parsechannels: handle problems parsing dvbv5 config keys

7 years agomplex: Don't start task (yet/again) on pad release if we're in READY or NULL
Sebastian Dröge [Thu, 18 Aug 2016 12:28:33 +0000 (15:28 +0300)]
mplex: Don't start task (yet/again) on pad release if we're in READY or NULL

Fixes spurious segfault in unit test, where the task was started again during
shutdown when all pads were removed... and was then still running while the
element was finalized.

7 years agodashdemux: In KEY_UNITS trick mode, download all I-frames and not only IDR
Sebastian Dröge [Thu, 18 Aug 2016 10:21:54 +0000 (13:21 +0300)]
dashdemux: In KEY_UNITS trick mode, download all I-frames and not only IDR

7 years agorawparse: Fix and extend unit tests
Carlos Rafael Giani [Mon, 8 Aug 2016 15:54:46 +0000 (17:54 +0200)]
rawparse: Fix and extend unit tests

* Add caps change test to unit tests
* Cleanup leftover buffers after each unit test
* Add missing rawvideoparse entry in .gitignore

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

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

7 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.

7 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.

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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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.

7 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

7 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.

7 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.

7 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.

7 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).

7 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

7 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

7 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

7 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

7 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

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

7 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.

7 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.

7 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.

7 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

7 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).

7 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.

7 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.

7 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.

7 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.

7 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.

7 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...

7 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

7 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

7 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

7 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