Commit graph

6065 commits

Author SHA1 Message Date
Matthew Waters
1ffe22240a gluploadelement: fix leak of upload library object
When only linking the element, the upload object will be created from
_transform_caps() but will never be unreffed as the only case is in _stop().

Add an unref if non-NULL to a new finalize handler for this case.
2016-10-05 18:28:48 +11:00
Matthew Waters
4e3cb77fa8 vkdisplay: hold a weakref on the list of windows
It's possible that the window may have been destroyed when a winsys
event comes in for it.

Fixes an assertion in make -C tests/check generic/states.check
2016-10-05 12:20:52 +11:00
Matthew Waters
1b3de55eb1 vkdevice: only unref the gstcontext query if non-NULL
Fixes an assertion in make -C tests/check generic/states.check
2016-10-05 12:20:52 +11:00
Arun Raghavan
cd8f463345 waylandsink: Actually use buffer pool config after setting it up
CID: 1373420
2016-09-30 12:59:20 +05:30
Sergey Mamonov
e98575417c fix for https://bugzilla.gnome.org/show_bug.cgi?id=771871 2016-09-29 19:59:28 +02:00
Vincent Penquerc'h
ce59031b10 fdkaacenc: fix accessing freed memory
The buffer data is not always copied in _Fill, and will be
read in _DecodeFrame. We unmap at the end of the function,
whether we get there via failure or early out, and keep a
ref to the buffer to ensure we can use it to unmap the
memory even after _finish_frame is called, as it unrefs
the buffer.

Note that there is an access beyond the allocated buffer,
which is only apparent when playing from souphttpsrc (ie,
not from filesrc). This appears to be a bug in the bit
reading code in libfdkaac AFAICT.

https://bugzilla.gnome.org/show_bug.cgi?id=772186
2016-09-29 15:13:07 +01:00
Vincent Penquerc'h
58bb21c463 fdkaacdec: avoid memory corruption on decoding error
The buffer size is expected to be in multiples of the sample size,
not in bytes.

https://bugzilla.gnome.org/show_bug.cgi?id=772186
2016-09-29 15:13:07 +01:00
Vincent Penquerc'h
95de5bf193 fdkaacenc: fix buffer leak
https://bugzilla.gnome.org/show_bug.cgi?id=772186
2016-09-29 15:13:07 +01:00
Vincent Penquerc'h
20caebe6a1 fdkaacenc: set framed=true on src caps
This fixes muxing in MPEG TS.

https://bugzilla.gnome.org/show_bug.cgi?id=772108
2016-09-28 10:04:24 +01:00
Vincent Penquerc'h
28a5826fa4 fdkaacenc: set transmux on the fdkaac lib
Not doing so will fail to decode in a simple fdkaacenc ! fdkaacdec
pipeline, though would work if this goes through a file.

https://bugzilla.gnome.org/show_bug.cgi?id=772067
2016-09-27 17:20:18 +01:00
Vincent Penquerc'h
fed624a208 fdkaacdec: do not error out of out of sync return
The docs say we should continue feeding in data and decoding

https://bugzilla.gnome.org/show_bug.cgi?id=772067
2016-09-27 17:20:18 +01:00
Vincent Penquerc'h
a828b12ca8 fdkaac: fix error with AOT_MP2_AAC_LC removed from libfdkaac API
AOT_MP2_AAC_LC is a "pseudo AOT" which got removed after 0.1.4,
and maps to AOT_AAC_LC.

Remove mpegversion 2 from th caps to match.

https://bugzilla.gnome.org/show_bug.cgi?id=772067
2016-09-27 17:20:18 +01:00
Olivier Crête
1b0cdcdf3e fdkaac: fix mixup setting interleaved output
https://bugzilla.gnome.org/show_bug.cgi?id=770455
2016-09-26 11:43:22 +01:00
Sebastian Dröge
6e749f17da openjpegdec: Properly offset and shift for all formats when converting
And while at it, also clean up some code.
2016-09-24 10:49:10 -04:00
Nicolas Dufresne
31d0a2c1ea waylandsink: Don't leak GValues in getcaps 2016-09-23 16:48:34 -04:00
Nicolas Dufresne
f6b270d8eb waylandsink: Update our window size on configure event
This is specific to when the waylandsink is not being embedded. In
this patch we pass the render lock to the window so it can safely
call gst_wl_window_set_render_rectangle() with the new size.

https://bugzilla.gnome.org/show_bug.cgi?id=722343
2016-09-22 19:12:22 -04:00
Nicolas Dufresne
fdea1e1144 waylandsink: Remove atomic operation
We already take the render lock from the wlqueue thread in some other
place which indicates that there is no use of this atomic instead of
a proper locking mechanism.
2016-09-22 19:12:22 -04:00
Nicolas Dufresne
0859e201f6 waylandsink: Do not pre-configure proposed pool
Upstream must configure the pool before using it. Pre-configuring
the proposed pool could hide bugs in upstream elements.
2016-09-22 19:12:22 -04:00
Nicolas Dufresne
ecf88d0d43 waylandsink: Properly draw black border in absence of viewporter
When we don't have a viewporter (scaling support), we can't use the
1x1 scaleup image trick. Instead, we need to allocate a buffer with
the same size as the area that need to have black background.
2016-09-22 19:12:22 -04:00
Nicolas Dufresne
ba71a392a6 waylandsink: Destroy viewporter when done
https://bugzilla.gnome.org/show_bug.cgi?id=738079
2016-09-21 15:08:34 -04:00
Nicolas Dufresne
3378b1a259 waylandsink: Port to vmeta and GstVideoFrame
This add support for non-standard strides to be used. Note that
some extra work is needed for multi-plane format which may have
a different GstMemory object per plane. This is not currently a
problem since SHM interface is limited to 1 memory.
2016-09-21 11:02:40 -04:00
Nicolas Dufresne
74a7baa533 waylandsink: Don't propose multiple time the same buffer pool
The buffer pool API does not allow multiple of owner. This otherwise
lead to error when renegotiation take place. Aso consider the
allocation query "need_pool" boolean.
2016-09-21 11:02:40 -04:00
Nicolas Dufresne
9357047eaf waylandsink: Promote debug trace into error trace
Otherwise those error may go unseen making debugging much
harder.
2016-09-21 11:02:40 -04:00
Nicolas Dufresne
94a5652694 waylandsink: Factor-out the pool creation 2016-09-21 11:02:40 -04:00
Nicolas Dufresne
1c81b0bb6e waylansink: Implement _show_frame()
This fixes the property show-preroll-frame expose by the VideoSink base
class and removes redundant code.
2016-09-21 11:02:40 -04:00
Tim-Philipp Müller
957ea18b1b wayland: fix distcheck some more 2016-09-20 18:28:29 +01:00
Matthew Waters
78e91a731f glcolorbalance: reconfigure on passthrough changes
Fixes an assertion when moving from passthrough to non-passthrough

Without an explicit reconfigure, glfiter won't have created the GL
resources such as the FBO, GL bufferpool, etc and basetransform will
allocate sysmem buffers instead.
2016-09-19 16:58:34 +10:00
Tim-Philipp Müller
b711e23036 wayland: fix distcheck when wayland-scanner is not installed 2016-09-17 14:12:44 +01:00
Nicolas Dufresne
4bb5823cea waylandsink: Make wl_viewporter optional
This makes the viewporter interface optional. The end result is
obviously far from optimal, though it greatly helps testing on older
compostitors or gnome-wayland. We can make it strictly needed later when
this new interface get widely adopted.
2016-09-15 14:14:10 -04:00
Scott D Phillips
a5ead086f9 wayland: Update from scaler to viewporter protocol
Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=767671
2016-09-15 12:10:59 -04:00
Matthew Waters
a969048003 meson: add build files for vulkan 2016-09-09 16:55:23 +10:00
Matthew Waters
b3706573da meson: add build files for the gtk plugin 2016-09-09 16:36:03 +10:00
Matthew Waters
b5b7a3aec3 meson: add some starting build files for GL
Currently only works on linux with egl/glx + wayland/x11 but the general
principals have been layed out for adding the other GL platforms/winsys'.
2016-09-09 11:22:47 +10:00
Matthew Waters
7b566b2964 vkupload: add video/x-raw to the VulkanBuffer uploader
Allows upstream elements that use our memory to passthrough without copying.
2016-09-08 16:14:41 +10:00
Matthew Waters
c110b62cf8 vkutils: set the last element of the layer array to NULL
g_strv* functions require this to not read off the end of the array.
2016-09-08 16:14:31 +10:00
Haihua Hu
f15a3e3657 qmlglsink: check qt_context_ first in GstQSGTexture::bind()
When start qmlglsink app, it will set NULL buffer to GstQSGTexture
in which case that qt_context_ will be a random value and cause
gst_gl_context_activate() fail.

https://bugzilla.gnome.org/show_bug.cgi?id=770925
2016-09-07 00:15:02 +10:00
Philippe Normand
7fa2668adf srtpenc: prevent deadlock in create_session
Temporarily release the object lock which is needed to post error
messages on the bus.

https://bugzilla.gnome.org/show_bug.cgi?id=770933
2016-09-06 11:02:06 +02:00
Alessandro Decina
c16d57cc9a glupload: create the GstGLUpload object in ::transform_caps
Previously it was created in the init function and destroyed in ::stop, which
lead to segfaults when reusing the element.

Now the upload object is created in ::transform_caps if it is NULL, which is the
earliest we need it. The other vfuncs already bail out if the upload object is
NULL, which means that negotiation wasn't done.
2016-09-05 14:44:24 +10:00
Thibault Saunier
2fb716409c Use the new API to post flow ERROR messages on the bus
https://bugzilla.gnome.org/show_bug.cgi?id=770158
2016-08-26 19:23:31 -03:00
Sebastian Dröge
4734b10c6f dashdemux: Add properties to select maximum allowed width/height and framerate
https://bugzilla.gnome.org/show_bug.cgi?id=770408
2016-08-26 18:12:23 +03:00
Alessandro Decina
91fea30ff4 gstglupload: make the GLMemoryUpload method output the correct texture-target
Now when used with video/x-raw as input, the GLMemoryUpload method checks for
->tex_target in input GLMemory(es) and sets the output texture-target
accordingly.

Fixes video corruption with a pipeline like avfvideosrc ! video/x-raw !
glimagesink where on macos avfvideosrc pushes RECTANGLE textures but glupload
was configuring texture-target=2D as output.
2016-08-26 17:44:33 +10:00
Jan Schmidt
9afd71a507 gl: Update glvideomixer doc 2016-08-26 03:25:49 +10:00
Jan Schmidt
9e516b35e3 gl: Add/update docs for glviewconvert, glstereomix
Add some example pipelines for glstereomix, and fix up
the example pipelines for glviewconvert
2016-08-26 03:25:49 +10:00
Jan Schmidt
3ca79c93ba glstereomix: Fix caps negotiation
The videoaggregator negotiation sequence changed some time
back and broke glstereomix. Instead of doing nego incorrectly
in the find_best_format() vfunc, do it directly in the
update_caps() method.
2016-08-26 03:25:49 +10:00
Sebastian Dröge
4f6ae1f48c adaptivedemux: Enable bitrate selection for trick mode streaming again
And scale the bitrate with the absolute rate (if it's bigger than 1.0) to get
to the real bitrate due to faster playback.

This allowed in my tests to play a stream with 10x speed without buffering as
the lowest bitrate is chosen, instead of staying/selecting the highest bitrate
and then buffering all the time.

It was previously disabled for not very well specified reasons, which seem to
be not valid anymore nowadays.
2016-08-25 19:52:37 +03:00
Xabier Rodriguez Calvar
8ada38e8f4 glvideoflip: implement GstVideoDirection interface
It implements now this interface with its video-direction
property. Values are changed to GstVideoOrientationMethod but they have
the same value than the originals.

https://bugzilla.gnome.org/show_bug.cgi?id=768687
2016-08-25 10:17:43 +03:00
Sebastian Dröge
15da533580 fdkaacenc: Implement some automatic bitrate selection
Based on sample rate and channel count, see
http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC#Recommended_Sampling_Rate_and_Bitrate_Combinations
2016-08-24 19:43:55 +03:00
Tim-Philipp Müller
3550fb3a6a meson: remove unused mpg123 build file
mpg123 was moved to ugly.
2016-08-21 16:21:07 +01:00
Nirbheek Chauhan
42af2d66d8 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.
2016-08-20 11:35:54 +01:00
Nirbheek Chauhan
7e2b68fe2f 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.
2016-08-19 14:42:52 +01:00
Philippe Renon
f5d2309c5b daala: fix typo related compilation error
https://bugzilla.gnome.org/show_bug.cgi?id=770102
2016-08-19 13:47:43 +03:00
Matthew Waters
9d66a3447f 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.
2016-08-19 16:09:04 +10:00
Sebastian Dröge
0d06f4bc7c 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.
2016-08-18 15:28:33 +03:00
Sebastian Dröge
e786f737ae dashdemux: In KEY_UNITS trick mode, download all I-frames and not only IDR 2016-08-18 13:21:54 +03:00
Sebastian Dröge
04199db2ae 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.
2016-08-16 10:37:28 +03:00
Jan Schmidt
117f81dc00 qt: Use wglShareLists() workaround unconditionally.
Sometimes wglCreateContextAttribsARB() exists, but
isn't functional (some Intel drivers), so it's
easiest to do the workaround unconditionally.
2016-08-16 00:53:38 +10:00
Jan Schmidt
23fc5e31b0 qt: Move debug statement to after the category init
Don't output debug to an uninitialised debug category.
2016-08-16 00:43:39 +10:00
Sebastian Dröge
02f688ee9d Revert "Revert "dashdemux: When doing SIDX seeking, return instead of overriding the timestamp with 0 from the MPD seeking method""
This reverts commit aea2c13fc1.
2016-08-11 12:11:22 +02:00
Sebastian Dröge
18e5e64b05 dashdemux: When doing chunked downloading on SIDX, clip requests on the SIDX entry boundaries
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:55 +02:00
Sebastian Dröge
9c04d1e13c 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
2016-08-11 11:56:55 +02:00
Sebastian Dröge
7f1f777b92 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
2016-08-11 11:56:55 +02:00
Sebastian Dröge
f8eddabe29 dashdemux: If a fragment contains no sync samples, disable key-unit mode
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:55 +02:00
Sebastian Dröge
cfad48ce5a 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
2016-08-11 11:56:55 +02:00
Sebastian Dröge
b936c00f51 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
2016-08-11 11:56:55 +02:00
Sebastian Dröge
47ef88f20e 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
2016-08-11 11:56:55 +02:00
Sebastian Dröge
7b4fe1e02f 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
2016-08-11 11:56:55 +02:00
Sebastian Dröge
12c2415251 dashdemux: Only enable key-unit trick mode for video streams
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:55 +02:00
Sebastian Dröge
9dd8789323 dashdemux: Only do keyframe-only playback if the corresponding seek flag is given
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:55 +02:00
Sebastian Dröge
70bc183a52 dashdemux: Implement downloading of only sync samples
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:55 +02:00
Sebastian Dröge
5b943135ac dashdemux: Store parsed moof and extract offsets of sync samples in it
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:55 +02:00
Sebastian Dröge
fff814bbe5 dashdemux: Implement parsing of moof box
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:54 +02:00
Sebastian Dröge
7d4f6ca0a9 dashdemux: Move code around to keep all sidx related functions together
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:54 +02:00
Sebastian Dröge
c4ad30d6b4 dashdemux: Store box fourccs in the header at a central place
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:54 +02:00
Sebastian Dröge
0b0a1a52d3 dashdemux: Implement parsing of ISOBMFF boxes
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:54 +02:00
Sebastian Dröge
37ff8abe1c dash: Add helper for parsing box headers
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:54 +02:00
xlazom00
00ac1c7eb4 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
2016-08-11 10:19:56 +02:00
Josep Torra
ee5aa3d8b5 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'
2016-08-08 13:10:12 +02:00
Tim-Philipp Müller
31fffdad10 fdkaac: actually build and dist 2016-08-07 20:53:30 +01:00
xlazom00
94d11f87c7 hls, timecode: fix linking
https://bugzilla.gnome.org//show_bug.cgi?id=769587
2016-08-07 16:45:25 +01:00
Sebastian Dröge
cb20432f9f fdkaac: Add FDK AAC based decoder element
Missing is support for error concealment, etc.
2016-08-07 15:42:15 +03:00
Sebastian Dröge
ff83eceb13 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.
2016-08-07 15:41:04 +03:00
Sebastian Dröge
24501c6358 fdkaac: Initial plugin skeleton 2016-08-07 15:31:09 +03:00
Edward Hervey
aea2c13fc1 Revert "dashdemux: When doing SIDX seeking, return instead of overriding the timestamp with 0 from the MPD seeking method"
This reverts commit 947656cfd2.

This makes all dash seeking tests fail. Needs more testing to fully understand
what's going wrong. Revert ok'd by Sebastian
2016-08-05 09:16:58 +02:00
Jan Schmidt
f2dc791479 hls: Avoid potential NULL pointer dereference.
Fixes CID 1364753
2016-08-04 22:28:13 +10:00
Jan Schmidt
d78686f7d4 hls: Avoid coverity warning about access off the end of an array.
Fixes CID 1364755
2016-08-04 22:22:44 +10:00
Sebastian Dröge
947656cfd2 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.
2016-08-04 15:10:02 +03:00
Luis de Bethencourt
2ed4135237 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
2016-08-04 11:17:56 +01:00
Jan Schmidt
35c82fee32 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.
2016-08-04 04:53:50 +10:00
Jan Schmidt
2df53e5a7d 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.
2016-08-04 01:54:28 +10:00
Jan Schmidt
ebab5b17f4 hls: Fix compiler warning for possibly uninit variable 2016-08-03 23:51:14 +10:00
Michael Olbrich
89727ee9a3 hlsdemux: seek all streams 2016-08-03 23:49:54 +10:00
Michael Olbrich
decafb5f4c hlsdemux: simplify gst_hls_demux_seek()
Don't initialize current_sequence. It is always overwritten in the walk
loop.
2016-08-03 23:49:54 +10:00
Michael Olbrich
4704634f43 hlsdemux: don't download the last fragment when seeking beyond the end of the track
It's not used anyways.
2016-08-03 23:49:54 +10:00
Jan Schmidt
1d4eb71a05 hlsdemux: Add support for ID3 tag parsing
Parse start PTS out of the ID3 tags in
audio fragments. Informational only for now.
2016-08-03 23:49:54 +10:00
Jan Schmidt
8cf50dbc44 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
2016-08-03 23:49:54 +10:00
Jan Schmidt
d9daa5d0b3 hlsdemux: Only use the primary stream for bitrate selection.
When playing alternate rendition auxilliary streams, ignore
them in bitrate measurement (for now).
2016-08-03 23:49:54 +10:00
Jan Schmidt
e91bddbcfd 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.
2016-08-03 23:49:54 +10:00
Jan Schmidt
216195b7b2 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.
2016-08-03 23:49:54 +10:00
Jan Schmidt
f32c7aa88a 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.
2016-08-03 23:49:54 +10:00
Jan Schmidt
f3397e0d54 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.
2016-08-03 23:49:54 +10:00
Tim-Philipp Müller
4df6f1ee93 hlsdemux: move variant list handling over to new master playlist code
Adapt hlsdemux for the m3u8 playlist changes.
2016-08-03 23:49:54 +10:00
Tim-Philipp Müller
f0fcf1d718 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...
2016-08-03 23:49:54 +10:00
Haihua Hu
0b23bb5a59 qt: implement qmlglsrc for qml view grab
[Matthew Waters]: gst-indent sources

https://bugzilla.gnome.org/show_bug.cgi?id=768160
2016-08-03 22:11:11 +10:00
Alex Ashley
d9bcf4dbd9 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
2016-08-02 12:52:34 +01:00
Haihua Hu
87a86b78b5 glimagesink: Fix horizontal/vertical flip matrizes
They were swapped.

https://bugzilla.gnome.org/show_bug.cgi?id=769371
2016-08-02 14:51:33 +03:00
Sebastian Dröge
a7adb5cb60 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.
2016-07-28 20:44:29 +03:00
Sebastian Dröge
269a8c5fdf 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.
2016-07-28 11:17:15 +03:00
Matthew Waters
dba5d3a37a caopengllayersink: remove unused to_quit variable
It was always 0 and never set to anything meaningful.
2016-07-26 16:02:11 +10:00
Matthew Waters
5da138d1ae glfilter: rewrite subclasses for filter_texture() occuring on GL thread
There's no need for the jump to an extra thread in most cases, especially
when relying solely on a shader to render.  We can use the provided
render_to_target() functions to simplify filter writing.
2016-07-26 14:07:24 +10:00
Matthew Waters
06b4b52a20 glcontext: remove not thread-safe get/set_error()
Use GError's instead if necessary.
2016-07-26 14:07:24 +10:00
Matthew Waters
518e8a3fd2 glframebuffer: rewrite for a more consistent API
Facilities are given to create fbo's and attach GL memory (renderbuffers
or textures).  It also keeps track of the renderable size for use with
effective use with glViewport().
2016-07-26 14:07:24 +10:00
Matthew Waters
aa109016a3 gl: use GLMemory for accessing textures everywhere
This simplifies and consolidates a lot of duplicated code creating
and modifying textures.
2016-07-26 14:07:24 +10:00
Matthew Waters
f10a67ec44 glfilter: rename draw_texture to draw_fullscreen_quad
And remove unused arguments.
2016-07-26 14:07:24 +10:00
Matthew Waters
e9df4f0890 gleffects: fix xray to use the correct function
Instead of duplicating the sin effect
2016-07-26 14:07:24 +10:00
Tim-Philipp Müller
9f2dfaaa7a openh264: fix up for API changes in v1.6.0
Update for API changes in v1.6.0.

https://bugzilla.gnome.org/show_bug.cgi?id=768771
2016-07-18 18:36:42 +01:00
Jan Schmidt
41644cfa70 hlsdemux: Fix clearing of decryption state
Don't clear decryption state immediately after
initialising it in the start_fragment. Don't clear
the state of all streams when we want to only clear
the current stream.

https://bugzilla.gnome.org//show_bug.cgi?id=768757
2016-07-19 02:14:17 +10:00
Tim-Philipp Müller
6697feae5f hlsdemux: make decryption key handling per-stream
Add demuxer instance-wide decryption key cache. The current and
last key url are per-stream, so make a shared cache. Move the
decryption handling into the stream object, and use the shared
cache for the keys.
2016-07-15 14:33:23 +10:00
Jan Schmidt
463f48c148 hlsdemux: add hlsdemux-specific AdaptiveDemuxStream subclass
Prepare hlsdemux for more than one single stream. Currently hlsdemux
assumes there'll only ever be one stream and most of the stream-specific
state is actually in the hlsdemux structure. Add a stream subclass
instead and move some stream-specific members there instead.
2016-07-15 14:33:23 +10:00
Stefan Sauer
ea443a3fcc lv2: make it build with older lilv
Implementing the removal of presets is unfortunately not feasibla with
versions < 0.22.
Fixes #768595
2016-07-14 19:40:57 +02:00
Nicolas Dufresne
74c0d5fdd2 webrtcdsp: Add delay-agnostic property
In this mode, we let WebRTC Audio Processing figure-out the delay. This
is useful when the latency reported by the stack cannot be trusted. Note
that in this mode, the leaking of echo during packet lost is much worst.
It is recommanded to use PLC (e.g. spanplc, or opus built-in plc).

In this mode, we don't do any synchronization. Instead, we simply process all
the available reverse stream data as it comes.
2016-07-13 23:17:21 -04:00
Stefan Sauer
8330f7aa26 lv2: planning update 2016-07-10 20:44:19 +02:00
Stefan Sauer
13d963fbf0 lv2: keep working with older versions
Provide a fallback impl. for the only new function we were using from 0.22.
Fixes #768595
2016-07-10 20:44:19 +02:00
Luis de Bethencourt
87a133aad2 musepackdeck: unsigned can't be less than zero
Less-than-zero comparison of an unsigned value, guint64, is never true

CID 1363334
2016-07-06 12:19:32 +01:00
Nicolas Dufresne
d992f49cb7 webrtcdsp: Workaround GCC/MingW 4.7 limitations
It refuses to initialize a classes using brackets notation. This is
to allow building using our mingw version.
2016-07-05 09:23:11 -04:00
Stefan Sauer
adf2092b3d lv2: add support for saving presets
Plugns supporting the state interface can now save their presets under '.lv2'.
2016-07-04 21:18:28 +02:00
Stefan Sauer
e9a2c4f1e1 lv2: support for loading presets
Detect if plugins can do presets. Lazily read a list of presets and add support
for loading.
2016-07-04 21:18:28 +02:00
Wim Taymans
6b511fdcd1 musepackdec: port to 1.0 2016-07-04 16:54:53 +02:00
Tim-Philipp Müller
013eaee06b qt: fix build some more when QPA is not available
Compiler would complain about include directory that didn't
exist because QPA_INCLUDE_PATH gets subst-ed regardless
(and if it didn't we'd have just an empty -I argument).

https://bugzilla.gnome.org/show_bug.cgi?id=767553
2016-07-01 19:29:49 +01:00
Sebastian Dröge
91e398ddd6 dashdemux: Implement SIDX tracking based on buffer offset
This simplifies the code but also removes a bug with tracking of the remaining
size for the initial subfragment: we were not considering the size between the
index and the start of the first moof here.

https://bugzilla.gnome.org/show_bug.cgi?id=764684
2016-07-01 14:10:31 +02:00
Sebastian Dröge
9374643089 dashdemux: Properly keep track of current offset
GstAdapter does not guarantee to pass through all the offsets, we have to keep
track of it ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=764684
2016-07-01 14:10:31 +02:00
Sebastian Dröge
8344854c4c hlsdemux: Properly keep track of current offset
GstAdapter does not guarantee to pass through all the offsets, we have to keep
track of it ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=764684
2016-07-01 14:10:31 +02:00
Sebastian Dröge
3469104a47 hlsdemux: Clear pending data when needed
When switching fragments we don't want to keep any data around from the last
one, and also forget about all data when doing flushing seeks or selecting new
bitrates.

https://bugzilla.gnome.org/show_bug.cgi?id=764684
2016-07-01 14:10:31 +02:00
Sebastian Dröge
ca9f62e1d0 adaptivedemux: Get rid of internal stream adapter and let subclasses handle this directly
This allows subclasses to have more control and especially ensure that they
push data downstream with the correct offsets.

https://bugzilla.gnome.org/show_bug.cgi?id=764684
2016-07-01 14:10:31 +02:00
Sebastian Dröge
659032b3d9 openh264enc: Set frame timestamps before sending to the encoder 2016-06-30 23:38:26 +02:00
Sebastian Dröge
27c0a9306e openh264enc: Fix initial time-per-frame calculation 2016-06-30 23:35:33 +02:00
Sebastian Dröge
593ed6f3d7 openh264enc: Remove meaningless drop bitrate handling
This doesn't even have a property.
2016-06-30 23:33:38 +02:00
Sebastian Dröge
1e242edeb4 openh264enc: Expose maximum bitrate setting 2016-06-30 23:30:13 +02:00
Sebastian Dröge
c8666c58e8 openh264enc: Actually hook up the rate-control property 2016-06-30 23:30:13 +02:00
Sebastian Dröge
f5f437b707 openh264enc: Use a constant SPS/PPS ID no matter if openh264 older or newer than 1.4 is used 2016-06-30 23:30:13 +02:00
Sebastian Dröge
4cba0d5fab openh264enc: Make slice settings more explicit and don't set any number if not a fixed number of slices is selected 2016-06-30 23:30:13 +02:00
Nicolas Dufresne
71c9cdeff4 webrtcdsp: Rewrite echo data synchronization
The previous code would run out of sync if there was packet lost
or clock skews. When that happened, the echo cancellation feature would
completely stop working. As this is crucial for audio calls, this patch
re-implement synchronization completely.

Instead of letting it drift until next discont, we now synchronize
against the record data at every iteration. This way we simply never
let the stream drift for longer then 10ms period. We also shorter the
delay by using the latency up the probe (basically excluding the sink
latency. This is a decent delay to avoid starving in the probe queue.

https://bugzilla.gnome.org/show_bug.cgi?id=768009
2016-06-30 09:27:03 -04:00
Nicolas Dufresne
e35e23b734 webrtcdsp: We now fail if there is no echo probe
When echo cancel is enabled, we now fail the pipeline if there is
not echo probe. For this reason there is no need to check if probe
pointer is set anymore.
2016-06-30 09:27:03 -04:00
Sebastian Dröge
e7f8c62d42 openh264enc: Remove broken byte-stream to avc conversion and just output byte-stream as generated by the encoder
The byte-stream to avc conversion did not consider NAL sizes bigger than 2^16,
multiple layers, multiple NALs per layer, and various other things. This
caused corrupted streams in higher bitrates and other circumstances.

Let's just forward byte-stream as generated by the encoder and let h264parse
handle conversion to avc if needed. That way we only have to keep around one
version of the conversion and don't have to fix it in multiple places.
2016-06-30 10:37:08 +02:00
Matthew Waters
989200820d glmemory: add the texture type to allocate to parameters
Rather than assuming something.  e.g. zerocopy on iOS with GLES3 requires
the use of Luminance/Luminance Alpha formats and does not work with
Red/RG textures.
2016-06-29 18:04:28 +10:00
Haihua Hu
d60b071474 qmlglsink: Fix build error when don't have QPA installed.
Check header file existance and wrap the header file include
in the necessary #ifdef to avoid build error.

https://bugzilla.gnome.org/show_bug.cgi?id=767553
2016-06-27 22:44:56 +10:00
Tim-Philipp Müller
ab2281be0f openjpeg: fix more broken includes 2016-06-24 09:41:18 +01:00
Aaron Boxer
e7e6a3579d jpeg2000parse: use enums for colorspace and sampling, rather than strings
Also, move gstjpeg2000sampling to codecparsers project

https://bugzilla.gnome.org/show_bug.cgi?id=767908
2016-06-24 11:23:31 +03:00
Nicolas Dufresne
c551a853b3 webrtcdsp: Offset timestamp with duration
The saved timestamp is used to compute the delay of the probe data.
As it's used at the following incoming buffer, it needs to be offset
with the duration of the buffer to represent the end position. Also,
properly initialize the saved timestamp and protect against TIME_NONE.
2016-06-23 08:04:18 -04:00
Nicolas Dufresne
86aa3b5f9c webrtcdsp: Synchronize with delays
Until now, we were synchronizing both DSP and Probe adapter by
waiting and clipping the probe adapter data. This increases the CPU
usage, can cause copies if the audio is not 10ms aligned and the worst
is that it prevents the processing from compensating for inaccurate
latency. This is also a step forward toward supporting playback
filters.
2016-06-22 22:34:25 -04:00
Nicolas Dufresne
fb8662eb5c webrtdsp: Remove restriction on channels number
Unlike 0.1, in 0.2 the reverse stream can have different number of
channels. Remove the check that restrict it.
2016-06-22 22:34:25 -04:00
Nicolas Dufresne
89b193c0a9 webrtcdsp: Style fix 2016-06-22 22:34:25 -04:00
Matthew Waters
ba69afdc47 qmlglsink: add win32 support
The current state of c++ ABI's on Window's and Gst's/Qt's conflicting
mingw builds means that we cannot use mingw for building the qt plugin.

Instead, a qmake .pro file is provided that is expected to be used with the
msvc binaries provided by Qt like so:

(with the PATH environment variable containing the path to the qt biniaries
and PKG_CONFIG_PATH containing the path to GStreamer modules)
cd /path/to/sources/gst-plugins-bad/ext/qt
qmake -tp vc

Then open the resulting VS project and build the library.  Then

cp debug/libgstqtsink.dll /path/to/prefix/lib/gstreamer-1.0/libgstqtsink.cll

https://bugzilla.gnome.org/show_bug.cgi?id=761260
2016-06-22 14:26:05 +10:00
Nicolas Dufresne
398f7059fc webrtcdsp: Add WebRTC Audio Processing support
This DSP library can be used to enhance voice signal for real time
communication call. In implements multiple filters like noise reduction,
high pass filter, echo cancellation, automatic gain control, etc.

The webrtcdsp element can be used along, or with the help of the
webrtcechoprobe if echo cancellation is enabled. The echo probe should
be placed as close as possible to the audio sink, while the DSP is
generally place close to the audio capture. For local testing, one can
use an echo loop pipeline like the following:

  autoaudiosrc ! webrtcdsp ! webrtcechoprobe ! autoaudiosink

This pipeline should produce a single echo rather then repeated echo.
Those elements works if they are placed in the same top level pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=767800
2016-06-21 13:46:00 -04:00
Aaron Boxer
74dcb59025 openjpegdec: use sampling field to determine RGB channel
https://bugzilla.gnome.org/show_bug.cgi?id=767402
2016-06-21 11:43:04 +03:00
Joan Pau Beltran
dc762166f3 dc1394src: check for disabled transmission in _stop_cam
For symetry with _start_cam, check that the transmission
is effectively disabled in _stop_cam.

https://bugzilla.gnome.org/show_bug.cgi?id=763026
2016-06-20 21:46:23 +01:00
Sergey Borovkov
180405714c qml: Enable qmlglsink for eglfs
https://bugzilla.gnome.org/show_bug.cgi?id=763044
2016-06-16 01:49:16 +10:00
Matthew Waters
14c6fece09 qmlglsink: propagate GL context creation failure upwards
Otherwise an application cannot know if the qmlglsink will be displaying frames
incorrectly/at all.
2016-06-16 01:49:16 +10:00
Matthew Waters
ef508b8461 qmlglsink: also allow wayland-egl as a platform name 2016-06-16 01:49:16 +10:00
Haihua Hu
3903406304 qmlglsink: Add Wayland support
Don't use gstgldisplay to get wayland display. Should use QPA on wayland
to get wayland display for QT.

https://bugzilla.gnome.org/show_bug.cgi?id=767553
2016-06-16 01:49:16 +10:00
Stefan Sauer
976cb234bc ladspa: simplify registry cache structure creation
Create and fill structure in one go.
2016-06-15 12:14:30 +02:00
Haihua Hu
5e8a650130 gleffects: fix little rectangle that appears at the center of squeeze and tunnel effects
These two shader will calculate the vector length and use it as denominator.
But length could be zero which will cause undefine behaviour. Add protection for
this condition

https://bugzilla.gnome.org/show_bug.cgi?id=767635
2016-06-15 19:18:15 +10:00
Matthew Waters
4010faf4a1 gldeinterlace: remove dead code accessing filter->in_tex_id
It's not set by anyone or anything and gldeinterlace is the only user of it now.
2016-06-15 15:08:39 +10:00
Aleix Conchillo Flaqué
15a3b0f6ce srtpenc: remove get-rollover-counter signal and add stats property
We remove get-rollover-counter signal in favor of the "stats"
property. The "stats" property is a GstStructure with caps
application/x-srtp-encoder-stats that contains an array of
structures with caps application/x-srtp-stream.
Each stream structure contains "ssrc" and "roc" fields.

https://bugzilla.gnome.org/show_bug.cgi?id=733265
2016-06-13 14:55:25 +02:00
Sebastian Rasmussen
c7e4217121 curlsmtpsink: Lock and don't send final boundary upon error
Previously GstCurlSmtpSink could cause the pipeline thread to end up
waiting for a stopped thread to perform work.

The scenario was that the sink could be rendering a buffer and waiting
for the curl transfer thread to have sent the data. As soon as the
transfer thread has copied all data to curl's data buffer in
gst_curl_base_sink_transfer_read_cb() then the render call would stop
waiting and return GST_FLOW_OK. While this takes place the transfer
thread may suffer from an error e.g. due gst_poll_wait() timing out.
This causes the transfer thread to record the error, claim (it is not
really true since there was an error) that the data has been sent and
that a response has been received by trying to signal the pipeline
thread (but this has already stopped waiting). Finally the transfer
thread stops itself. A short while later the pipeline thread may attempt
to push an EOS event into GstCurlSmtpSink. Since there is no check in
gst_curl_smtp_sink_event() to check if the sink has suffered from any
error it may attempt to add a final boundary and ask the, now deceased,
transfer thread to transfer the new data. Next the sink element would
have waited for the transfer to complete (using a different mechanism
than normal transfers through GstCurlBaseSink). In this case there was
an error check to avoid waiting if an error had already been seen.
Finally GstCurlSmtpSink would chain up to GstCurlBaseSink which would
then block waiting for a response (normally this would be prevented by
the transfer thread suffering the error claiming that it had been
received, but GstCurlSmtpSink clobbered this flag after the fact).

Now GstCurlSmtpSink avoids this by locking over the entire event handing
(preventing simultaneous changes to flags by the two threads) and also
by avoiding to initiate transfer of final boundary if an error has
already been seen.

Also add GST_FIXME() for remaining similar issue where the pipeline
thread may block indefinitely waiting for transfer thread to transfer
data but the transfer thread errors out and fails to notify the pipeline
thread that the transfer failed.

https://bugzilla.gnome.org/show_bug.cgi?id=767501
2016-06-11 11:25:13 +01:00
Heinrich Fink
3107f5df76 facedetect: Fix compiler warning with clang 3.8
Use namespace only after it was actually defined by a header.

gstfacedetect.cpp:79:17: error: using directive refers to implicitly-defined namespace 'std' [-Werror]
using namespace std;
                ^
2016-06-10 11:33:52 +03:00
Tim-Philipp Müller
faf6e5a1eb dc1394src: minor clean-up
We always call _parse_caps() with non-NULL out vars.
2016-06-09 22:01:45 +01:00
Tim-Philipp Müller
09737d1874 dc1394src: fix some more c99-isms 2016-06-09 22:01:13 +01:00
Joan Pau Beltran
3355f5b3ab dc1394src: prefix and file names according to Gstreamer conventions
Replace the type and function prefix to follow the conventions:

  - Use `GST_TYPE_DC1394_SRC` instead of `GST_TYPE_DC1394`.

  - Use `GstDC1394Src` and `GstDC1394SrcClass` instead of
    `GstDc1394` and `GstDc1394Class`.

  - Use `gst_dc1394_src` instead of `gst_dc1394`.

https://bugzilla.gnome.org/show_bug.cgi?id=763026
2016-06-09 21:47:58 +01:00
Joan Pau Beltran
e28b123608 dc1394src: port to 1.X
The dc1394src is a PushSrc element for IIDC cameras based on libdc1394.
The implementation from the 0.x series is deffective:
caps negotiation does not work, and some video formats
provided by the camera are not supported.

Refactor the code to port it to 1.X and enhance the support
for the full set of video options of IIDC cameras:

  - The IIDC specification includes a set of camera video modes
    (video format, frame size, and frame rates).
    They do not map perfectly to Gstreamer formats, but those that
    do not match are very rare (if used at all by any camera).
    In addition, although the specification includes a raw format,
    some cameras use mono video formats to capture in Bayer format.
    Map corresponding video modes to Gstreamer formats in capabilities,
    allowing both gray raw and Bayer video formats for mono video modes.

  - The specification includes scalable video modes (Format7),
    where the frame size and rate can be set to arbitrary values
    (within the limits of the camera and the bus transport).
    Allow the use of such mode, using the frame size and rate
    from the negotiatied caps, and set the camera frame rate
    adjusting the packet size as in:
    <http://damien.douxchamps.net/ieee1394/libdc1394/faq/#How_do_I_set_the_frame_rate>

    The scalable modes also allow for a custom ROI offset.
    Support for it can be easily added later using properties.

  - Camera operation using libdc1394 is as follows:

      1. Enumerate cameras on the system and open the camera
         identified the enumeration index or by a GUID (64bit hex code).

      2. Query the video formats supported by the camera.

      3. Configure the camera for the desired video format.

      4. Setup the capture resources for the configured video format
         and start the camera transmission.

      5. Capture frames from the camera and release them when not used.

      6. Stop the camera transmission and clear the capture resources.

      7. Close the camera freeing its resources.

    Do steps 2 and 3 when getting and setting the caps respectively.
    Ideally 4 and 6 would be done when going from PAUSED to PLAYING
    and viceversa, but since caps might not be set yet, the video mode
    is not properly configured leaving the camera in a broken state.
    Hence, setup capture and start transmission in the set caps method,
    and consequently clear the capture and stop the transmission
    when going from PAUSED to READY (instead of PLAYING to PAUSED).
    Symmetrycally, open the camera when going from READY to PAUSED,
    allowing to probe the camera caps in the negotiation stage.
    Implement that using the `start` and `stop` methods of `GstBaseSrc`,
    instead of the `change-state` method of `GstElement`.
    Stop the camera before setting new caps and restarting it again
    to handle caps reconfiguration while in PLAYING (it has no effect
    if the camera is not started).

  - Create buffers copying the bytes of the captured frames.
    Alternatively, the buffers could just wrap the bytes of the frames,
    releasing the frame in the buffer's destroy notify function,
    if all buffers were destroyed before going from PLAYING to PAUSED.

  - No timestamp nor offset is set when creating buffers.
    Timestamping is delegated to the parent class BaseSrc,
    setting `gst_base_src_set_live` TRUE, `gst_base_src_set_format`
    with GST_FORMAT_TIME and `gst_base_src_set_do_timestamp`.
    Captured frames have a timestamp field with the system time
    at the completion of the transmission of the frame,
    but it is not sure that this comes from a monotonic clock,
    and it seems to be left NULL in Windows.

  - Use GUID and unit properties to select the camera to operate on.
    The camera number used in version 0.X does not uniquely identify
    the device (it depends on the set of cameras currently detected).
    Since the GUID is 64bit identifier (same as MAC address),
    handle it with a string property with its hexadecimal representation.
    For practicality, operate on the first camera available if the GUID
    is null (default) and match any camera unit number if unit is -1.
    Alternatively, the GUID could be handed with an unsigned 64 bit
    integer type property, using `0xffffffffffffffff` as default value
    to select the first camera available (it is not a valid GUID value).

  - Keep name `GstDc1394` and prefix `gst_dc1394` as in version 0.X,
    although `GstDC1394Src` and `gst_dc1394_src` are more descriptive.

  - Adjust build files to reenable the compilation of the plugin.

    Remove dc1394 from the list of unported plugins in configure.ac.

    Add the missing flags and libraries to Makefile.
    Use `$()` for variable substitution, as many plugins do,
    although other plugins use `@@` instead.

https://bugzilla.gnome.org/show_bug.cgi?id=763026
2016-06-09 21:47:58 +01:00
Nicolas Dufresne
d33352edb5 webpdec: Wait for segment event before checking it
The heuristic to choose between packetise or not was changed to use the
segment format. The problem is that this change is reading the segment
during the caps event handling. The segment event will only be sent
after. That prevented the decoder to go in packetize mode, and avoid
useless parsing.

https://bugzilla.gnome.org/show_bug.cgi?id=736252
2016-06-07 21:10:04 -04:00
Tim-Philipp Müller
4c874797b2 openjpeg: fix builddir != srcdir build, and distcheck 2016-06-07 14:15:41 +01:00
Aaron Boxer
eebb65e934 openjpeg: set sampling in the caps
https://bugzilla.gnome.org/show_bug.cgi?id=766236
2016-06-07 15:24:32 +03:00
Havard Graff
7ecfd7e24d gltestsrc: gltestsrc.h already defines GstGLTestSrc
And redefinition is not allowed.

https://bugzilla.gnome.org/show_bug.cgi?id=766973
2016-05-28 22:20:51 +01:00
Tim-Philipp Müller
7d46d67c59 smoothstreaming: update fps calculation for h264 codec parser API changes
Use new gst_h264_video_calculate_framerate() API instead of fps_n/fps_d
fields in SPS struct which are to be removed.

Apparently H264 content in MSS is always non-interlaced/progressive,
so we can just pass 0 for field_pic_flag and don't need to parse any
slice headers first if there's no external signalling. But even if
that's not the case the new code is not worse than the existing code.

https://msdn.microsoft.com/en-us/library/cc189080%28VS.95%29.aspx

https://bugzilla.gnome.org/show_bug.cgi?id=723352
2016-05-28 10:29:20 +01:00
Nicolas Dufresne
203e893e10 caopengllayersink: Don't cache buffer pool
Pools cannot be used by the two elements at the same time.

https://bugzilla.gnome.org/show_bug.cgi?id=766611
2016-05-25 13:35:59 -04:00
Haihua Hu
a5cb746983 glimagesink: support video rotation using transform matrix
Add "rotate-method" to glimagesink and apply transform matrix
to vertex coordinate to control rotation.

https://bugzilla.gnome.org/show_bug.cgi?id=765795
2016-05-25 18:28:20 +10:00
Matthew Waters
061a157ef5 glvideomixer: fix race retrieving the GL context from the display
_get_gl_context() can be called concurrently from either propose_allocation() or
decide_allocation().  If it so happens that this happens at the same time,
the check for whether we already had a GL context was outside the lock.  Inside
the lock and loop, the first thing that happens is that we unref the current GL
context (if valid) as if there was a conflict adding it to the display.  If the
timing was unlucky, subsequent use of the GL context would be referencing an
already unreffed GL context object resulting in a critical:

g_object_ref: assertion 'object->ref_count > 0' failed

https://bugzilla.gnome.org/show_bug.cgi?id=766703
2016-05-25 18:28:20 +10:00
Arjen Veenhuizen
113d5c143c gltransformation: make the pivot-z property READWRITE
Instead of just being READABLE.

https://bugzilla.gnome.org/show_bug.cgi?id=766818
2016-05-24 23:30:09 +10:00
Guillaume Desmottes
dff46e3239 gltestsrc: fix src_impl leak
https://bugzilla.gnome.org/show_bug.cgi?id=766661
2016-05-24 21:30:19 +10:00
Aaron Boxer
e76705dbde openjpegenc: enable MCT for RGB video
https://bugzilla.gnome.org/show_bug.cgi?id=766732
2016-05-21 09:44:22 +03:00
Guillaume Desmottes
fe7dd131f5 gltestsrc: fix shaders ref counting
The gltestsrc element uses two shaders: color_shader and snow_shader.
Those are alternatively assigned to the SrcShader->shader pointer and
their reference was transferred to it. Only the SrcShader->shader was
unreffed (in _src_shader_deinit()) so only one shader was properly
freed, the other one was leaked.

Fixed this by giving an extra ref to SrcShader->shader and unreffing the
2 shaders in _src_smpte_free().

https://bugzilla.gnome.org/show_bug.cgi?id=766661
2016-05-20 17:09:33 +02:00
Guillaume Desmottes
2572e3d25c glmosaic: fix shader leak
gst_gl_mosaic_init_shader() is called twice with test_glmosaic so the
first shader was leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=766661
2016-05-20 17:09:25 +02:00
Stefan Sauer
a1bf2e17cc lv2: support CVPorts
CVPorts are ports that take a buffer. For now we just fill the buffers with
the control value.
2016-05-18 21:33:43 -07:00
Stefan Sauer
c66d3906a4 lv2: use _OBJECT log variants and lower log level when processing 2016-05-18 21:33:43 -07:00
Stefan Sauer
b483717322 lv2: cleanup the predicates
Use the defines from the headers and get rid of our own namespace defines.
Replace the 'role' prop with 'designation'.
2016-05-15 23:31:33 -07:00
Stefan Sauer
63afc05c7f lv2: tweak enum logging
Log more details when we find a bad scalepoint and downgrade the logging of the
good enum valzes.
2016-05-15 23:27:22 -07:00
Stefan Sauer
04a957c9b8 lv2: generate enums from scalepoints
Plugins can provide a set of named values for a control port. Ideally only those
values are set for the property. Check if all scalepoints are integers and if so
generate an enum type.
2016-05-15 22:05:43 -07:00
Stefan Sauer
5aee046876 lv2: reduce log spam for property bounds
Only complain about bad bounds, if the plugin actually set those. Otherwise
silently adjust our defaults.
2016-05-15 19:45:26 -07:00
Stefan Sauer
e2184b2fc4 lv2: remove lv2_symbol_pred
We're not actually using it.
2016-05-15 17:58:51 -07:00
Stefan Sauer
78572e276d lv2: remove leftover FIME 2016-05-15 17:54:38 -07:00
Stefan Sauer
e5ec6f102e ladspa: use _OBJECT log variants for plugin_init
Also trim leading whitespae.
2016-05-15 14:47:22 -07:00
Stefan Sauer
1c83ce7a96 lv2: add registry caching
Use the plugin_cache extra data to avoid introspecting over and over again.
2016-05-15 14:47:22 -07:00
Stefan Sauer
da0a3d95e7 lv2: implemnt the map-extension
This is the most used one and at the same time easy to implement sing QGQuark.
2016-05-15 14:47:22 -07:00
Stefan Sauer
3101fe78f9 lvs: add require_feature checks
Plugins can report what host features they need. Since we start to implement host feature
check which plugins we can no suuport.
2016-05-15 14:47:22 -07:00
Edward Hervey
a76ad40c6c rtmpsrc: Remove dead assignments
* read is only used within the while loop
* todo and bsize only need to be assigned once
2016-05-15 14:18:23 +02:00
Matthew Waters
044ed50190 opencv/facedetect: fix the build with opencv 3.1.0
- add using namespace std; for std::vector
    - use the cpp header imgproc.hpp file for the cv::ellipse function instead of
      the C header
    - Mat no longer takes IplImage in it's constructors, use the cvarrtomat()
      function instead.

    Fixes a couple of build errors:

    gstfacedetect.cpp:140:30: error: ‘vector’ does not name a type
     structure_and_message (const vector < Rect > &rectangles, const gchar * name,
                                  ^~~~~~
    gstfacedetect.cpp:140:37: error: expected ‘,’ or ‘...’ before ‘<’ token
     structure_and_message (const vector < Rect > &rectangles, const gchar * name,
                                         ^
    gstfacedetect.cpp: In function ‘void structure_and_message(int)’:
    gstfacedetect.cpp:143:13: error: ‘rectangles’ was not declared in this scope
       Rect sr = rectangles[0];

    [...]

    gstfacedetect.cpp: In function ‘void
    gst_face_detect_run_detector(GstFaceDetect*, cv::CascadeClassifier*, gint, gint,
    cv::Rect, std::vector<cv::Rect_<int> >&)’:
    gstfacedetect.cpp:562:31: error: no matching function for call to
    ‘cv::Mat::Mat(IplImage*&, cv::Rect&)’
         Mat roi (filter->cvGray, r);

    [...]

    gstfacedetect.cpp: In function ‘GstFlowReturn
    gst_face_detect_transform_ip(GstOpencvVideoFilter*, GstBuffer*, IplImage*)’:
    gstfacedetect.cpp:594:44: error: no matching function for call to
    ‘cv::Mat::Mat(cv::Mat, bool)’
         Mat mtxOrg (cv::cvarrToMat (img), false);

    [...]

    gstfacedetect.cpp:734:79: error: ‘ellipse’ was not declared in this scope
             ellipse (mtxOrg, center, axes, 0, 0, 360, Scalar (cr, cg, cb), 3, 8,
    0);
2016-05-15 12:29:07 +01:00
Matthew Waters
7507b14dcd gltransformation: use the affine transformation meta if available downstream
We can avoid a render pass if downstream supports the affine transformation meta
and increase the performance of some pipelines involving gltransformation.

Implemented by checking for the affine transformation in the allocation query
from downstream and combining our matrix with that of upstream's (or creating
our own).
2016-05-14 16:35:29 +03:00
Matthew Waters
799efcb133 gl: take the affine transformation in NDC
Provide a function to get the affine matrix in the meta in terms of NDC
coordinates and use as a standard opengl matrix.

Also advertise support for the affine transformation meta in the allocation
query.
2016-05-14 16:35:29 +03:00
Matthew Waters
90da62bc25 glbasemixer: actually attempt to propose an allocation upstream
We were always failing the allocation query as a flag was never being set to
signal a successful negotiation.  Fix by setting the required flag on a
successful caps event from upstream.
2016-05-14 16:35:29 +03:00
Stefan Sauer
dfa6fb3c86 lv2: add a source plugin
Update the readme with a working example and list what feature are supported.
2016-05-13 11:54:08 -07:00
Stefan Sauer
8a6c459f70 lv2: add support for host features
Implement a log handler as the first one.
2016-05-13 11:54:08 -07:00
Matthew Waters
864a0f453d vkswapper: check the error of the presentation for out of date
allows us to resize the swapchain correctly.
2016-05-13 15:24:35 +03:00
Stefan Sauer
d7b7d9deb7 lv2: skip plugins that need host features
We haven't implemented this yet and those plugin would fail when we instantiate
them.
2016-05-10 22:04:48 -07:00
Stefan Sauer
f35d4d43ea lv2: add classification from metadata
This helps apps to structure the element collection.
2016-05-10 21:11:41 -07:00
Stefan Sauer
a05f8ddb5d lv2: extract helper code into lv2utils
This is a preparaton for adding lv2-sources and -sinks.
2016-05-10 14:21:35 -07:00
Stefan Sauer
38fd4f6148 ladspa: code cleanup
Whitespace cleanup and unify codeing style.
2016-05-10 14:21:35 -07:00
Stefan Sauer
78d116a64d ladspa: simplify the code
Remove a local var and just use the parameter value.
2016-05-10 14:21:35 -07:00
Nirbheek Chauhan
1536f30cc2 openjpeg: Port to 2.1 and require a pkg-config file for 2.0 and 2.1
The port was trivial, and according to the NEWS file nothing else has changed,
but it is possible that other API was changed without proper notification.

OpenJPEG upstream has shipped a pkg-config file for the past 4 years, and all
distros should be shipping it by now.

https://bugzilla.gnome.org/show_bug.cgi?id=766213
2016-05-10 14:03:33 +03:00
Matthew Waters
4810c7de70 vulkan/build: add the build directory to the list of includes
Fixes out of tree builds from tarballs.

https://bugzilla.gnome.org/show_bug.cgi?id=764758
2016-05-05 23:54:16 +10:00
Matthew Waters
77f6e253e1 vkswapper: fix up display synchronization
Use the semaphores in the correct place, before and after the submission for
acquiring and presenting the swapchain buffer.

Waiting on the fence that only signals the command buffer completion rather than
the completion of the presentation is racy with the destruction of the vulkan
buffers associated with that image.  Wait on the device to be idle instead after
presenting.
2016-05-05 23:54:16 +10:00
Matthew Waters
267588fb5e vkswapper: use gst_video_sink_center_rect for positioning the video
Don't try to reimplement it badly.
2016-05-05 23:54:16 +10:00
Matthew Waters
5498e97a11 gl/egl: replace gsteglimagememory with an EGLImage wrapper
That can be passed to GstGLMemoryEGL.

This also ports the dmabuf uploader to GstEGLImage and GstGLMemoryEGL.
2016-05-04 13:31:48 +10:00
Haihua Hu
0cfb0890ce gl: enable gldeinterlace on OpenGL ES
1.Porting the exist deinterlace shader and OpenGL callback
  to be compatible with OpenGL ES.
2.Add a our blur vertical shader to gldeinterlace.
3.Add a property named “method” to let user choose which
  deinterlace function to use. Default to choose blur vertical
  method for better performance.

[Matthew Waters]: fix name of greedyh in method property (was greedhy) and port
to git master.

https://bugzilla.gnome.org/show_bug.cgi?id=764873
2016-04-29 21:33:29 +10:00
Thiago Santos
aa7a3cb24f dash: strip lead/trailing whitespace from descriptortype attributes
The spec says it is xs:anyURI and leading and trailing whitespace
are to be ignored

https://bugzilla.gnome.org/show_bug.cgi?id=758064
2016-04-22 17:33:15 -03:00
Florin Apostol
74d62b9144 adaptivedemux: use GstSystemClock to all real-time calculations
A realtime clock is used in many places, such as deciding which
fragment to select at start up and deciding how long to sleep
before a fragment becomes available. For example dashdemux needs
sample the client's estimate of UTC when selecting where to start
in a live DASH stream.

The problem with dashdemux calculating the client's idea of UTC is
that it makes it difficult to create unit tests, because the passage
of time is a factor in the test.

This commit changes dashdemux and adaptivedemux to use the
GstSystemClock, so that a unit test can replace the system clock when
it needs to be able to control the clock.

This commit makes no change to the behaviour under normal usage, as
GstSystemClock is based upon the system time.

https://bugzilla.gnome.org/show_bug.cgi?id=762147
2016-04-21 16:46:09 -03:00
Hyunjun Ko
7bee220af4 gl: caopengllayersink: fix a minor warning
Fix "unused variable" warning

https://bugzilla.gnome.org/show_bug.cgi?id=765292
2016-04-20 10:47:19 +03:00
Sebastian Dröge
bbe2e41653 glimagesink: Fix indentation 2016-04-19 09:30:39 +03:00
Haihua Hu
e4fe0e4ae2 glimagesink: need to clean window_id when state change form READY to NULL
When application change pipeline state NULL->READY and then READY->NULL,
glimagesink will not clear glsink->window_id. After that, when application
change state NULL->READY, the new_window_id is equal to window_id, glimagesink
will not set window handle. It will use the internal window but not the window
create by application.

https://bugzilla.gnome.org/show_bug.cgi?id=765241
2016-04-19 09:29:15 +03:00
Raffaele Rossi
79f9c7671b dtsl: add some documentation
https://bugzilla.gnome.org/show_bug.cgi?id=760994
2016-04-18 12:35:40 +01:00
Heinrich Fink
44ec245b48 gl/caopengllayersink: Actually unset caps_change flag after resize
Otherwise, the sink would execute "on_resize" for each frame.

https://bugzilla.gnome.org/show_bug.cgi?id=765194
2016-04-18 10:32:07 +03:00
Aleix Conchillo Flaqué
73ebdb888e srtpdec: also check for "roc" in caps
Currently, gst_srtp_dec_sink_setcaps is happy if the "roc" field is not
provided in the caps. If it is not provided the stream will be properly
inserted in the hash table with a default "roc". Then, when the first
buffer arrives validate_buffer will find an existing stream in the hash
table and will not signal request-key, not allowing the user to provide
a "roc".

This patch expects "roc" in gst_srtp_dec_sink_setcaps, if not found a
request-key will be signaled and the user will be able to provide all
the srtp fields, including "roc".

https://bugzilla.gnome.org/show_bug.cgi?id=765079
2016-04-15 15:37:32 +02:00
Sebastian Dröge
6c020b7f3c meta: Initialize all remaining metas in their init function
https://bugzilla.gnome.org/show_bug.cgi?id=764902
2016-04-13 10:25:32 +03:00
Luis de Bethencourt
43a656b296 gltestsrc: don't dereference null pointer
funcs can be NULL, it is one of the two conditions of the OR statement
above, so confirm it isn't before dereferencing with funcs->free.

CID 1358388
2016-04-12 11:17:15 +01:00
Matthew Waters
417bae7f23 glbasemixer: chain up to the parent implementation 2016-04-12 09:39:32 +10:00
Matthew Waters
ab33030250 vulkan: prettify the various versions in the debug output
output human readable numbers.
2016-04-12 09:39:12 +10:00
Tim-Philipp Müller
cc2b604b3b openh264dec: minor clean-ups
Remove unused property getters, setters; outdated comment.
2016-04-11 20:23:45 +01:00
Tim-Philipp Müller
9617a371ca openh264: remove unnecessary instance private structures
Element instance structures are not public API, so no need
for the extra indirection to hide the data.
2016-04-11 20:11:53 +01:00
Tim-Philipp Müller
41d8a49c52 openh264: fix indentation 2016-04-11 20:04:00 +01:00
Matthew Waters
65770c2af9 vulkan: add a wayland winsys implementation 2016-04-11 14:18:47 +10:00
Matthew Waters
e46bd98fe6 vulkan/xcb: getProcAddress winsys functions
There's no guarantee that they will always be exposed by the vulkan loader.
2016-04-11 14:18:47 +10:00
Matthew Waters
b76fcfd3f7 vkupload: copy necessary buffer metadata
timestamps, flags, etc
2016-04-11 14:18:47 +10:00
Matthew Waters
09808f9780 vkswapper: add necessary wait stages to the submission info 2016-04-08 21:46:50 +10:00
Matthew Waters
e4377e5c8f vkswapper: add srgb formats to our list of formats
intel returns them for their surface formats.
2016-04-08 21:46:50 +10:00
Matthew Waters
61d1b31136 vulkan: silence a validation warning filling out the image barrier 2016-04-08 21:46:50 +10:00
Matthew Waters
cecbcd704b vulkan: use the correct validation layer name
The threading validation layer has changed names.
2016-04-08 21:46:50 +10:00
Matthew Waters
761171b6d2 vulkan: only warn on not found layers
don't error out completely

https://bugzilla.gnome.org/show_bug.cgi?id=764545
2016-04-08 17:56:50 +10:00
Matthew Waters
b32ca4b550 vulkan: don't g_error when failing to find validation layers
Aborting the application is never a good thing to do for recoverable errors.

Just warn and error out instead.

https://bugzilla.gnome.org/show_bug.cgi?id=764545
2016-04-08 17:42:46 +10:00
Marcin Kolny
ac8a14d1c8 chromaprint: emit notify::fingerprint signal when fingerprint is ready
In addition to adding the fingerprint to the tags.

https://bugzilla.gnome.org/show_bug.cgi?id=733233
2016-04-07 20:44:09 +01:00
Matthew Waters
aa2b23fe39 videoaggregator: repect the result of find_best_format in the default update_caps
We weren't using the result of find_best_format at all.

Also, move the find_best_format usage to the default update_caps() to make
sure that it is also overridable.

https://bugzilla.gnome.org/show_bug.cgi?id=764363
2016-04-07 20:30:25 +10:00
Vincent Penquerc'h
8ac261841c mpdparser: clamp segment durations to each other and period end
5.3.2.1 in the spec.

https://bugzilla.gnome.org/show_bug.cgi?id=751792
2016-04-05 17:01:01 +01:00
Matthew Waters
dedb94323c glvideomixer: add support for the affine transformation meta 2016-04-05 20:50:24 +10:00
Matthew Waters
0343d58c81 glimagesink: support the affine transformation meta for any texture target 2016-04-05 20:50:14 +10:00
Matthew Waters
a8b860e45d glmixer: set the current texture to 0 before mapping
If we fail mapping, we don't want to use undefined video data in the subclass.
2016-04-05 16:24:53 +10:00
Patricia Muscalu
0fbbbd042a curlsink: catch an unknown error
In this case the socket callback has not been called
by libcurl and the curlsink has not been notified about any
connection problems by libcurl.
This indicates that it's a bug in libcurl so catch it as
an unknown error.

https://bugzilla.gnome.org/show_bug.cgi?id=754432
2016-04-04 17:48:55 +01:00
Matthew Waters
8cde41e68c glmixerbin: proxy the start-time-* properties from aggregator 2016-04-04 20:54:23 +10:00
Santiago Carot-Nemesio
d2ef3a4c19 dtls: Use unique names for internal elements to ease debugging
https://bugzilla.gnome.org/show_bug.cgi?id=748651
2016-04-04 11:09:10 +01:00
Stefan Sauer
bbcd659f5d README: update to 1.0 and lilv 2016-04-01 21:26:20 +02:00
Stefan Sauer
44b9710c74 lv2filter: remove the variable for the registry klass tag
Just pass the string when registering.
2016-04-01 21:26:20 +02:00
Stefan Sauer
bec6042622 lv2filter: remove copy and paste of doc blob
This doc block is already in gstlv2.c.
2016-04-01 21:26:20 +02:00
Vanessa Chipirras Navalon
4e1aba0923 opencv: segmentation: Ported to OpenCV version 3.1
Add namespace bgsegm, replacement functions and Template class for new
OpenCV versions because these functions have been removed. cvarrToMat() is
added because it is compatible with all versions of OpenCV and the use of
class Mat constructor is eliminated, it is also deprecated in 3.X versions.

Use the namespace cv because some functions are called many times.

This patch keeps compatibility with 2.4

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-04-01 12:24:13 +01:00
Vanessa Chipirras Navalon
78cb53ad3c opencv: textoverlay: Ported to OpenCV version 3.1
imgproc_c.h is added because CvFont struct needs it in any 3.x version.
We use this structure in GstOpencvTextOverlay. This keeps compatibility
with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-04-01 11:58:24 +01:00
Luis de Bethencourt
9d7b525f19 motioncells: fully construct MotionCells
Some members of MotionCells were not being initialized in the constructor.
Protect from potential garbage memory usage by fully initializing it.
Moving m_frameSize out of the class because it is only used in
performDetectionMotionCells().

CID 1197704
2016-03-31 16:12:04 +01:00
Matthew Waters
8b310665c5 gl/build: add missing '\' at the end of the line in MakeFile.am
Otherwise the following elements aren't included in the correct variable.

Fixes error in 'make distcheck' failing to find gstgltestsrc.h
2016-04-01 00:27:04 +11:00
Matthew Waters
42817bd6f2 gldifferencematte: port to gl3/gles2 2016-03-31 20:53:18 +11:00
Matthew Waters
a2d82e329a gltestsrc: port to gles2/gl3
This makes gltestsrc work everywhere \o/

- workaround RPi returning invalid values for positive coords in the
  checker shader
- reduce the number of iterations in the mandelbrot shader for gles2

https://bugzilla.gnome.org/show_bug.cgi?id=751540
2016-03-31 20:53:18 +11:00
Matthew Waters
00828b8c4c gltestsrc: port smpte pattern to shaders
Loosely based on patch by
Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>

https://bugzilla.gnome.org/show_bug.cgi?id=751540
2016-03-31 20:53:18 +11:00
Matthew Waters
d412d617c2 gltestsrc: implement the circular method
https://bugzilla.gnome.org/show_bug.cgi?id=759801
2016-03-31 20:53:18 +11:00
Matthew Waters
6d368c0d0e gltestsrc: add a generic src framework
Any unsupported pattern (circular) results in an error
2016-03-31 20:53:18 +11:00
Matthew Waters
624ca1aaf0 glsterosplit: remove internal glupload/glcolorconvert
They are provided separately as elements and no other element contains the
internal references to glupload/glcolorconvert.
2016-03-31 20:53:18 +11:00
Vanessa Chipirras Navalon
d1266be431 opencv: pyramidsegment: delete element
cvPyrSegmentation() has been deprecated in OpenCV 3.0, and there isn't any
function to replace it. Deleting this element so we can support OpenCV 3.1
without build issues.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:52:03 +01:00
Vanessa Chipirras Navalon
d3b6b8c64f opencv: gstcvsmooth: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and the use the class constructor Mat is eliminated because is deprecated
in 3.X versions. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:13:27 +01:00
Vanessa Chipirras Navalon
0a08e771d4 opencv: grabcut: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and using the class Mat constructor is eliminated, because is deprecated
in 3.X versions. The use the using namespace cv because is called some
functions many times. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:13:14 +01:00
Vanessa Chipirras Navalon
120f32fed4 opencv: faceblur: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and the use of the class constructor Mat is eliminated because is deprecated
in 3.X versions. Included 'using namespace std' because it is needed for the
Vector class in 3.X versions. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:13:00 +01:00
Vanessa Chipirras Navalon
93b83edfe5 opencv: handdetect: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and the use of the class constructor Mat is eliminated because is deprecated
in 3.X versions. Included 'using namespace std' because it is needed for the
vector class in 3.X versions. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:12:47 +01:00
Vanessa Chipirras Navalon
f91b71edde opencv: retinex: Ported to OpenCV version 3.1
cvarrToMat() is added because it is compatible with all versions of Opencv
and using the class constructor Mat is eliminated because is deprecated
in 3.X versions. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:12:32 +01:00
Vanessa Chipirras Navalon
037f54d644 opencv: disparity: Ported to OpenCV version 3.1
'METHOD_VAR', 'METHOD_GC' is removed because there aren't equivalent functions
in new OpenCV versions. 'img_right_as_cvMat_rgb', 'img_left_as_cvMat_rgb' and
'depth_map_as_cvMat2' variables is removed because these aren't used.
cvarrToMat() is added because it is compatible with all versions of Opencv
and using the class Mat constructor is eliminated, because is deprecated
in 3.X versions. The use 'using namespace cv' because is called some
functions many times. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:12:16 +01:00
Vanessa Chipirras Navalon
4b60b47075 opencv: skindetect: Ported to OpenCV version 3.1
cvCVPixToPlane() has been deprecated in OpenCV 3.0, and there is
function to replace it cvSplit(). The include compat.hpp is deleted because
in 3.X versions doen't exist and it isn't necessary for 2.4.X versions
in this element. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:11:49 +01:00
Vanessa Chipirras Navalon
b37c759e52 opencv: Ported to OpenCV version 3.1 OpenCV
configure.ac was changed to work with new versions of OpenCV 3.X.
A new include is added gstopencvutils.cpp because it contains
the previous. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:10:58 +01:00
Edward Hervey
11ace3c18a teletexdec: Simplify negotiation code
No need to use a while() loop if we're going only going to use
the first structure of the caps ...

CID #1341748
2016-03-29 10:57:32 +02:00
Thibault Saunier
c32e74fd8a lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2
Properly separate files as we will not have only one single base class
for all elements as we used to with 0.10, but the same way it is done
with ladspa, we subclass GstAudioFilter, GstBaseSource etc...

https://bugzilla.gnome.org/show_bug.cgi?id=678207
2016-03-27 19:28:00 +02:00
Nirbheek Chauhan
21023800ca gtk: Fix logging in base widget and fix desc of GL sink
Set a default category for gtkgstbasewidget lest the logging go to the 'default'
category where it can't be found easily
2016-03-27 12:04:16 +03:00
Yann Jouanin
9554e1c666 rtmpsrc plugin : add timeout option
https://bugzilla.gnome.org/show_bug.cgi?id=764251
2016-03-27 11:54:36 +03:00
Matthew Waters
cfbe7d1399 gtk/gl: don't assert when gdk doesn't provide a GL context
Allows the application to check whether gtkglsink is supported by setting
the element to READY.

https://bugzilla.gnome.org/show_bug.cgi?id=764148
2016-03-25 17:49:14 +11:00
Vineeth TM
1ac501d427 dfbvideosink: post message to application for unhandled keyboard/mouse events
https://bugzilla.gnome.org/show_bug.cgi?id=763403
2016-03-24 14:58:24 +02:00
Vineeth TM
9fe6b9b86b gtkbasesink: post message to application for unhandled keyboard/mouse events
https://bugzilla.gnome.org/show_bug.cgi?id=763403
2016-03-24 14:58:24 +02:00
Vineeth TM
8cdfb13658 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Thibault Saunier
b634f08ad6 vulkan: Minor string fix 2016-03-23 13:43:46 +01:00
Matthew Waters
dcfa7ee044 vulkan: VK_API_VERSION has been removed
In a stable release too, naughty.

Use VK_API_VERSION_1_0 instead

https://bugzilla.gnome.org/show_bug.cgi?id=764066
2016-03-23 22:15:35 +11:00
Sebastian Dröge
02fff22db5 vulkan: Ship missing headers with tarballs
https://bugzilla.gnome.org/show_bug.cgi?id=763877
2016-03-18 19:45:09 +02:00
Matthew Waters
16dec9eacc wayland: fix null pointer dereference on error
gnome-shell doesn't the support wl_scaler interface which makes creating a
wayland display fail creation.

Found in the generic state changes test
2016-03-17 02:28:32 +11:00
Matthew Waters
96754a6d52 glstereo{mix,split}: allow running on GLES 2/3
It's mostly supported for GLES 2.x, fully supported on GLES 3.x
2016-03-17 02:28:32 +11:00
Matthew Waters
4e7797546a gleffects; give each effect a unique long name and description
Gives applications that scrape the factory details more detailed and unique
details on the exact element.

https://bugzilla.gnome.org/show_bug.cgi?id=760566
2016-03-11 01:40:39 +11:00
Matthew Waters
8ceeca93b2 glfilterapp: update for the use of shaders
Fixes black output when placed in pipelines (using the default drawing).

https://bugzilla.gnome.org/show_bug.cgi?id=763365
2016-03-10 22:53:01 +11:00
Vineeth TM
1f32d6aff7 glimagesink: Fix window memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=763356
2016-03-09 08:57:16 +02:00
Matthew Waters
a68c8978a6 glvideomixer: signal continuation in reset
We want to iterate over all the pads, not just the first one.  Fix by returning
TRUE in the GstAggregatorPadForeachFunc.

Removes a GST_IS_GL_CONTEXT() assertion on shutdown with >2 inputs
using gst-launch.
2016-03-08 02:06:46 +11:00
Joe Gorse
71bf7ffe14 hls: Add OPENSSL_CFLAGS to CFLAGS
https://bugzilla.gnome.org/show_bug.cgi?id=763079
2016-03-04 09:26:34 +02:00
Sergey Borovkov
7981c1cb86 qml: Fix leak of the OpenGL contexts
[Matthew Waters]: add NULL checks before unreffing

https://bugzilla.gnome.org/show_bug.cgi?id=762999
2016-03-03 13:13:26 +11:00
Reynaldo H. Verdejo Pinochet
b077cd5510 vksink: fix spelling on failed _ensure_data() error message 2016-03-02 14:53:46 -08:00
Vivia Nikolaidou
c3d6635bbf mpeg2enc: Provide format as a string instead of a char to gst_structure_new
The format was provided as 'I420' instead of "I420", causing a crash.
2016-03-02 21:49:29 +02:00
Vineeth TM
55060ee6ce vkswapper/vkutils: Fix gerror memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=762842
2016-02-29 09:50:25 +02:00
Vineeth TM
d258b06013 vkdevice: Fix duplicate assignment of queue variable
https://bugzilla.gnome.org/show_bug.cgi?id=762842
2016-02-29 09:50:25 +02:00
Vineeth TM
e821582c13 vksink: Fix GError memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=762842
2016-02-29 09:50:25 +02:00
Thiago Santos
38cc9070cd dashdemux: sync index and the selected chunk when seeking
Otherwise the chunk selected isn't matched to the index and
the timing will be different, causing it to actually start
from a different position
2016-02-26 17:31:44 -03:00
Tim-Philipp Müller
111bb7c4c2 opus: rename plugin to opusparse for the time being
Until we fix it up and get rid of the opus dependency and
move it elsewhere too.
2016-02-26 00:44:34 +00:00
Tim-Philipp Müller
5f6ab24e0d opus: remove Opus encoder/decoder, moved to -base
https://bugzilla.gnome.org/show_bug.cgi?id=756282
2016-02-26 00:44:34 +00:00
Tim-Philipp Müller
a50e4bcadf opus: remove Opus RTP elements, they have moved to -good
https://bugzilla.gnome.org/show_bug.cgi?id=756282
2016-02-25 22:56:38 +00:00
Matthew Waters
c086540291 qt: use a static_cast instead of dynamic one
The dynamic_cast is a little but of overkill as the app will still crash if it
fails in the later g_assert.

Allows compilation with -fno-rtti

https://bugzilla.gnome.org/show_bug.cgi?id=762526
2016-02-24 21:20:18 +11:00
Wang Xin-yu (王昕宇)
96ac4af7bf glmixer: iterator didn't advance in continue statement
Leading to a deadlock.

https://bugzilla.gnome.org/show_bug.cgi?id=760873
2016-02-24 18:27:44 +11:00
Dave Craig
a5eee1e28a disparity: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()
Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=759539
2016-02-23 18:13:37 +02:00
Florin Apostol
72e46a4478 dashdemux: correctly handle an HTTP-XSDATE that is exactly the size of the date string
The code in the gst_dash_demux_parse_http_xsdate() was trying to
handle the case where the string is not null terminated by resizing
the buffer and appending a zero byte. This does not work if the buffer
is exactly the length of the string because the gst_buffer_resize()
function does not re-allocate the buffer, it just changes its size.

If a buffer is passed to gst_dash_demux_parse_http_xsdate() that is
exactly the length of the string, the function fails with an assert
failure in gst_buffer_resize().

https://bugzilla.gnome.org/show_bug.cgi?id=762148
2016-02-23 14:41:35 +02:00
Matthew Waters
98752fde48 gl: fix the build
2d287812 was incomplete
2016-02-22 21:03:28 +11:00
Matthew Waters
2d2878125e gl: error out if the configured GL API is unsupported by our element
https://bugzilla.gnome.org/show_bug.cgi?id=759801
2016-02-22 20:52:54 +11:00
Sergey Borovkov
0d80be0ce0 qmlglsink: Schedule onSceneGrpahInitialized to execute on render thread
onSceneGraphInitialized() is called from non render thread currently when
scene graph is already initialized.

https://bugzilla.gnome.org/show_bug.cgi?id=761003
2016-02-22 20:26:41 +11:00
Tim-Philipp Müller
95b1d4bf39 daala: don't use exported but undeclared core debug category symbols
It's not right and won't work on Windows with MSVC.
2016-02-20 12:55:08 +00:00
Sebastian Dröge
bce2f8f5f0 modplug: Fix compiler warning about C++11 compatibility
gstmodplug.cc:94:17: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
 #define FORMATS "{ "GST_AUDIO_NE (S32)", "GST_AUDIO_NE (S16)", U8 }"
                 ^
gstmodplug.cc:94:39: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
 #define FORMATS "{ "GST_AUDIO_NE (S32)", "GST_AUDIO_NE (S16)", U8 }"
                                       ^
2016-02-18 00:24:04 +02:00
David Fernandez
55ba6f1ee8 curlbasesink: don't send empty buffers
Fixes problem in curlhttpsink when qtmux uses faststart.

https://bugzilla.gnome.org/show_bug.cgi?id=762013
2016-02-17 11:10:22 +00:00
Thibault Saunier
d3fc5b5175 ladspa: Fix some debugs 2016-02-17 11:17:24 +01:00
Matthew Waters
b24d28f729 glimagesink: remove unsed reconfigure variable 2016-02-17 11:42:23 +11:00
Matthew Waters
ccc17ebe10 glimagesink: don't push a reconfigure event from the GL thread
Doing so may cause deadlocks when other elements attempt destroy or created
GL resources.

https://bugzilla.gnome.org/show_bug.cgi?id=760559
2016-02-17 10:34:14 +11:00
Wang Xin-yu (王昕宇)
5b1872e387 glvideomixer: don't leak pad's vertex buffer on release_pad
https://bugzilla.gnome.org/show_bug.cgi?id=760873
2016-02-17 10:30:45 +11:00
Matthew Waters
ac690978f2 glmixer: Remove usage of GstGLMixerFrameData
Subclasses can just iterate over the list of pads themselves

https://bugzilla.gnome.org/show_bug.cgi?id=760873
2016-02-17 10:30:45 +11:00
Matthew Waters
0d94c9ae7f glmixer: don't hold the object lock while calling into GL
Doing so can deadlock between the GL thread and the object lock e.g.
when performing reconfigure events in glimagesink on a resize event.

https://bugzilla.gnome.org/show_bug.cgi?id=760559
2016-02-17 10:30:45 +11:00
Matthew Waters
1cca847b2a vkdevice: add the necessary but arbitrary queue priority
Silences an error in the validation layers.
2016-02-17 01:13:43 +11:00
Matthew Waters
49430569da vkswapper: add the necessary call to check if the physical device supports the surface
Silences an error in the validation layers.
2016-02-17 01:13:43 +11:00
Matthew Waters
4ca3fdb955 vulkan: update to SDK 1.0.3.1 2016-02-17 01:13:43 +11:00
Matthew Waters
a3aa0d11ec vkswapper: iterate over the device queue's using the new iteration API 2016-02-17 01:13:43 +11:00
Matthew Waters
ca8f2b0826 vkdevice: add callback iteration over the device queue's 2016-02-17 01:13:43 +11:00
Matthew Waters
eb4419b49b vkqueue: add context helpers 2016-02-17 01:13:43 +11:00
Matthew Waters
5617b0904b vkutils: move object-specific context queries to their respective files
vkutils now just contains some utility functions to further simplify retrieving
multiple objects.
2016-02-17 01:13:43 +11:00
Matthew Waters
d1d8a365a2 vkdevice: remove unneeded error parameter from get_queue() 2016-02-17 01:13:43 +11:00
Matthew Waters
53f99ac804 vkupload: implement an uploader abstraction 2016-02-17 01:13:43 +11:00
Matthew Waters
57bd62f85f vkdisplay: unref the instance
fixes memory leak
2016-02-17 01:13:43 +11:00
Matthew Waters
7118f1f7e2 vulkan: chain up in finalize
They were missing in some cases
2016-02-17 01:13:43 +11:00
Matthew Waters
22172df413 vksink: only unref if the pointers are non-NULL 2016-02-17 01:13:43 +11:00
Matthew Waters
b5dce08d8f vkimagememory: free the managing struct on _free
fixes a memory leak
2016-02-17 01:13:43 +11:00
Matthew Waters
68b1e18123 vkdevice: perform a waitIdle before destroying the device 2016-02-17 01:13:43 +11:00
Matthew Waters
1c2aae08c5 Revert "vulkan: remove views from the memory objects."
This reverts commit 1ea817298ee4d5ef9b00f888f8ebe16a888b1150.
2016-02-17 01:13:43 +11:00
Matthew Waters
3c2710dc0f vulkanmemory: remove bind variants 2016-02-17 01:13:43 +11:00
Matthew Waters
4c0a169af9 vulkan: remove views from the memory objects.
They are not used and it's not possible to create the view before binding the
VkDeviceMemory object to them.
2016-02-17 01:13:43 +11:00
Matthew Waters
0309c9fbc7 vkswapper: alpha flags are now supported by LunarG's driver 2016-02-17 01:13:43 +11:00
Matthew Waters
0dd1154b73 vulkan: add a vulkanbuffer bufferpool 2016-02-17 01:13:43 +11:00
Matthew Waters
86e18d6b8f vulkan: add upload element 2016-02-17 01:13:43 +11:00
Matthew Waters
980213ee97 vkutils: fix assert inversion 2016-02-17 01:13:43 +11:00
Matthew Waters
43afa15fac vulkan: add caps feature names for the buffer and image memories 2016-02-17 01:13:43 +11:00
Matthew Waters
7871910bc6 vulkan: add device to handle_context_query 2016-02-17 01:13:43 +11:00
Matthew Waters
bfab93dabe vulkan: move instance_open into the utility ensure_element_data
So callers don't have to perform it themselves.
2016-02-17 01:13:43 +11:00
Matthew Waters
0bcb3cdd29 vkinstance: add signal for overriding device creation 2016-02-17 01:13:43 +11:00
Matthew Waters
300f4e03b2 vulkan: separate allocation and binding of memory 2016-02-17 01:13:43 +11:00
Matthew Waters
914c1a5193 vkbuffermemory: follow the rest of the struct macros 2016-02-17 01:13:43 +11:00
Matthew Waters
16510e2cbc vkswapper: use buffer memory to upload video frames to the GPU 2016-02-17 01:13:43 +11:00
Matthew Waters
bd41cc4557 vulkan: add a buffer memory allocator
Wraps the VkBuffer in a GstMemory subclass.
2016-02-17 01:13:43 +11:00
Matthew Waters
eb3f6eebce vkmemory: align struct members in the header 2016-02-17 01:13:43 +11:00
Matthew Waters
a2ad5d9eac vkmacros: use specific _INIT macros to initialize structures 2016-02-17 01:13:43 +11:00
Matthew Waters
6731fad9af vkimagememory: add get_{width,height) functions 2016-02-17 01:13:43 +11:00
Matthew Waters
08fd5c2ae5 vulkan: update to release 1.0.1.1 2016-02-17 01:13:43 +11:00
Matthew Waters
700eb16af8 vulkan/xcb: flush after mapping the window
Otherwise the map may not reach the server and not appear.
2016-02-17 01:13:43 +11:00
Matthew Waters
28ad97059d vkswapper: fix semaphore usage 2016-02-17 01:13:43 +11:00
Matthew Waters
0ee8fe193e vulkan: add some debugging about the supported extensions 2016-02-17 01:13:43 +11:00
Matthew Waters
72e956fe5e vkswapper: get the function pointers from the correct object
GetPhysicalDevice* functions are instance functions rather than device
functions.
2016-02-17 01:13:43 +11:00
Matthew Waters
d067ed8a9e vkinstance: add the necessary winsys extension 2016-02-17 01:13:43 +11:00
Matthew Waters
3ed50f36ed vkdisplay: forward declare GstVulkanDisplayType 2016-02-17 01:13:43 +11:00
Matthew Waters
f0fb45dd76 vkapi: remove unneeded headers
vkapi is for accessing the vulkan headers with the correct defines applied so
doesn't need any interal headers.
2016-02-17 01:13:43 +11:00
Matthew Waters
873e0d6340 vkimagememory: fix the memory barrier access masks
silences the following warnings from the validation layer

AccessMask xxx must have required access bit xxx and may have optional bits 0
when layout is VK_IMAGE_LAYOUT_TRANSFER_{SRC,DST}_OPTIMAL
2016-02-17 01:13:43 +11:00
Matthew Waters
9a0f415e79 vkswapper: only wait on the semaphore once
It's invalid usage and we may deadlock
2016-02-17 01:13:43 +11:00
Matthew Waters
2f11fc029d vkimagememory: initialize flags and don't crash on errors 2016-02-17 01:13:43 +11:00
Matthew Waters
b38362e75f vulkan: update error db for 0.10.2 2016-02-17 01:13:43 +11:00
Matthew Waters
6fe59754df vulkan: update to SDK 0.10.2 2016-02-17 01:13:43 +11:00
Matthew Waters
996200ffc0 vulkan: implement GstContext helpers
Based off libgstgl's implementation
2016-02-17 01:13:43 +11:00
Matthew Waters
75aaf184bb vkdevice: remove gst_vulkan_device_close()
When sharing the device between multiple elements/application, we need
to use th erefcount to know when to close the device.
2016-02-17 01:13:43 +11:00
Matthew Waters
5dd530daec vkinstance: remove gst_vulkan_instance_close
Sharing the instance across multiple elements/application will require
using the refcount instead to know when to close and destroy the instance.
2016-02-17 01:13:43 +11:00
Matthew Waters
203c6fa55c vkswapper: remove outdated comment 2016-02-17 01:13:43 +11:00
Matthew Waters
8819319ad1 vkswapper: always match lock/unlock of the render lock
If a draw event comes from the winsys before we've rendered a buffer we were
deadlocking.
2016-02-17 01:13:43 +11:00
Matthew Waters
a4e82bcef7 vkmemory: debug output the memory properties requested 2016-02-17 01:13:43 +11:00
Matthew Waters
87a35f679d vkimagememory: don't leak GstMapInfo in failure cases on _map() 2016-02-17 01:13:43 +11:00
Matthew Waters
074cb047ef vulkan: de-C99 struct declarations 2016-02-17 01:13:43 +11:00
Matthew Waters
a4476fa24b vkwindow/swapper: implement redraw handling
only xcb has been implemented
2016-02-17 01:13:43 +11:00
Matthew Waters
216a321319 vulkan: implement quitting and resizing the window
As before, only xcb has been implemented.
2016-02-17 01:13:43 +11:00
Matthew Waters
5de6dd9f40 new vulkan based video sink
Currently xcb is the only winsys that is implemented and there's no redraws et
al
2016-02-17 01:13:43 +11:00
Tim-Philipp Müller
08d8aefcda mpg123: move plugin from -bad to -ugly
https://bugzilla.gnome.org/show_bug.cgi?id=719849
2016-02-16 11:00:55 +00:00
Matthew Waters
057aca2cda gtk(gl)sink: remove the signal handlers on finalize
It's possible that the sink element will be freed before the widget is
destroyed.  When the widget was eventually destroyed, it was attempting to
access member variables of the freed sink struct which resulted in undefined
behaviour.

Fix by disconnecting our signal on finalize.

https://bugzilla.gnome.org/show_bug.cgi?id=762098
2016-02-16 20:09:08 +11:00
Alessandro Decina
effe132310 glvideoflip: don't ignore method changes when caps aren't set (yet) 2016-02-16 13:06:20 +11:00
Florin Apostol
88e21e6089 dashdemux: gst_dash_demux_get_live_seek_range returns positive values
https://bugzilla.gnome.org/show_bug.cgi?id=752374
2016-02-10 14:34:48 -03:00
Julien MOUTTE
2b457a46a0 rtpmsink: Implement setcaps that uses streamheader
This allow adding rtmpsink after the flv streaming have started. Otherwise,
FLV streamheader is never sent to the server, which cannot figure-out
what is this stream about. It should also help in certain renegotiation
figures. The sink will no longer work without an streamheader in caps,
though there is no known implementation of flvdemux that does not
support this.

https://bugzilla.gnome.org/show_bug.cgi?id=760242
2016-02-09 19:35:22 -05:00
Luis de Bethencourt
8d445ee758 mssdemux: remove unnecessary check
stream->current_fragment has the value of g_list_previous (iter) which has
just been checked. No need to check it again.

Just to be safe, use a g_assert() to check fragment before dereferencing.

CID #1352041
2016-02-09 21:41:33 +00:00
Thiago Santos
632111ae14 dashdemux: plug mpd client leak
On parsing error, free the mpd client object

https://bugzilla.gnome.org/show_bug.cgi?id=760120
2016-02-09 17:30:14 -03:00
Florin Apostol
3191051828 dashdemux: fix memory leak in gst_dash_demux_update_manifest_data
new_client local variable was not freed in case of errors.
Also, the buffer is not unmapped.

https://bugzilla.gnome.org/show_bug.cgi?id=760120
2016-02-09 17:05:13 -03:00
Florin Apostol
9ccd541980 mpdparser: renamed gst_mpd_client_get_next_segment_availability_end_time to gst_mpd_client_get_next_segment_availability_start_time
The function actually returns the segment availability start time (as defined by the standard).
That is at the end of the segment, but it is called availability start time.

Availability end time is something else (the time when the segment is no longer
available on the server). The function name was misleading.

https://bugzilla.gnome.org/show_bug.cgi?id=757655
2016-02-09 16:49:37 -03:00
Florin Apostol
b96ea72b4f mpdparser: corrected getting segment availability
https://bugzilla.gnome.org/show_bug.cgi?id=757655
2016-02-09 16:35:44 -03:00
Matthew Waters
cd4a93da3b glsyncmeta: separate out gpu/cpu waits.
CPU waits are more expensive and are only required if the CPU is ever going to
access the data. GPU waits perform inter-context synchronisation and are cheaper
as they don't require CPU intervention.
2016-02-09 12:30:25 +11:00
Luis de Bethencourt
ae96e6bd51 resindvd: remove commented out include
Commit 211828979b removed rsnaudiomunge,
no need for this commented out include for a file that doesn't exist
anymore.
2016-02-08 15:00:45 +00:00
Luis de Bethencourt
e4467618f4 Revert "resindvd: get rid of _stdint.h include"
This reverts commit 0eff6e1991.

Breaks the build when linking with dvdnav.h
2016-02-08 14:26:46 +00:00
Luis de Bethencourt
bca503a2c4 x265enc: get rid of _stdint.h include
It was never needed since it doesn't use any standard integer fixed width
types. Only the Glib types.
2016-02-08 13:43:24 +00:00
Luis de Bethencourt
0eff6e1991 resindvd: get rid of _stdint.h include 2016-02-08 13:38:29 +00:00
Matthew Waters
4d8a8b3925 gleffects: identity: add the shader to the hash table
So that we don't recreate it every frame and leak memory.

https://bugzilla.gnome.org/show_bug.cgi?id=761578
2016-02-08 12:24:32 +11:00
Thiago Santos
ac2734f5cb mssdemux: implement snap seeking
Implement snap seek flags handling in stream_seek to allow the
parent class to handle it for us

https://bugzilla.gnome.org/show_bug.cgi?id=759158
2016-02-04 14:20:16 -03:00
Thiago Santos
c01d266238 mssdemux: use correct seek position on reverse seeks
Otherwise it was always using the 'start' value, leading to wrong
behavior
2016-02-04 14:20:16 -03:00
Thiago Santos
1b12d7f8a3 mssdemux: only update download position if the seek requests to
Some seeks are only updating the stop position, there is no need
to change the current downloading position.
2016-02-04 14:20:16 -03:00
Thiago Santos
86fb14f5ed mssdemux: do not assert on fragment reloads for non-live
It can be used as a resource to verify if the server has updated
something in the Manifest when downloads are failing
2016-02-04 14:20:16 -03:00
Thiago Santos
40faf9e09b dashdemux: implement snap seek handling
Handle snap seeking at the stream_seek method and let superclass
do the rest to support snap seeking

https://bugzilla.gnome.org/show_bug.cgi?id=759158
2016-02-04 14:09:35 -03:00
Thiago Santos
731ab94cc3 adaptivedemux: handle snap seeks
Adaptive demuxers need to start downloading from specific positions
(fragments) for every stream, this means that all streams can snap-seek
to a different position when requested. Snap seeking in this case will
be done in 2 steps:

1) do the snap seeking on the pad that received the seek event and
   get the final position

2) use this position to do a regular seek on the other streams to
   make sure they all start from the same position

More arguments were added to the stream_seek function, allowing better control
of how seeking is done. Knowing the flags and the playback direction allows
subclasses to handle snap-seeking.
And also adds a new return parameter to inform of the final
selected seeking position that is used to align the other streams.

https://bugzilla.gnome.org/show_bug.cgi?id=759158
2016-02-04 14:05:08 -03:00
Vincent Penquerc'h
730d92ea8d opus: fix FEC
FEC may only be used when PLC is enabled on the audio decoder,
as it relies on empty buffers to generate audio from the next
buffer. Hooking to the gap events doesn't work as the audio
decoder does not like more buffers output than it sends.

The length of data to generate using FEC from the next packet
is determined by rounding the gap duration to nearest. This
ensures that duration imprecision does not cause quantization
to 2.5 milliseconds less than available. Doing so causes the
Opus API to fail decoding. Such duration imprecision is common
in live cases.

The buffer to consider when determining the length of audio
to be decoded is the previous buffer when using FEC, and the
new buffer otherwise. In the FEC case, this means we determine
the amount of audio from the previous buffer, whether it was
missing or not (and get the data either from this buffer, or
the current one if the previous one was missing).
2016-02-03 16:36:10 +00:00
Matthew Waters
81692a99f3 gltransformation: reconfigure the src when changing to/from passthrough
Otherwise it's very possible that any GL resources have not been created yet.
2016-02-03 17:16:39 +11:00
Matthew Waters
189ece1dc2 glvideoflip: correctly update the output caps on method changes
When changing methods we may need different output caps.
2016-02-03 12:22:08 +11:00
Vincent Penquerc'h
36125a844d opusdec: fix wrong buffer being checked for missing data
This caused a decoding error if the resulting (wrong) buffer size
was passed to the Opus decoding API.

https://bugzilla.gnome.org/show_bug.cgi?id=758158
2016-02-02 15:22:55 +00:00
Thiago Santos
d4b4069041 dashdemux: only update current reading position when needed
If the seek doesn't set the start/stop position, no need to
reposition the download index.
2016-02-01 14:36:48 -03:00
Thiago Santos
fc72e48a48 dashdemux: respect seeking parameter
Instead of using the segment values, use the parameter
requested in the seeking argument
2016-02-01 14:36:48 -03:00
Alessandro Decina
bc2ffa26fa gldownload: allow video/x-raw as input
...and just passthrough. This is useful for pipelines where downstream must be
non-GL but upstream can optionally be GL.
2016-02-01 15:13:03 +11:00
Wang Xin-yu (王昕宇)
7287564f20 glvideomixer: fix checker vbo leak
https://bugzilla.gnome.org/show_bug.cgi?id=760925
2016-02-01 13:55:05 +11:00
Tim-Philipp Müller
8d9ab6cfc2 Remove dead snapshot plugin
Was never ported and doesn't look like
we want it or need it in this form, can
do the same with the libgstvideo sample
conversion utility API now, but better
and in a more flexible way.
2016-02-01 01:01:10 +00:00
Tim-Philipp Müller
1d4f136ac9 rsvg: bump requirement to 2.36.2
Which allows us to simplify the configure check and
some special-casing in the code, and is plenty old
in any case.
2016-02-01 00:50:46 +00:00
Tim-Philipp Müller
cf0bec6385 Remove dead libfame plugin
Was never even ported to 0.10, and the lib
has been unmaintained for ever and doesn't
even seem to be packaged any more.
2016-02-01 00:32:50 +00:00
Tim-Philipp Müller
0b4a3a4dbd Remove dead audiofile plugin
This was never even ported to 0.10.
2016-01-31 19:09:57 +00:00
Tim-Philipp Müller
914291808a Remove gsettings plugin which was never ported
Don't think we need this any longer or want to
support it, and clearly no one has been missing
it all these years either, so let's just get rid
of it.
2016-01-31 19:07:46 +00:00
Tim-Philipp Müller
be03c0a7ed smoothstreaming: remove unused dependency on uridownloader 2016-01-31 16:02:33 +00:00
Tim-Philipp Müller
861ca5ab7b faad: simplify configure check and require faad >= 2.7
Just check whether LATM is defined which is only available
in 2.7 and later. Allows us to simplify the configure check
a little and we can get rid of some hackish workarounds for
problems with earlier version headers.
2016-01-31 14:42:21 +00:00
Haihua Hu
f3653a5e9c gleffects: fix gleffects fisheye shader compile error
On some embedded systems, sqrt() is not supported in the shader,
use the actual value of sqrt(2) instead.

Signed-off-by: Haihua Hu <b55597@freescale.com>
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=761271
2016-01-29 14:25:21 +11:00
Matthew Waters
5d304e6a14 glvideomixer: par may not exist in the caps
Fixes a critical in the gst-validate tests:

gst_structure_fixate_field_nearest_fraction: assertion 'gst_structure_has_field
(structure, field_name)
2016-01-29 14:03:26 +11:00
Matthew Waters
87031b14cb videoaggregator: don't do caps processing that is not overridable
Allows the subclass to completely override the chosen src caps.

This is needed as videoaggregator generally has no idea exactly
what operation is being performed.

- Adds a fixate_caps vfunc for fixation
- Merges gst_video_aggregator_update_converters() into
  gst_videoaggregator_update_src_caps() as we need some of its info
  for proper caps handling.
- Pass the downstream caps to the update_caps vfunc

https://bugzilla.gnome.org/show_bug.cgi?id=756207
2016-01-27 20:36:25 +11:00
Matthew Waters
63a564be96 glcolorbalance: return HARDWARE from get_balance_type 2016-01-27 20:24:37 +11:00
Matthew Waters
0fe34bfc1d glsinkbin: add glcolorbalance element
This makes playbin not plug videobalance as glcolorbalance already exists and
implements the GstColorBalance interface.
2016-01-27 20:24:37 +11:00
Matthew Waters
8c549633ee gl: move control binding proxy implementation from glvideomixer
Other elements may need to use it's functionality
2016-01-27 20:01:25 +11:00
Matthew Waters
5c4e724f70 glcolorbalance: create the shader if it doesn't exist in the render callback
Changing the properties may result in glcolorbalance moving from passthrough to
non-passthrough and we weren't creating the shader in that case.
2016-01-27 18:17:06 +11:00
Matthew Waters
6ab40e8531 qt: specify that we currently only take 2D textures
Fixes black screen video playback on android without a caps filter.
2016-01-27 16:13:28 +11:00
Matthew Waters
3cf98f7e5e glvideoflip: incorporate the aspect ratio into the scale_x calculations
1. Otherwise rotating the video will clip and show black bars due to
   gltransformation's implementation.
2. The other option of make gltransformation aspect-agnostic produces
   incorrect output with perspective transformations.
2016-01-27 16:13:28 +11:00
Luis de Bethencourt
a152a8342b opencv: add mask property to cvlaplace
Add a "mask" property that sets whether the edges by cvLaplace should be
used as a mask on the original input or not. The same way the original
image is copied to the edges in edgedetect.
2016-01-25 22:30:44 +00:00
Luis de Bethencourt
9301d5874a opencv: add mask property to cvsobel
Add a "mask" property that sets whether the detected derivative edges
should be used as a mask on the original input or not. The same way
the original image is added to the edges in edgedetect.
2016-01-25 21:43:09 +00:00
Luis de Bethencourt
e90b383060 opencv: update deprecated function in skindetect
cvCvtPixToPlane() has been deprecated in OpenCV 3.0, and cvSplit() is the
suggested replacement. Since cvSplit() is available in OpenCV 2.4, it is
safe and cautious to update the function usage before it becomes an issue.
2016-01-25 15:23:10 +00:00
Luis de Bethencourt
36e83661ec opencv: fix cvlaplace
cvlaplace was also affected by the silent change in OpenCV API, same as
cvsobel. It hasn't been working for a while. It would return a plain black
image. This commit updates the usage of cvLaplace by using cvCvtColor to
create the grayscale intermediate image to process. This also means there
is no need anymore to use GstBaseTransform's transform_caps, since the pads
are RGB.
2016-01-25 14:20:14 +00:00
Luis de Bethencourt
e294866bd7 opencv: fix cvsobel
cvsobel han't been working for a while due to a silent change in OpenCV
API. It would return a plain black image. This commit updates the usage
of cvSobel by using cvCvtColor to create the grayscale image to process.
This also means there is no need to use GstBaseTransform's transform_caps
anymore, since the pads can be RGB.
2016-01-24 23:19:18 +00:00
John Chang
8e788f2845 mpdparser: Use RepresentationIndex instead of Initialization to get the URL of the RepresentationIndex
https://bugzilla.gnome.org/show_bug.cgi?id=760936
2016-01-22 17:45:26 +02:00
Sebastian Dröge
5b04e77c0c spandsp: Add tone generator 2016-01-21 16:53:41 +02:00
Tim-Philipp Müller
6e79d54ae5 gl: fix compiler warnings with gcc-6
In file included from effects/gstgleffectrgbtocurve.c:25:0:
effects/gstgleffectscurves.h:174:32: error: 'xray_curve' defined but not used
 static const GstGLEffectsCurve xray_curve = {
...
2016-01-19 13:20:23 +00:00
Florin Apostol
88f509a710 dashdemux: added check that availabilityStartTime is present for live streams
https://bugzilla.gnome.org/show_bug.cgi?id=757602
2016-01-18 15:12:07 -03:00
Florin Apostol
2918dff2e0 adaptivedemux: improved error message if availabilityStartTime is missing for a live stream
For a live mpd, if availabilityStartTime is missing, adaptive demux asserts
with: Unexpected critical/warning: gst_date_time_to_g_date_time: assertion
'datetime != NULL' failed.

This patch improves the error message to:
Unexpected critical/warning: gst_mpd_client_seek_to_time: assertion
'client->mpd_node->availabilityStartTime != NULL' failed

https://bugzilla.gnome.org/show_bug.cgi?id=757602
2016-01-18 15:12:07 -03:00
Thiago Santos
b7a0be23c6 adaptivedemux: replace ghostpad with a standard pad
Handling the ghostpad and its internal pad was causing more issues
than helping because of their coupled activation/deactivation
actions.

As we have to install custom chain,event and query functions it is
better to use a floating sink pad internally in the demuxer and just
use those pad functions to push through a standard pad in the demuxer

https://bugzilla.gnome.org/show_bug.cgi?id=757951
2016-01-15 11:32:37 -03:00
Sergey Borovkov
155f0acfab qml: Mark material dirty when texture buffer is updated
Qt might not redraw the scene otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=758286
2016-01-15 14:11:52 +11:00
Matthew Waters
0b9ae1f1d6 gl: add a videoflip element
Behaves exactly the same as the non-GL videoflip element
2016-01-15 12:05:03 +11:00
Matthew Waters
198d451f31 gltransformation: always build a valid mvp matrix
The default case is to build an identity matrix.
2016-01-15 12:05:02 +11:00
Matthew Waters
f721499371 gltransformation: support negative scales
A scale of -1.0 means to flip the video.
2016-01-15 12:05:02 +11:00
Matthew Waters
12f013c8d7 gltransformation: implement passthrough handling 2016-01-15 12:05:02 +11:00
Matthew Waters
066f0dcda0 gltransformation: implement navigation events
Reverses the transformation applied through the properties and forwards the
event.

The process for finding the coordinates on the video are as follows:
1. Convert the given pointer_x and pointer_y to model space at the near and far planes
2. Get the equation of the video plane
3. Find where the ray in 1 intersects the plane
4. Profit!
2016-01-15 12:04:59 +11:00
Matthew Waters
4cfb6b9166 glimagesink: remove reduntant glimagesink from debug logging 2016-01-14 17:52:23 +11:00
Matthew Waters
1bb2985777 gl: implement a colorbalance element
It performs the exact same operation as videobalance but with opengl shaders and
was tested with glvideomixer by comparing frames from videobalance and
glcolorbalance.
2016-01-13 12:00:03 +11:00
Matthew Waters
ceec4ad873 glvideomixer: implement glBlendFunc and glBlendEquation
Allows more blending options than just A over B

e.g. frame comparisons are now possible.
  glvideomixer name=m
    sink_0::zorder=0
    sink_1::zorder=1
    sink_1::blend-equation-rgb={subtract,reverse-subtract}
    sink_1::blend-function-src-rgb=src-color
    sink_1::blend-function-dst-rgb=dst-color
  ! glimagesinkelement
  videotestsrc pattern=checkers-4 ! m.sink_0
  videotestsrc pattern=checkers-8 ! m.sink_1
2016-01-13 12:00:03 +11:00
Tim Sheridan
95a14fd470 sbc: sbcdec: Fix frame length calculation
SBC frame length calculation wasn't being rounded up to the nearest byte
(as specified in the A2DP 1.0 specification, section 12.9). This could
cause 'stereo' and 'joint stereo' mode SBC streams to have incorrectly
calculated frame lengths.

https://bugzilla.gnome.org/show_bug.cgi?id=742446
2016-01-12 21:45:05 +00:00
Luis de Bethencourt
8c7ea6fb87 opencv: remove check for OpenCV version
After commit 64080e632, configure checks for all the header files that
should be available in OpenCV 2.3 and later. If any of these files isn't
there the OpenCV elements won't be part of the build.

No need to recheck for opencv2/legacy/legacy.hpp again in
gstpyramidsegment.h. Minimum supported OpenCV version must have this header
and configure already checks for it. Removing check.
2016-01-08 17:12:04 +00:00
Luis de Bethencourt
94c07ed229 opencv: always do cvsmooth in place
After the update to new OpenCV API the transform function using an out
buffer is not necessary. We can always do the transformation in place.
2016-01-08 15:01:52 +00:00
Luis de Bethencourt
14dd6b7088 opencv: do pyramidsegment's transformation in place
Run the transform function of pyramidsegment in place, reusing the image
data as both source and destination in cvPyrSegmentation. This avoids
copying the image back and forth and the extra memory.
2016-01-08 12:39:55 +00:00
Tim-Philipp Müller
17f0faa368 hlsdemux: put boolean values into gboolean variables
And remove superfluous assignments.
2016-01-06 15:25:04 +00:00
Thiago Santos
bf57be7fc7 hlsdemux: fix reverse playback seek with snap flags
Properly handle snap flags during reverse seeking. In this case
the before/after are also reversed, so handle those as such.

For example: with a sequence of 1s fragments:

|-- 0 --|-- 1 --|-- 2 --|-- 3 --|

If you seek to 1.5s it is inside fragment 1. With reverse and

snap-before: should play from the end of fragment 1
snap-after: should play from the end of fragment 0
2016-01-06 10:23:13 -03:00
Thiago Santos
5d87f68f6c hlsdemux: simplify snap flags checking
Replace:
if (boolean) var = true;

with:
var = (boolean);
2016-01-06 10:23:13 -03:00
Thiago Santos
b8e0c365c4 hlsdemux: respect keyunit flag for position
Set the segment start position when keyunit flag is active
2016-01-06 10:23:13 -03:00
Matthew Waters
519280204c glcolorconvert: implement usage of a buffer pool
Saves unnecessary glGenTextures and glDeleteTextures which may have a
non-trivial cost.
2016-01-06 16:48:33 +11:00
Reynaldo H. Verdejo Pinochet
8c78a79c67 rtmp: refer to both elements in the README 2015-12-30 18:00:47 -08:00
Reynaldo H. Verdejo Pinochet
00587eb561 rtmpsrc: check for failed RTMP context alloc
Avoids an unlikely crash.

Arguably, if allocation fails we have no chance of
recovering but nonetheless, RTMP_Alloc can fail and
librtmp's RTMP_init() (called next) assumes a non-NULL
pointer is passed without checking.

Additionally, unify exit path on error.
2015-12-30 17:22:54 -08:00
Reynaldo H. Verdejo Pinochet
17da1ad409 rtmpsink: check for failed RTMP context alloc
Avoids an unlikely crash.

Arguably, if allocation fails we have no chance of
recovering but nonetheless, RTMP_Alloc can fail and
librtmp's RTMP_init() (called next) assumes a non-NULL
pointer is passed without checking.

Additionally, unify exit path on error.
2015-12-30 17:22:42 -08:00
Reynaldo H. Verdejo Pinochet
4b93a7167f rtmp: correct librtmp log-level mappings
Additionally, move to a switch in _set_debug_level()
to make easier to follow and compare with the
mappings in _log_callback()
2015-12-30 16:12:27 -08:00
Matthew Waters
8c02a47741 gleffects: fix shader compilation with legacy opengl
All the gleffects shaders can be run against a gles2 or a legacy opengl glsl
compiler but weren't being advertised as such.

Fixes gleffects under desktop opengl < 3.2.
2015-12-30 12:16:29 +11:00
Florin Apostol
ef06d2a855 dashdemux: removed unnecessary space trimming in gst_dash_demux_parse_http_head
sscanf has removed all spaces when it has constructed zone string. There is
no need to search for leading spaces.

https://bugzilla.gnome.org/show_bug.cgi?id=759743
2015-12-28 14:10:58 +02:00
Florin Apostol
09b21eacae dashdemux: accept 2 or 4 digit year when using HTTP HEAD for calculating clock compensation
Convert year from 2 digits to 4 digits in gst_dash_demux_parse_http_head

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

Also updated references to Rfc822 to Rfc5322
2015-12-28 14:10:58 +02:00
Florent Thiéry
15a28c8024 glshader: fix usage doc
The property location has been changed in favor of vertex/fragment
string properties; the doc had not been updated and was still referring
to the previous property; also, now the #version header has become mandatory

https://bugzilla.gnome.org/show_bug.cgi?id=759902
2015-12-28 10:43:56 +02:00
Florent Thiéry
c68e842ed0 glimagesink: Post unhandled navigation events on the bus
Based off xvimagesink implementation

https://bugzilla.gnome.org/show_bug.cgi?id=759869
2015-12-28 10:04:33 +02:00
Reynaldo H. Verdejo Pinochet
77b7864670 motioncells: fix splitting of RGB color string
No need to attempt splitting the RGB string in 255 tokens
if we only expect 3.

Left max_tokens at 4 to preserve the current logic (which
allows for extra stuff at the end) and added a warning on
parsing failure instead of silently discarding the value.
2015-12-27 23:26:50 -08:00
Reynaldo H. Verdejo Pinochet
5515a96167 motioncells: fix typo in header 2015-12-27 23:26:50 -08:00
Reynaldo H. Verdejo Pinochet
c0ced1590d motioncells: fix misleading warning message
calculate_motion != FALSE means the motion computation
logic is disabled, not a mapping error.
2015-12-27 23:26:50 -08:00
Reynaldo H. Verdejo Pinochet
8f3392ba44 motioncells: rework property descriptions 2015-12-27 23:26:50 -08:00
Reynaldo H. Verdejo Pinochet
c788678059 motioncells: use NULL instead of g_strdup(NULL) 2015-12-27 23:26:50 -08:00
Alex Ashley
f6bff8f5f5 hlsdemux: unquote all the quoted-string attributes
The URI attribute from the EXT-X-KEY tag and the URI attribute from the
EXT-X-I-FRAMES-ONLY tag are both quoted-string attibutes that have their
quotation marks removed during parsing. The CODECS attribute of the
EXT-X-STREAM-INF is also a quoted-string attribute, but this attribute
was not being un-quoted.

This commit changes the parser to always unquote all quoted-string
attributes and adjusts the unit tests to this new bevahiour for the
CODECS attribute.

An additional test is added to check that parsing of all of the fields
in the EXT-X-STREAM tag is correct, including those that contain comma
characters.

https://bugzilla.gnome.org/show_bug.cgi?id=758384
2015-12-22 11:15:32 -03:00
Thiago Santos
a072101441 hlsdemux: make sure every bad update_playlist return sets an error
Otherwise it segfaults when reporting the error in the bus
2015-12-22 10:16:16 -03:00
Sebastian Dröge
11729cde80 teletextdec: Use NULL instead of g_strdup('\0')
Which is equivalent to g_strdup(NULL).

https://bugzilla.gnome.org/show_bug.cgi?id=759728
2015-12-21 13:57:04 +01:00
Tim-Philipp Müller
384987341b assrender, dvbsuboverlay: fix example pipelines in docs 2015-12-19 21:25:49 +00:00
Tim-Philipp Müller
d5e115171b hlsdemux: reflow update_playlist a bit
Reduce indentation by erroring out directly on failure.
2015-12-19 21:12:17 +00:00
Tim-Philipp Müller
8be5551dff hlsdemux: fix potential error leak
Clear error as soon as we determine that the download failed,
otherwise there are code paths where we might return without
clearing it ever, which would leak the GError then. Also, we
can pass a NULL GError pointer to _fetch_uri(), so just do that
instead of passing one that we're going to just free again
right away anyway.
2015-12-19 21:06:02 +00:00
Luis de Bethencourt
d59413ba06 opencv: remove unneeded sink_event function in pyramidsegment 2015-12-19 12:05:59 +00:00
Luis de Bethencourt
83b5fe74c2 opencv: remove unneeded sink_event function in textoverlay 2015-12-19 12:04:01 +00:00
Thiago Santos
fa2c220693 templatematch: remove useless function 2015-12-18 18:52:12 -03:00
Thiago Santos
29de588e2f hlsdemux: always set timestamp on reverse playback
Downstream needs to be able to restore the timestamps after a discont
to do reverse playback

https://bugzilla.gnome.org/show_bug.cgi?id=759592
2015-12-18 18:52:03 -03:00
Lubosz Sarnecki
ebeae8bcdb glimagesink: Show error when video frame is not mapped.
Adds more meaningful error than
"Failed to convert multiview video buffer", which is always used
when prepare_next_buffer() fails in gst_glimage_sink_prepare().

https://bugzilla.gnome.org/show_bug.cgi?id=743345
2015-12-18 15:56:34 -05:00
Luis de Bethencourt
fa1775acee opencv: update opencvtextoverlay to GstOpencvVideoFilter
Update opencvtextoverlay to inherit from GstOpencvVideoFilter instead of
from GstElement. This means less code and more uniformity with other OpenCV
elements. The chain/transform function is now a third of the size than
before.
2015-12-18 16:56:18 +00:00
Luis de Bethencourt
8b6ea95bee opencv: update templatematch to GstOpencvVideoFilter
Update pyramidsegment to inherit from GstOpencvVideoFilter instead of from
GstElement. This means less code and more uniformity with other OpenCV
elements.
2015-12-18 16:18:56 +00:00
Luis de Bethencourt
cdaedd74db opencv: update pyramidsegment to GstOpencvVideoFilter
Update pyramidsegment to inherit from GstOpencvVideoFilter instead of from
GstElement. This means less code and more uniformity with other OpenCV
elements.
2015-12-18 15:48:29 +00:00
Luis de Bethencourt
40d0c1aec0 opencv: update motioncells to GstOpencvVideoFilter
Update motioncells to inherit from GstOpencvVideoFilter instead of from
GstElement. This means less code and more uniformity with other OpenCV
elements.
2015-12-18 12:42:25 +00:00
Alessandro Decina
6961945110 glmemory: add gst_gl_memory_allocator_get_default
Add gst_gl_memory_allocator_get_default to get the default allocator based on
the opengl version. Allows us to stop hardcoding the PBO allocator which isn't
supported on gles2.

Fixes GL upload on iOS9 among other things.
2015-12-18 14:25:32 +11:00
Matthew Waters
a3ebe19d87 glimagesink: don't deadlock on resize
Performing any GL function marshalling off the GL thread with glimagesink's
render lock is prone to deadlocks between the GL thread and the non-GL thread.

What can happen is this:
1. non-GL thread attempts to function marshal to the GL thread.
2. while 1 is happening, the winsys gives an event (say resize)
3. This calls back into glimagesink which taks the render lock.
4. As the GL function marshalling is attempting to run on the GL
   and already has glimagesink's render lock locked.  This deadlocks
   as the threads are waiting for each other.
2015-12-18 11:57:07 +11:00
Luis de Bethencourt
ae0b8e060e opencv: update edgedetect to GstOpencvVideoFilter
Update edgedetect to inherit from GstOpencvVideoFilter instead of from
GstElement. This means less code and more uniformity with other OpenCV
elements.
2015-12-17 18:27:01 +00:00
Sebastian Dröge
9b4611ccae openjpegdec: Don't crash when decoding returns NULL data for any component
https://bugzilla.gnome.org/show_bug.cgi?id=758943
2015-12-17 15:57:57 +01:00
Luis de Bethencourt
98784aa72c opencv: add blur and bilateral support in cvsmooth
Adding the support for the two other OpenCV linear filters to smooth
images. The new API does support spatial sigma in the bilateral filter,
hence bringing that property back.

Adding reference to new documentation.
2015-12-17 10:15:48 +00:00
Matthew Waters
779dc3132c glmemorypbo: remove our own alloc()/wrapped()/etc functions
replaced by equivalent functionality within gst_gl_base_memory_alloc()
2015-12-17 13:49:56 +11:00
Luis de Bethencourt
c805b15491 opencv: add medianBlur support in cvsmooth
With the deprecation of cvSmooth we have to handle the other smoothing
functions manually.
2015-12-16 19:37:58 +00:00
Luis de Bethencourt
ad1b36321a opencv: switch deprecated cvSmooth for GaussianBlur
The OpenCV cvSmooth function is deprecated [0] and the documentation
recommends to use GaussianBlur (). This makes the spatial property go
unused. Marking it as deprecated, making it non-functional and will remove
in the next cycle.

[0] http://docs.opencv.org/2.4/modules/imgproc/doc/filtering.html
2015-12-16 19:37:58 +00:00
Florin Apostol
b2e689890f dashdemux: improve validation of UTCtiming element
gst_mpdparser_parse_utctiming_node does not validate the parsed values completely. The following scenarios are incorrectly accepted:
- elements with no schemeIdUri property should be rejected
- elements with unrecognized UTCTiming scheme should be rejected
- elements with empty values should be rejected

The last one triggers a division by 0 in gst_dash_demux_poll_clock_drift:
clock_drift->selected_url = clock_drift->selected_url % g_strv_length (urls);
because it urls is a valid pointer to an empty array.

https://bugzilla.gnome.org/show_bug.cgi?id=759547
2015-12-16 17:19:50 +01:00
Florin Apostol
f85fc4a543 dashdemux: clock_cond is not used and should be removed
There are no threads waiting on clock_cond. It is just initialised and
signalled. It should be removed.

https://bugzilla.gnome.org/show_bug.cgi?id=759537
2015-12-16 11:45:21 +01:00
Florin Apostol
7c1b511e96 adaptivedemux: fixed clock compensation in get_fragment_waiting_time
Clock compensation is calculated in usec but is added to a GstClockTime value.

https://bugzilla.gnome.org/show_bug.cgi?id=759534
2015-12-16 11:36:35 +01:00
Nicolas Dufresne
516047f66f qtsink: Add configured GL cflags to the build
We don't directly link to GL in the element, though we use GL headers.
For this reason we need to include the proper GL headers path. This
prevent this element from using a different GL header then libgstgl.
2015-12-15 19:28:22 -05:00
Luis de Bethencourt
34faa2d79a opencv: pyramidsegment: fix example launch line
Use videotestsrc and autovideosink in the example gst-launch-1.0 line and
not a useless fakesrc-fakesink example.
2015-12-15 20:55:06 +00:00
Luis de Bethencourt
0988226522 opencv: add headers with example launch lines
Add description headers for all the OpenCV plugins missing them, so we can
have gst-launch-1.0 example launch lines for all of them.
2015-12-15 20:55:00 +00:00
Vineeth TM
7c42ba97d7 plugins-bad: Fix example pipelines
rename gst-launch --> gst-launch-1.0
replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**)
fix caps in examples

https://bugzilla.gnome.org/show_bug.cgi?id=759432
2015-12-15 10:30:49 +00:00
Matthew Waters
2b7495bbc1 glmemory: base classify and add the pbo memory on top
The base class is useful for having multiple backing memory types other
than the default.  e.g. IOSurface, EGLImage, dmabuf?

The PBO transfer logic is now inside GstGLMemoryPBO which uses GstGLBuffer
to manage the PBO memory.

This also moves the format utility functions into their own file.
2015-12-14 16:35:32 +11:00
Matthew Waters
50337e601e gldownload: remove helper api from the library
It was never used by anyone and is not needed anymore with the element
and GstGLMemory's transparent support for downloading textures.
2015-12-14 13:55:16 +11:00
Luis de Bethencourt
447c1b1395 opencv: clean includes
The opencv element includes were full of duplicates and uneeded headers.
For example a few elements that stopped using gstcvopencvutils still
included that header file.
2015-12-12 20:09:15 +00:00
Luis de Bethencourt
892d8d515f opencv: remove unused functions in gstopencvutils
Since commit 45ca8876b2 nobody is using
gst_opencv_get_ipl_depth_and_channels() or
gst_opencv_parse_iplimage_params_from_structure(). Remove this dead
code.
2015-12-12 19:31:55 +00:00
Luis de Bethencourt
2acdb01bc9 motioncells: Remove unused includes 2015-12-12 19:13:42 +00:00
Matthew Waters
e602e4a1cc gltransformation: clear to transparent
Otherwise composition will result in a black frame outside the transformed
video.
2015-12-12 09:33:38 +11:00
Duncan Palmer
612f16936c hlsdemux: add support for seeking to fragment boundaries
Setting the seek flags to GST_SEEK_FLAG_SNAP_* will change the seek
target time to a segment boundary.

Based on original work by Ben Willers <bwillers@digisoft.tv>.

https://bugzilla.gnome.org/show_bug.cgi?id=759108
2015-12-08 09:57:24 +02:00
suhwang.kim
6cbaec7593 dashdemux: Suggestion for setting the framerate information.
Dashdemux has set the width and height information from MPD manifest.
Some embedded devices which are not insufficient H/W resources need more information such as framerate
to assign H/W resources. So I suggested that dashdemux also needs to set the framerate information from MDP manifest.

https://bugzilla.gnome.org/show_bug.cgi?id=758515
2015-12-08 09:51:02 +02:00
suhwang.kim
6d8dd482c4 dashdemux: maxFrameRate & minFrameRate should be in RepresentationBase.
According to the spec, they can be in AdaptationSet, Representation and SubRepresentation.
So They should be in RepresentationBase.

https://bugzilla.gnome.org/show_bug.cgi?id=758515
2015-12-08 09:51:02 +02:00
Sebastian Dröge
9cfe04de92 openjpegenc: All frames in JPEG2000 are keyframes, mark them as such 2015-12-07 20:35:01 +02:00
Edward Hervey
16db86c1be teletextdec: Fix leak and NULL pointer usage
Coverity CID #1341744
2015-12-07 13:49:49 +01:00
Edward Hervey
8e0863bf16 teletextdec: Remove dead code
++i in a for() loop results in the loop never being executed more than once

Coverity CID #1341748
Coverity CID #1341743
2015-12-07 13:49:48 +01:00
Daniel Kamil Kozar
717f9a287d port teletextdec to 1.0
https://bugzilla.gnome.org/show_bug.cgi?id=733819
2015-12-06 10:39:47 +01:00
Sebastian Dröge
821320fbc4 hlsdemux: Resync live playlists to the 3rd newest fragment if we fall off the playlist
As HLS does not provide any way of knowing the server's clock, and we do
buffering of "live" streams, at some point we will fall behind the server in
many cases and would have to advance to a fragment that is not in the playlist
anymore.

Previously we would've just resynced to the next oldest fragment that is still
there, but this causes problems as from this point onwards we would always
fall off the playlist again all the time.
Instead we now resync and move to the 3rd newest fragment like we would do
when starting playback of a live stream.

https://bugzilla.gnome.org/show_bug.cgi?id=758987
2015-12-04 18:06:30 +02:00
Tim-Philipp Müller
fe1923e1e6 hls: m3u8: remove superfluous gst_m3u8_copy() implementation
No need to implement _copy() when we just copy a list that
we're freeing three lines later anyway. Instead just steal
the new main list.
2015-12-03 18:25:12 +00:00
Maroš Ondrášek
905158a055 hlsdemux: update current variant if connection speed is set
If connection speed is set, playlist according
to connection speed is selected as current playlist.

Problem is that the current variant of main playlist still
points to previously set variant.
If previously set variant doesn't correspond to current
playlist, then it causes unnecessary change of playlist
to the same playlist after first fragment is downloaded,
because of not updated current variant.

To fix this, we need to make sure that current variant
of main playlist corresponds to the current playlist

https://bugzilla.gnome.org/show_bug.cgi?id=758946
2015-12-02 14:39:12 +02:00
Jan Schmidt
77b302b5da hlsdemux: Tell the base class the fragment duration
adaptivedemux uses the fragment duration as a delay
in some cases, so make sure to set it.
2015-12-02 22:29:38 +11:00
Jan Schmidt
952275ad99 hlsdemux: When switching bitrate variants, don't jump back
Don't jump backward to 3 files from the end of the playlist
when switching variants - it just means we downloaded
fragments fast and caught up to the end of the playlist.

Disable that by treating a variant switch as a playlist
update, not a restart due to a seek or so.
2015-12-02 22:29:38 +11:00
Alex Ashley
0745d567a7 hlsdemux: correct the calculation of seek range of non-live streams
The seek range calculation for on-demand streams was incorrectly
excluding the last three segments of the stream. This three segment
rule should only be applied to live streams [1].

[1] https://tools.ietf.org/html/draft-pantos-http-live-streaming-17#section-6.3.3

https://bugzilla.gnome.org/show_bug.cgi?id=758386
2015-12-02 10:16:25 +02:00
Tim-Philipp Müller
64adb1998d hlsdemux: fix crash when decryption key can't be downloaded
Happened with
http://sslhls.m6tv.cdn.sfr.net/hls-live/livepkgr/_definst_/m6_hls_aes/m6_hls_aes_856.m3u8
if glib-networking was not installed (since key has https uri).
2015-12-01 18:01:36 +00:00
Tim-Philipp Müller
97ea56e91c hls: m3u8: remove pointless client_has_main() function
We always have a main list.
2015-12-01 17:51:34 +00:00
Tim-Philipp Müller
0ed4620033 hls: m3u8: remove unused _get_current_fragment_duration() function 2015-12-01 17:51:34 +00:00
Tim-Philipp Müller
e68914eeec hls: m3u8: remove unused m3u8 client update_failed_count field 2015-12-01 17:51:34 +00:00
Tim-Philipp Müller
5443cca406 hls: m3u8: remove helper var that's only used during parsing from structure
Just keep that local to the parsing function.
2015-12-01 17:51:34 +00:00
Tim-Philipp Müller
efe62292a3 hls: rename plugin from fragmented to hls 2015-12-01 17:51:34 +00:00
Sebastian Dröge
fac4ed18d4 hlsdemux: Always give timestamps if we're discont and don't mark stream discont if a playlist change was not successful
If the stream is discont, we must provide a timestamp in any case. Elements
like tsdemux are not going to output anything if we give a NONE timestamp
after a discont.

Also marking a stream as discont if a playlist change was not successful would
lead to the above situation, but in that case we are not required at all to
mark the stream discont as we're still at the old playlist.
2015-12-01 19:47:59 +02:00
Luis de Bethencourt
0767a237ad opusparse: remove unneeded statement
commit da5c41930c removed the two uses of the
new value of data:
  channels = opus_packet_get_nb_channels (data);
  bandwidth = opus_packet_get_bandwidth (data);

Since then, data isn't being used between incrementing it by packet_offset
and going out of scope. Removing this uneeded statement.
2015-11-27 18:51:10 +00:00
Florin Apostol
9a7bf5fbf1 mpdparser: remove gst_mpd_client_check_time_position
https://bugzilla.gnome.org/show_bug.cgi?id=758593
2015-11-24 10:01:58 -03:00
Maroš Ondrášek
b902c4a293 mssdemux: add depth field to audio caps if available
depth field can be retrieved from "BitsPerSample" or
from "WaveFormatEx" structure, if provided in Manifest

https://bugzilla.gnome.org/show_bug.cgi?id=758586
2015-11-24 09:13:06 -03:00
Florin Apostol
650b7b8fce mpdparser: added support for parsing fraction of seconds in dateTime fields
https://bugzilla.gnome.org/show_bug.cgi?id=758410
2015-11-23 11:54:37 -03:00
Thiago Santos
5be46607bb dashdemux: always set presentationTimeOffset
Set it for all types of segment lists (templates / lists / base)
and not only for templates.

https://bugzilla.gnome.org/show_bug.cgi?id=751529
2015-11-20 20:59:16 -03:00
Roman Nowicki
21348cf772 qml: reuse existing GstQSGTexture
Fixes a memory leak leaking the texture objects.

https://bugzilla.gnome.org/show_bug.cgi?id=758286
2015-11-20 11:18:43 +11:00
Matthew Waters
33d98ddf48 qml: activate the wrapped context when binding
Mitigates the following critical

gst_gl_context_thread_add: assertion 'context->priv->active_thread == g_thread_self ()' failed
2015-11-20 11:09:45 +11:00
Roman Nowicki
27c94f3375 qml: proper initialization if scene is already initialized
The scene graph can be initialized when the we receive window handle change
notification and so we will not receive a scenegraph initialization
notification.  Initialize ourself in this case.

https://bugzilla.gnome.org/show_bug.cgi?id=758337
2015-11-20 09:41:56 +11:00
Jimmy Ohn
7093ad482b dashdemux: Add binary search for stream_sidx_seek
Add binary search to optimize in stream_sidx_seek.

https://bugzilla.gnome.org/show_bug.cgi?id=749653
2015-11-19 16:07:31 -03:00
Florin Apostol
ef84f294c0 mpdparser: remove unused functions gst_mpdparser_get_chunk_by_index and gst_mpdparser_find_segment_by_index
https://bugzilla.gnome.org/show_bug.cgi?id=758233
2015-11-19 15:53:30 -03:00
Luis de Bethencourt
49ccb72b47 docs: update gst-launch-0.10 lines
Update references to gst-launch-0.10 to gst-launch-1.0
2015-11-19 17:25:01 +00:00
Reynaldo H. Verdejo Pinochet
86ec812429 Remove unnecessary NULL checks before g_free()
g_free() is NULL-safe
2015-11-18 16:05:42 -08:00
Sebastian Dröge
87b5ad0dfc mpdparser: Also allow '/' in RepresentationID
Used by http://www.bok.net/dash/tears_of_steel/cleartext/stream.mpd

https://bugzilla.gnome.org/show_bug.cgi?id=757903
2015-11-18 19:17:29 +02:00
George Kiagiadakis
c51fe83d42 waylandsink: call gst_video_sink_center_rect with a destination rectangle that starts from (0,0)
The intention of this code is to find the center rectangle relative
to (0,0), since subsurface coordinates are relative to the parent
surface.

The old code used to work but was wrong and broken by
http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/gst-libs/gst/video/gstvideosink.c?id=ff57f6913456ec1991e55517cf1f239e80eeddef
2015-11-18 13:10:45 +01:00
Florin Apostol
fb2d3abca8 dashdemux: fixed illegal memory access in gst_mpd_client_get_last_fragment_timestamp_end
https://bugzilla.gnome.org/show_bug.cgi?id=758188
2015-11-18 09:50:26 +02:00
Sebastian Dröge
527747a077 glimagesink: Remove unused variable
gstglimagesink.c: In function 'gst_glimage_sink_on_draw':
gstglimagesink.c:1959:18: error: unused variable 'sync_meta' [-Werror=unused-variable]
   GstGLSyncMeta *sync_meta = NULL;
                  ^
2015-11-17 17:17:50 +02:00
Matthew Waters
3bf7430411 glimagesink: wait on the correct sync meta when rendering 2015-11-17 15:27:26 +11:00
Matthew Waters
fcd0faa055 glimagesink: add support for rendering external-oes textures
https://bugzilla.gnome.org/show_bug.cgi?id=757285
2015-11-17 15:27:26 +11:00
Vineeth TM
15251e4824 glimagesink: Fix structure memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=758205
2015-11-17 00:14:02 -03:00
Luis de Bethencourt
bd82332f6c opusenc: avoid potential overflow expression
The result of the two expressions will be promoted to guint64 anyway,
perform all the arithmetic in 64 bits to avoid potential overflows.

CID 1338690, CID 1338691
2015-11-12 12:29:33 +00:00
Luis de Bethencourt
7c495b711e opusparse: initialize sample rate to a default
sample_rate might be used uninitialized if !sink_caps is TRUE. Initialize
it to the default used in gst_codec_utils_opus_parse_caps () when there is
no rate defined in the caps.

CID 1338695
2015-11-12 11:23:36 +00:00
Matthew Waters
50b59150fd glviewconvert: remove set_format
We need the caps to be able to
1. check the caps features
2. get the requested texture-target on input/output
2015-11-11 15:16:37 +11:00
Matthew Waters
715f3bb828 glimagesink: fix a memory leak if the view conversion fails 2015-11-11 14:41:38 +11:00
Matthew Waters
2bc391851e glimagesink: balance the creation/destruction of the overlay compositor
Fixes some leaks/possible segfault on when failing to create the compositor.
2015-11-11 14:41:38 +11:00
Matthew Waters
0602539f1b glimagesink: wait on the provided sync meta provided to glimagesink 2015-11-10 15:42:35 +11:00
Matthew Waters
eb4e2de4e8 gtk: add the overlaycomposition feature to the template caps
There is a possibility that the _get_caps impl will be called with the
feature in the filter caps which when interecting with the template,
will return EMPTY and therefore fail negotiation.

https://bugzilla.gnome.org/show_bug.cgi?id=757854
2015-11-10 15:40:25 +11:00
Tim-Philipp Müller
63853b7b0d assrender: don't send flush events on seeks
It's for the upstream element driving the pipeline to
handle seeks and send flush events or not, filters
should not interfere here, otherwise downstream pads
could be flushing before upstream pads are flushing,
which can result in GST_FLOW_ERROR being sent instead
of GST_FLOW_FLUSHING when trying to forward sticky
events at just the wrong moment.
2015-11-06 20:31:31 +00:00
Tim-Philipp Müller
734d5a79c5 Fix code indentation 2015-11-06 19:29:49 +00:00
Tim-Philipp Müller
02c9247d54 glmixerbin: fix minor leak
Don't leak removed list node.
2015-11-06 13:00:55 +00:00
Thibault Saunier
f63fa80407 faac: Initialize debug category soon enough
Avoiding assertions
2015-11-06 13:33:46 +01:00
Tim-Philipp Müller
3015cd75e4 hls: m3u8: don't leak GList nodes when matching up variant lists after master list update 2015-11-06 00:48:42 +00:00
Luis de Bethencourt
5a4c09f791 resindvd: use GST_STIME_FORMAT for GstClockTimeDiff
No need to use G_GINT64_FORMAT for potentially negative values of
GstClockTimeDiff. Since 1.6 these can be handled with GST_STIME_FORMAT.
Plus it creates more readable values in the logs.

https://bugzilla.gnome.org/show_bug.cgi?id=757480
2015-11-05 12:17:58 +00:00
Sebastian Dröge
e7515971a8 opusdec: Update sink pad templates
We always require the channel-mapping-field. If it's 0 we require nothing
else, otherwise we need channels, stream-count and coupled count to be
available.
2015-11-05 12:11:19 +01:00
Sebastian Dröge
7ec953e085 opusenc: Create an empty taglist if there is none
There always have to be 2 buffers in the streamheaders, even if
the comment buffer is basically empty.
2015-11-04 00:14:13 +02:00
Sebastian Dröge
51edbeb9d9 opus: Add proper support for multichannel audio
https://bugzilla.gnome.org/show_bug.cgi?id=757152
2015-11-03 20:35:41 +02:00
Sebastian Dröge
4c8f76f05b opusparse: Fix up pre-skip in OpusHead if upstream using GstAudioClippingMeta
Makes transmuxing from e.g. MPEG-TS to Ogg sample accurate.

https://bugzilla.gnome.org/show_bug.cgi?id=757153
2015-11-03 20:35:41 +02:00
Sebastian Dröge
8a837c6715 opusdec: Handle GstAudioClippingMeta instead of the pre-skip field in the OpusHead
oggdemux is outputting the meta now, and only outputs if it should really
apply to the current buffer. Previously we would skip N samples also if we
started the decoder in the middle of the stream.

https://bugzilla.gnome.org/show_bug.cgi?id=757153
2015-11-03 20:35:41 +02:00