Commit graph

5284 commits

Author SHA1 Message Date
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
Sebastian Dröge
d5389e71ff opusenc: Add GstAudioClippingMeta to buffers that need to be clipped
https://bugzilla.gnome.org/show_bug.cgi?id=757153
2015-11-03 20:35:41 +02:00
Sebastian Dröge
483cb05af1 opusenc: Disable granule position calculations by the base class
It is doing the wrong thing because of the Opus pre-skip: while the timestamps
are shifted by the pre-skip, the granule positions are not shifted.

oggmux is doing the right thing here already.

https://bugzilla.gnome.org/show_bug.cgi?id=757153
2015-11-03 20:35:41 +02:00
Sebastian Dröge
619c750222 opusenc: Add some FIXME comments about calculating padding with LPC
https://bugzilla.gnome.org/show_bug.cgi?id=757153
2015-11-03 20:35:41 +02:00
Sebastian Dröge
f66afc47ac opusenc: Encode exactly the amount of samples we got as input and put correct timestamps on it
The first frame has lookahead less samples, the last frame might have some
padding or we might have to encode another frame of silence to get all our
input into the encoded data.

This is because of a) the lookahead at the beginning of the encoding, which
shifts all data by that amount of samples and b) the padding needed to fill
the very last frame completely.

Ideally we would use LPC to calculate something better than silence for the
padding to make the encoding as smooth as possible.

With this we get exactly the same amount of samples again in an
opusenc ! opusdec pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=757153
2015-11-03 20:35:41 +02:00
Sebastian Dröge
c7d785a512 opusenc: Put lookahead/pre-skip into the OpusHead header
https://bugzilla.gnome.org/show_bug.cgi?id=757153
2015-11-03 20:35:41 +02:00
Stefan Sauer
af27ee3aa7 opencv: cast paramspec flags to fix the build for c++
All the other elements in this plugin do this already.
2015-11-03 09:19:37 -08:00
Hyunil Park
c9aaa4189b waylandsink: Add exception code for setting wl_surface
Waylandsink needs exception code in gst_wayland_sink_set_window_handle().
After making sink->window, User can call
gst_wayland_sink_set_window_handle(). It is the user's fault, but
Waylandsink needs to handle the exception, if not then sink->window is
changed and rendering fails.

https://bugzilla.gnome.org/show_bug.cgi?id=747482
2015-11-03 10:45:05 +00:00
Hyunil Park
d3db3df320 waylandsink: Add exception code for setting wl_display
Waylandsink needs exception code in gst_wayland_sink_set_context(). After
calling gst_wayland_sink_set_context(), below code is set.
GST_ELEMENT_CLASS (parent_class)->set_context (element, context); but, If
user can call onemore. It is user's fault. but waylandsink need to
exception.

https://bugzilla.gnome.org/show_bug.cgi?id=747482
2015-11-03 10:42:14 +00:00
Florin Apostol
19d604e92f dashdemux: remove unreachable code
The stream->cur_seg_template is set to the lowest available segment
template (representation or adaptation or period, in this order).
Because the template elements are inherited, the lowest template will
have all the elements the parents had, so there is no need to check the
parent for an element that is not found in the child (eg initialisation
or index).

https://bugzilla.gnome.org/show_bug.cgi?id=752714
2015-11-02 11:37:19 +00:00
Vincent Penquerc'h
045a03c14a mpdparser: add some checks to duration parsing
https://bugzilla.gnome.org/show_bug.cgi?id=752336
2015-11-02 11:36:12 +00:00
Florin Apostol
7dca9fb3f4 dashdemux: added duration format validation
https://bugzilla.gnome.org/show_bug.cgi?id=752336
2015-11-02 11:36:12 +00:00
Luis de Bethencourt
f28fad6e83 dashdemux: fix memory leak
Free new_mpd, allocated with g_slice_new(), before going out of scope in
goto error.

CID 1338050
2015-11-02 11:27:43 +00:00
Sebastian Dröge
dbd894f133 opusdec: Assume 48kHz if no sample rate is given in the header 2015-11-02 09:36:46 +02:00
Sebastian Dröge
18c8abec6d opusenc: Place 48kHz first in the caps
For all the other sample rates the encoder will have to resample internally.
2015-11-02 09:36:43 +02:00
Vincent Penquerc'h
e48e68416c mpdparser: make durations unsigned where appropriate
The standard does not seem to make any particular explicit not
implicit reference to the signedness of durations, and the code
does not rely on such, nor on the negativity of the -1 value
that's used as a placeholder when a duration property is not
present in the XML.

https://bugzilla.gnome.org/show_bug.cgi?id=750847
2015-10-30 16:29:46 +00:00
Florin Apostol
d6e805a283 dashdemux: inherit bitstreamSwitching from Period to AdaptationSet
https://bugzilla.gnome.org/show_bug.cgi?id=752340
2015-10-30 15:58:36 +00:00
Florin Apostol
fe6adec702 dashdemux: marked PROP_BANDWIDTH_USAGE property as deprecated
https://bugzilla.gnome.org/show_bug.cgi?id=753890
2015-10-30 15:25:14 +00:00
Florin Apostol
013655d886 dashdemux: inherited segment URLs are ignored if they are defined again in a lower SegmentList
According to the standard:
"SegmentBase, SegmentTemplate and SegmentList shall inherit
attributes and elements from the same element on a higher level.
If the same attribute or element is present on both levels,
the one on the lower level shall take precedence over the one
on the higher level."

gst_mpdparser_parse_segment_list_node will now discard any inherited
segment URLs if the parsed element defines some too.

https://bugzilla.gnome.org/show_bug.cgi?id=751832
2015-10-30 14:31:21 +00:00
Matthew Waters
1c05479715 glcolorconvert: remove unused ret variable 2015-10-30 14:43:23 +11:00
Matthew Waters
ccce217502 glcolorconvert: add support for converting texture targets
Solved with a simple shader templating mechanism and string replacements
of the necessary sampler types/texture accesses and texture coordinate
mangling for rectangular and external-oes textures.
2015-10-30 14:24:53 +11:00
Matthew Waters
e61d504556 glmemory: add support for rectangle textures
Add the various tokens/strings for the differnet texture types (2D, rect, oes)

Changes the GLmemory api to include the GstGLTextureTarget in all relevant
functions.

Update the relevant caps/templates for 2D only textures.
2015-10-30 14:24:53 +11:00
Alex Ashley
c8ef39cac7 dashdemux: provide a default suggestedPresentationDelay
If MPD@suggestedPresentationDelay is not present in the manifest,
dashdemux selects the fragment closest to the most recently generated
fragment. This causes a playback issue because this choice does not allow
the DASH client to build up any buffer of downloaded fragments without
pausing playback. This is because by definition new fragments appear on
the server in real-time (e.g. if segment duration is 4 seconds, a new
fragment will appear on the server every 4 seconds). If the starting
playback position was n*segmentDuration seconds behind "now", the DASH
client could download up to 'n' fragments faster than realtime before it
reached the point where it needed to wait for fragments to appear on the
server.

The MPD@suggestedPresentationDelay attribute allows a content publisher
to provide a suggested starting position that is behind the current
"live" position.

If the MPD@suggestedPresentationDelay attribute is not present, provide
a suitable default value as a property of the dashdemux element. To
allow the default presentation delay to be specified either using
fragments or seconds, the property is a string that contains a number
and a unit (e.g. "10 seconds", "4 fragments", "2500ms").
2015-10-29 13:26:46 +00:00
Florin Apostol
e7745a5720 dashdemux: improve detection of stream language
Improved the detection of stream's language if the AdaptationSet
contains more than 1 ContentComponent

https://bugzilla.gnome.org/show_bug.cgi?id=752367
2015-10-29 12:14:50 +00:00
Vincent Penquerc'h
7443f35249 dash_mpd: restrict segment template format strings to %0[0-9]*d as per spec
https://bugzilla.gnome.org/show_bug.cgi?id=751735
2015-10-29 12:04:31 +00:00
Florin Apostol
4eea6c3833 dashdemux: segment template parsing: added support for %d
Added support for %d in template identifier.
Added testcases for %d, %3d, %0-4d identifier formats.
2015-10-29 11:58:47 +00:00
Florin Apostol
933d367440 dashdemux: corrected parsing of segment templates
Corrected the parsing of a segment template string.
Added unit tests to test the segment template parsing.
All reported problems are now correctly handled.

https://bugzilla.gnome.org/show_bug.cgi?id=751735
2015-10-29 11:54:34 +00:00
Florin Apostol
566e84cec1 dashdemux: fixed crash when segment timeline list is greater than segment url list
When building the media segment list using a SegmentList node, the
gst_mpd_client_setup_representation function will iterate through the
list of S nodes and will expect to find a matching SegmentUrl node. If
one does not exist, the code made an illegal memory access.

https://bugzilla.gnome.org/show_bug.cgi?id=752496
2015-10-29 10:20:45 +00:00
Vincent Penquerc'h
5c8f702116 mpdparser: do not dereference profiles is absent
These are used to apply restrictions on what the MPD file may
use, so no profile means no restrictions.

Besides, nothing actually uses the profiles (yet) anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=750869
2015-10-29 10:20:45 +00:00
Florin Apostol
eab158a669 adaptivedemux: fixed multithread support
https://bugzilla.gnome.org/show_bug.cgi?id=755169
2015-10-29 10:20:45 +00:00
Florin Apostol
cdfec06092 dashdemux: parser rejects negative values for mediaPresentationDuration
https://bugzilla.gnome.org/show_bug.cgi?id=752326
2015-10-29 10:20:45 +00:00
Florin Apostol
7c2746f741 dashdemux: corrected parsing of negative values into unsigned data
https://bugzilla.gnome.org/show_bug.cgi?id=752429
2015-10-29 10:20:45 +00:00
Vincent Penquerc'h
54d93f597d mpdparser: forbid negative values for duration
https://bugzilla.gnome.org/show_bug.cgi?id=752492
2015-10-28 15:43:00 +00:00
Florin Apostol
c763d1e8fd dashdemux: parser rejects XMLs with negative period duration
https://bugzilla.gnome.org/show_bug.cgi?id=752329
2015-10-28 15:41:17 +00:00
Vincent Penquerc'h
60133b1472 mpdparser: check segment lists have either duration or timeline
And add error checking along the way.

Add duration where appropriate so unit tests still pass.

https://bugzilla.gnome.org/show_bug.cgi?id=751650
2015-10-28 15:34:29 +00:00
Vincent Penquerc'h
b8df6cc316 mpdparser: validate representation set identifier
It must have no whitespace, and must comply with RFC 1738 when
used to build a URL.

https://bugzilla.gnome.org/show_bug.cgi?id=750852
2015-10-28 15:11:50 +00:00
Matthew Waters
de808c6439 opengl: build/provide glstereomix/split on gles only systems 2015-10-27 15:30:58 +11:00
George Kiagiadakis
c2f34b9814 waylandsink: don't advertise the local wl_display context
This wl_display proxy is temporary only until waylandsink goes NULL,
at which point the connection to the display is disposed. Unfortunately,
if this is advertised as a GstContext, playbin will cache it and re-feed
it to the sink when it goes PLAYING again, but the wl_display pointer
will at that point be invalid and cause a crash.

Another solution to the problem would be to also cache the GstWlDisplay
object inside the GstContext, which would automatically ref-count
the display connection, but I see no reason in doing that at the moment,
as there are no known users of this GstContext outside waylandsink.
It's probably better to avoid chasing hidden refcounts.

https://bugzilla.gnome.org/show_bug.cgi?id=756567
2015-10-26 16:11:56 +01:00
Matthew Waters
09976e021b glviewconvert: expose the element on gles2 platforms
We can do everything with gles3 however gles2 restricts us not allowing
separated or frame-by-frame multiview modes due to multiple draw buffers.
2015-10-26 18:24:59 +11:00
André Draszik
e0b4290998 hlsdemux: don't crash or leak memory on broken master playlist
If a (master) playlist contains a variant list entry without a
URI then during parsing of the next variant list entry we are
a) leaking the entry we're currently parsing (new_list), and
b) free'ing the pointer to the previous list entry (list) without
   updating the pointer.

Hence when then adding the URI for the latest parsed entry, incorrect
information is stored, as the information is used from 'list' which
is not valid memory anymore, also leading to crashes.

Fix this by correctly storing the new variant list entry pointer
as needed.

https://bugzilla.gnome.org/show_bug.cgi?id=756861
2015-10-25 09:26:34 +00:00
Tim-Philipp Müller
344d100b1c hlsdemux: change dispose function to finalize 2015-10-23 18:51:43 +01:00
Tim-Philipp Müller
b8a155c17d hlsdemux: remove helper function only used once 2015-10-23 18:51:43 +01:00
Tim-Philipp Müller
917b034238 hlsdemux: remove deprecated 'fragments-cache' property
It's been non-functional for two cycles now, let's
get rid of it.
2015-10-23 18:51:18 +01:00
Tim-Philipp Müller
1c8d844ece hlsdemux: m3u8: move file lookup by sequence directly into code
Nicer to read, two lines of code less, and also the callback
function should've been a GCompareFunc that returns a gint
and not a boolean (it did work correctly, was just confusing).
2015-10-23 18:20:01 +01:00
Tim-Philipp Müller
28ac033773 hlsdemux: m3u8: clean-up: remove unused argument in function call 2015-10-23 18:19:55 +01:00
Tim-Philipp Müller
da682fc130 hlsdemux: m3u8: clean-up: reindent header for better readability
And remove duplicate define.
2015-10-23 18:19:49 +01:00
Santiago Carot-Nemesio
073bff8ce2 srtp: Fix critical warning trying to retrieve SSRC from a non fb message
https://bugzilla.gnome.org/show_bug.cgi?id=756876
2015-10-23 16:32:03 +03:00
Luis de Bethencourt
ec319bb9d2 opencv: handdetect: no need to get a writable buffer
No need to get a writable buffer inside cv_trans_func of opencv video
filter. GstBaseTransform takes care of this.
2015-10-21 17:06:45 +01:00
Matthew Waters
d81a96c81c glshaderelement: free the vertex and fragment strings on finalize
Fixes a memory leak when using the vertex/fragment properties.
2015-10-21 05:35:03 +11:00
Matthew Waters
71b4ae1f43 glshaderelement: remove unneeded reference to <gst/gl/gstglshadervariables.h> 2015-10-21 05:01:29 +11:00
Matthew Waters
70be81ad92 glimagesink: create a context in NULL_READY
So that it's possible for decoders et al. to request the OpenGL context
in their READY_PAUSED transition with decodebin/playbin.
2015-10-21 04:28:59 +11:00
Matthew Waters
5f4f240ada glshaderelement: implement setting arbitrary uniforms
Currently float and int are supported by default. vec2, vec3, vec4
and mat4 are supported if graphene is used.  Of course if one wants
to set custom uniforms they can also be set using the create-shader
signal.
2015-10-21 04:05:00 +11:00
Luis de Bethencourt
ebeb12d0e8 opencv: handdetect: free best_r with delete
best_r is a cv::Rect, so it should be freed with delete and not with
g_free()
2015-10-20 12:24:13 +01:00
Luis de Bethencourt
1193fc875d opencv: motioncells: remove unnecessary check
We know that the gchar arrays contain at least one string. Furthermore,
g_strfreev() checks if the array is NULL and simply returns if it is.
Hence, there is no need to check if the array is empty before using
g_strfreev().

CID 1327412-1327415
2015-10-20 12:09:01 +01:00
Edward Hervey
f7c4bb5ac6 hls/m3u8: Update current position in all cases
In order to ensure the sequence_position will always be consistently updated,
store the current file duration.

This way, when we advance, we can always increment the position based on what
was previously outputted.

https://bugzilla.gnome.org/show_bug.cgi?id=752132
2015-10-19 14:45:42 +02:00
Matthew Waters
3dfc6899ad gl: be consistent in gobject boilerpate
GST_GL_IS_* vs GST_IS_GL_*

git grep -l 'GST_GL_IS_' | xargs sed -i 's/GST_GL_IS_/GST_IS_GL_/g'
2015-10-19 15:15:30 +11:00
Matthew Waters
b9e1cd3732 glshaderelement: implement on-demand create-shader signalling
One may not have an GstGLContext available or current in the thread where one
would need to update the shader.  Support this by signalling create-shader
whenever the one-shot 'update-shader' is set to TRUE.
2015-10-17 16:10:41 +11:00
Matthew Waters
61b51b82ed gl/calayer: don't leak a gl shader object
We will always overwrite the ca_sink->redisplay_shader without freeing the
object.
2015-10-17 16:10:41 +11:00
Matthew Waters
cfff5d819e gtk: separate out the widget/window destroy callbacks
Fixes assertion due to the sink_finalize() being run before the widget destroy
callback.

https://bugzilla.gnome.org/show_bug.cgi?id=755969
2015-10-17 16:09:53 +11:00
Miguel París Díaz
f19a789b68 srtpdec: skip padding when mapping RTP packets
https://bugzilla.gnome.org/show_bug.cgi?id=756653
2015-10-16 09:17:18 +03:00
Matthew Waters
9ad6872b5b gl/caopengllayersink: port to new GstGLShader API
fixes build error:
"undefined symbols for architecture:
gst_gl_shader_compile_with_default_vf_and_check"
2015-10-15 23:47:11 +11:00
Matthew Waters
7ddb05eab2 glshader: port element to GstGLSLStage
- Provide a shader property to set the full shader pipeline
- Provide vertex and fragment properties for just providing simple
  shader sources.
2015-10-15 21:27:57 +11:00
Matthew Waters
b25807c382 glshader: port to using GstGLSLStage objects for string management
A GstGLShader is now simply a collection of stages that are
compiled and linked together into a program.  The uniform/attribute
interface has remained the same.
2015-10-15 21:27:57 +11:00
Paul Arzelier
0d3ca6391c dtls: Fix name conflict with openssl on win32
https://bugzilla.gnome.org/show_bug.cgi?id=756592
2015-10-15 09:50:19 +03:00
Thiago Santos
d5f79b8529 hls: if media sequence is not specified, use 0
Allows playlists that are missing the mediasequence information to
be correctly parsed. If the playlist was updated without reseting
the mediasequence it would constantly increase over subsequent updates,
leading to issues during playback.
2015-10-14 21:33:27 -03:00
George Kiagiadakis
f78b37e6b2 waylandsink: fix fallback buffer allocation
Copy-paste mistake; the wl_buffer was attached on the wrong buffer...
2015-10-14 22:05:52 +02:00
George Kiagiadakis
abcc8eafed waylandsink: rename GstWlDisplay::formats array to shm_formats
These formats are specific to the wl_shm interface. We are going
to add dmabuf formats later as well.
2015-10-14 22:05:52 +02:00
George Kiagiadakis
28194c0c11 waylandsink: replace the custom GstWlShmMemory with GstFdMemory 2015-10-14 22:05:51 +02:00
Edward Hervey
0e663fca94 hls: Allow debugging of the playlist
Helps debugging issues
2015-10-14 18:01:04 +02:00
Edward Hervey
8d86a8b75d hlsdemux: Avoid negative sequence numbers
For live streams, we want to make sure there's a certain distance
between the sequence to play and the last (earliest) fragment.

The problem is that it assumes there are at least 3 fragments in
the playlist, which might not always be the case (like in the case
of a server restarting and gradually adding fragments).

In order to avoid ending up with negative sequence numbers (which
will just loop forever), limit the new target sequence number to
the highest of:
* either the first sequence number of the playlist (fallback)
* or 3 fragments from the last one (standard behaviour)
2015-10-14 18:01:04 +02:00
Luis de Bethencourt
f58cd983b6 opencv: switch remaining to C++
Switch remaining C files to C++ for consistency with other OpeCV elements,
and support of the new 2.4.11 API.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-14 15:48:51 +01:00
Sebastian Dröge
1f7156d478 mpdparser: Set default last_byte_pos to -1
The value is optional in the range, and if it is absent it means we should
download until the end of stream. Not until position 0.

https://bugzilla.gnome.org/show_bug.cgi?id=748316
2015-10-14 16:57:56 +03:00
Luis de Bethencourt
10085a5d01 opencv: motioncells: Switch to C++
Switch gstmotioncells to C++ for consistency with other OpenCV elements,
and support of the new 2.4.11 API.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-14 14:37:51 +01:00
Luis de Bethencourt
3ffdb8a6e4 textoverlay: Switch to C++
Switch gsttextoverlay to C++ for consistency with other OpenCV elements,
and support of the new 2.4.11 API.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-11 23:45:35 +01:00
Luis de Bethencourt
466966ff6c opencv: pyramidsegment: Switch to C++
Switch gstpyramidsegment to C++ for consistency with other OpenCV elements,
and support of the new 2.4.11 API.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-11 22:15:06 +01:00
Julien Isorce
657f1913c6 dashdemux: fix undefined reference to gst_ntp_clock_new
Found with gst-inspect-1.0 -b in gst-uninstalled env.

https://bugzilla.gnome.org/show_bug.cgi?id=756383
2015-10-11 10:51:24 +01:00
Luis de Bethencourt
61168794ea cvsobel: Switch to C++
Switch gstcvlsobel to C++ for consistency with other OpenCV elements, and
support of the new 2.4.11 API.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-10 18:00:31 +01:00
Luis de Bethencourt
a4429cf769 cvlaplace: Switch to C++
Switch gstcvlaplace to C++ for consistency with other OpenCV elements, and
support of the new 2.4.11 API.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-10 17:02:11 +01:00
Luis de Bethencourt
49287b1e04 cvequalizehist: Switch to C++
Switch gstcvequalizehist to C++ for consistency with other OpenCV elements,
and support of the new 2.4.11 API.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-10 17:02:05 +01:00
Luis de Bethencourt
b2420b0408 cverode: Switch to C++
Switch gstcverode to C++ for consistency with other OpenCV elements, and
support of the new 2.4.11 API.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-10 14:14:32 +01:00
Florin Apostol
1d1094b71b dashdemux: fixed has_next_period
gst_mpd_client_has_next_period now calls gst_mpd_client_setup_media_presentation
to refresh the period information.

https://bugzilla.gnome.org/show_bug.cgi?id=756186
2015-10-07 15:50:08 +01:00
Nirbheek Chauhan
4977ec1189 glvideomixer: Proxy the ignore-eos videoaggregator property as well
Identical to how the z-order property is proxied
2015-10-06 16:57:53 +01:00
Havard Graff
cb20105aa5 rtmpsrc: plug memory-leaks
https://bugzilla.gnome.org/show_bug.cgi?id=756001
2015-10-03 17:52:51 +01:00
Sebastian Dröge
458bafe9e3 resindvd: Port to new GLib mutex/cond API 2015-10-02 22:57:27 +03:00
Sebastian Dröge
f5dd41d710 Update GLib dependency to 2.40.0 2015-10-02 22:24:19 +03:00
Vanessa Chipirrás Navalón
f8e11fe656 cvdilate: Change gstcvdilate to C++
Change the gstcvdilate.c file extension to cpp and add it into Makefile for
consistency with other elements of opencv and because Opencv not support C
language in new API 2.4.11.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-02 19:07:17 +01:00
Vanessa Chipirrás Navalón
7f9aef31cb skindetect: Change gstskindetect to C++
Change the file extension to cpp and add it into Makefile for consistency
with other elements of opencv and because Opencv not support C language in
new API 2.4.11.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-02 18:58:49 +01:00
Vanessa Chipirrás Navalón
1c9763c0eb opencvutils: add extern C, for the opencv elements work.
Adding G_BEGIN_DECLS and G_END_DECLS to gstopencvutils.h
to allow C-style linking.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-02 18:46:38 +01:00
Luis de Bethencourt
e2709ed2ef retinex: use OpenCV namespace
As part of the switch to C++, use the new OpenCV functions.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-02 18:41:45 +01:00
Vanessa Chipirrás Navalón
ae55a537e6 cvsmooth: port to C++
Change the file extension to cpp and add it into Makefile for consistency
with other elements of opencv and because Opencv not support C language in
new API 2.4.11.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-02 18:41:27 +01:00
Vanessa Chipirrás Navalón
936665dfd6 retinex: Change retinex to C++
Change the gstretinex.c file to cpp and add it into Makefile.
It is necessary to migrate the retinex element to C++,
because new Opencv API leaves obsolete functions like cvSmooth.
This element uses this function.

You can see in this link:
http://docs.opencv.org/modules/imgproc/doc/filtering.html?
highlight=cvsmooth#void cvSmooth(const CvArr* src, CvArr* dst,
int smoothtype, int size1, int size2, double sigma1, double sigma2)

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-10-02 18:07:06 +01:00
Vanessa Chipirrás Navalón
31b1938a5f handdetect: remove another unused variable
Memory is reserved for this variable and then released without making any
use of it.

https://bugzilla.gnome.org/show_bug.cgi?id=752528
2015-10-02 17:19:12 +01:00
Luis de Bethencourt
e00461a789 handdetect: CvPoint values changed from uint to int
The x and y values of CvPoint changed from unsigned to signed integers
in OpenCV 2.4.11.

https://bugzilla.gnome.org/show_bug.cgi?id=752528
2015-10-02 17:10:59 +01:00
Luis de Bethencourt
75e38f915f handdetect: need to migrate to C++
The cascade classifier changes its structure on new version of OpenCV 2.4.11.
It is need to migrate to C++ to utilize the new load method of OpenCV which
allows to load the old and new classifiers.

https://bugzilla.gnome.org/show_bug.cgi?id=752528
2015-10-02 17:10:59 +01:00
Luis de Bethencourt
dab249a445 handdetect: Change gsthanddetect to C++
Change the gsthanddetect.c file to cpp and add it into Makefile.
It is necessary to migrate the handdetect plugin to C++,
in order to load new and old classifiers, to make handdetect work
with newer versions of Opencv.

https://bugzilla.gnome.org/show_bug.cgi?id=752528
2015-10-02 17:10:59 +01:00
Polochon_street
b58f711566 dtls: fix printf format on win32 2015-10-02 16:36:14 +01:00
Arnaud Vrac
3b1e095169 assrender: optimize blending
Skip empty source pixels when blending an image. There can be hundreds
of images to blend at each frame, so this brings a nice performance
boost.

https://bugzilla.gnome.org/show_bug.cgi?id=753821
2015-10-02 17:23:57 +03:00
Arnaud Vrac
ecdc7bb37d assrender: Use the window size from downstream
This allows rendering the overlay at a resolution matching the video
resolution.

https://bugzilla.gnome.org/show_bug.cgi?id=753824
2015-10-02 17:18:33 +03:00
Arnaud Vrac
f021d32bef assrender: Improve negotiation
This is mostly a copy/paste of the negotiation function in
basetextoverlay, which was improved recently to handle many more cases.

This will allow us to negotiate a window size with downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=753824
2015-10-02 17:17:24 +03:00
Arnaud Vrac
31c6902373 assrender: render the subtitles with the proper aspect
This bumps the libass version requirement to 0.10.2.

https://bugzilla.gnome.org/show_bug.cgi?id=753824
2015-10-02 17:16:31 +03:00
Paul Arzelier
86443f8ae2 dtls: fix printf format on win32
https://bugzilla.gnome.org/show_bug.cgi?id=755981
2015-10-02 14:21:46 +01:00
John Chang
58cb254450 dashdemux: Correctly assign earliest pts instead of overriding it with first offset
https://bugzilla.gnome.org/show_bug.cgi?id=755824
2015-10-02 16:00:08 +03:00
Matthew Waters
30194cc368 qt: add support for building on osx/ios
Including:
- Necessary configure checks
- Necessary compile time platform checks
- Necessary runtime qt iOS/OSX platform detection

https://bugzilla.gnome.org/show_bug.cgi?id=755100
2015-10-02 22:29:45 +10:00
John Slade
30fa95c6e2 rtmpsrc: Fix indentation with gst-indent
https://bugzilla.gnome.org/show_bug.cgi?id=755732
2015-10-02 15:06:02 +03:00
Matthew Waters
50b690cadb glcolorscale: use glbasefilter vfuncs
Uses less code \o/
Fixes legacy opengl rendering \o/
2015-10-01 23:20:19 +10:00
Philippe Normand
bf1246cb13 mssdemux: activate streams before configuring bitrate
Doing the contrary has no effect and the consequence is that playback
will start with the lowest bitrate even if we can already handle
higher bitrate.

https://bugzilla.gnome.org/show_bug.cgi?id=755108
2015-09-30 16:54:20 +01:00
Philippe Normand
ae7d938842 mssdemux: PlayReady WRM parsing support
If the manifest has a ProtectionHeader node then parse it and emit
protection events according to the specified protection SystemID.

https://bugzilla.gnome.org/show_bug.cgi?id=753613
2015-09-30 16:49:11 +01:00
Philippe Normand
5d4388bf9e mssdemux: always use timescale for gst timestamp calculation
Not doing this can lead the demuxer to attempt downloading fragments
for an invalid start time. The server would then send a HTTP
Precondition failed error, the demuxer would try some more times to
download the invalid fragment and eventually error out.

https://bugzilla.gnome.org/show_bug.cgi?id=754523
2015-09-30 10:04:37 +01:00
Matthew Waters
49e6516550 glupload: remove useless release_buffer
It's a leftover from when we weren't outputting GstBuffer's and
returning raw texture id's.
2015-09-30 13:36:09 +10:00
Matthew Waters
90b0383638 gtk: add some GL debug statements to show up in GL traces 2015-09-30 12:39:47 +10:00
Tim-Philipp Müller
cec0ef105f hls: m3u8playlist: more clean-ups
Remove unused functions; move GstM3U8 struct into .c file,
and indent the header so it's nice to read.
2015-09-30 00:43:26 +01:00
Tim-Philipp Müller
cae2fa0cef hls: m3u8playlist: fix silly queue iteration code 2015-09-30 00:43:26 +01:00
Tim-Philipp Müller
4a9a0da50f hls: m3u8playlist: more minor playlist_render() clean-ups
Move the TAG defines directly into the code, not sure what
their purposes is, these are printf format strings so having
them directly as literals in the code where they're used
makes the code easier to follow.
2015-09-30 00:43:26 +01:00
Tim-Philipp Müller
386f173eaf hls: m3u8playlist: move entry rendering into render_playlist()
Makes the code easier to follow and avoids unnecessary temporary
strings, since we can just append to the playlist GString directly.
2015-09-30 00:43:26 +01:00
Tim-Philipp Müller
54e1753da4 hls: m3u8playlist: simplify gst_m3u8_playlist_render()
Remove playlist_str GString variable from GstM3U8Playlist struct,
since it's only used temporarily in playlist_render(). Might just
as well keep it local then.
2015-09-30 00:43:26 +01:00
Tim-Philipp Müller
019cdea1bd hls: remove unused macro and direct gio usage 2015-09-30 00:43:26 +01:00
Luis de Bethencourt
28b2ac7e65 opencv: erode: remove non-ip transform func
Transform is set to be done in place in gstcvdilateerode.c, so the in-place
transform function is always used and the other is redundant. Removing it.

https://bugzilla.gnome.org/show_bug.cgi?id=753885
2015-09-29 20:41:52 +01:00
Luis de Bethencourt
97ee5abd49 opencv: dilate: remove non-ip transform func
Transform is set to be done in place in gstcvdilateerode.c, so the in-place
transform function is always used and the other is redundant. Removing it.

https://bugzilla.gnome.org/show_bug.cgi?id=753885
2015-09-29 20:38:14 +01:00
Luis de Bethencourt
45d9184c88 opencv: use gst_opencv_video_filter_set_in_place()
Using the gst_base_transform function directly won't work. Need to use
gst_opencv_video_filter_set_in_place().
2015-09-29 20:00:14 +01:00
Luis de Bethencourt
9bb76699e0 handdetect: check for haar cascade files path
When running GStreamer from uninstalled sources, the location of the haar
cascade files will be local. Check if running in uninstalled and set the
file paths accordingly.
2015-09-29 17:01:55 +01:00
Luis de Bethencourt
6bc00355b8 opencv: cvlaplace: add scale and shift properties
Add scale and shift properties so these can be used to tweak the values
used in cvConvertScale() instead of using only defaults.
2015-09-29 13:53:12 +01:00
Luis de Bethencourt
ff8f648f37 qtsink: explicitely fallthrough switch statement
In case ret is False, fallthrough to default case.

CID #1320705
2015-09-29 13:37:08 +01:00
Arnaud Vrac
5d0db38df3 assrender: fix leak of tag samples in the tag list
Move handling of a GstSample in a separate function, and unref the
sample after calling it. libass copies the font data so we don't need to
keep it around.

https://bugzilla.gnome.org/show_bug.cgi?id=755759
2015-09-29 09:38:05 +01:00
Arnaud Vrac
c6ce769a18 assrender: fix gap event leak and invalid return value
We don't want the gap event to be forwarded

https://bugzilla.gnome.org/show_bug.cgi?id=755759
2015-09-29 09:37:59 +01:00
Matthew Waters
da5c0bddb2 gtk: fix assertion when the element has no peer
When proxying keyboard/navigation/mouse events, only unref a successfully
retreived peer pad.

https://bugzilla.gnome.org/show_bug.cgi?id=755738
2015-09-29 00:27:30 +10:00
Matthew Waters
609977a56b gl: chain up to the parent class for GstElement::set_context
https://bugzilla.gnome.org/show_bug.cgi?id=705579
2015-09-28 22:24:04 +10:00
Luis de Bethencourt
86151cbf06 qml: remove overwritten value
Value in tex is overwritten before being used. Removing it.

CID 1320715

https://bugzilla.gnome.org/show_bug.cgi?id=754253
2015-09-28 18:17:22 +10:00
Matthew Waters
18d5ed0408 qt: add support for building/running on android
Including:
- Necessary configure checks
- Necessary compile time platform checks
- Necessary runtime qt android platform detection
- Escaping GLsync definition with Qt's GLES2 implementation

https://bugzilla.gnome.org/show_bug.cgi?id=754466
2015-09-28 16:47:00 +10:00
Matthew Waters
f12caa5c22 qt: don't use CPPFLAGS for tools that cannot use them
For example moc will bail out when given arguments it does not
know about.  The moc specific MOC_CPPFLAGS can still be used
to pass flags to moc.

https://bugzilla.gnome.org/show_bug.cgi?id=754466
2015-09-28 16:47:00 +10:00
Matthew Waters
fdf2a73ec0 qt: rename library to include gst prefix
libqtsink -> libgstqtsink

https://bugzilla.gnome.org/show_bug.cgi?id=754466
2015-09-28 16:47:00 +10:00
Matthew Waters
2195dad288 gl: sprinkle some debug markers to ease debugging 2015-09-28 16:47:00 +10:00
Jan Schmidt
0e18ae586b resindvd: Send gap updates to the segment stop during stills
Ignore the normal gap threshold for laggy streams and
immediately catch all streams up to the end of the segment
when processing gap updates for a segment during a
still frame sequence.

https://bugzilla.gnome.org/show_bug.cgi?id=755680
2015-09-27 13:08:27 +10:00
Jimmy Ohn
89a04915fe sfdec: Fix typo in goto variable name
https://bugzilla.gnome.org/show_bug.cgi?id=754057
2015-09-26 09:47:01 +01:00
Chris Bass
69f86e51b2 dashdemux: create src pads for subtitle streams.
Create src pads for Representations that contain timed-text subtitles,
both when the subtitles are encapsulated in ISO BMFF (i.e., the
Representation has mimeType "application/mp4") and when they are
unencapsulated (i.e., the Representation has mimeType
"application/ttml+xml").

https://bugzilla.gnome.org/show_bug.cgi?id=747774
2015-09-26 00:50:55 +02:00
Sebastian Dröge
93d85bd361 dashdemux: Implement lazy-loading of external periods
https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
b70dab8f27 mpdparser: Load OnLoad external resources immediately instead of on demand
https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
49931eda69 mpdparser: Add support for loading external SegmentLists
https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
51e8624d56 mpdparser: Add support for loading external AdaptationSets
https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
97f5b82bf6 mpdparser: Implement loading of external Period nodes
The same has to be done for AdaptationSet and SegmentList nodes still.

Also this does not correctly implement the semantics: by default Period (and
other nodes) should only be loaded when needed, not in the very beginning. We
need to implement lazy loading for them, which means adjusting
gst_mpd_client_setup_media_presentation().

https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
572e54574b mpdparser: Store an URI downloader in the parser for downloading additional MPD resources if needed
https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
07ee57228b mpdparser: Parse xlink attributes from Period, AdaptationSet and SegmentList
We still have to do something useful with them, like actually loading the
content behind the URL.

https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
7c9525830e dashdemux: Properly handle relative and non-HTTP URIs for the headers/indices
gst_uri_join_strings() will return the second parameter if it is an absolute
URI. No need to do a (wrong) check if the URI is absolute or not beforehand.

https://bugzilla.gnome.org/show_bug.cgi?id=755134
2015-09-25 23:52:28 +02:00
Sebastian Dröge
6cafc64416 mpdparser: If no Initialization is present in the SegmentBase, assume it is before the indexRange
https://bugzilla.gnome.org/show_bug.cgi?id=755132
2015-09-25 23:52:28 +02:00
Sebastian Dröge
bcda593f12 gtk: Only run from the main thread in stop() if we created the window
We're not doing anything at all from the main thread in other cases.
2015-09-24 18:51:39 +02:00
Thibault Saunier
4807201b04 gtk: When setting format check if pending format changed
In case the format changed fast and the pending format is different
than the currently set but the currently set is equal to the pending
one we could end up having mismatch between the finally set format
and the data stream format.

https://bugzilla.gnome.org/show_bug.cgi?id=755542
2015-09-24 16:50:38 +02:00
Thibault Saunier
bdcb8208eb gtk: Do not forget to release OBJECT_LOCK on error path
https://bugzilla.gnome.org/show_bug.cgi?id=755542
2015-09-24 15:57:26 +02:00
Thibault Saunier
01057609f1 gtk: Factor out a function to run a function on main thread
https://bugzilla.gnome.org/show_bug.cgi?id=755251
2015-09-24 12:03:01 +02:00
Thibault Saunier
5ad5f5c369 gtk: Marshall state changes in the main thread
Gtk is not MT safe thus we need to make sure that everything is done
in the main thread when working with it.

https://bugzilla.gnome.org/show_bug.cgi?id=755251
2015-09-24 12:03:01 +02:00
Thibault Saunier
3417a15076 gtksink: Do not show window until we reach the PAUSED state
https://bugzilla.gnome.org/show_bug.cgi?id=755459
2015-09-23 12:08:18 +02:00
Sebastian Dröge
a25253130b mpdparser: Only check stream->segments for a repeated last segment if we have a static list of segments
Otherwise we'll crash, trying to derefence NULL. And if we have no static list
of segments, we can't have repeated segments anyway.

Regression introduced by cfe2871a5e

https://bugzilla.gnome.org/show_bug.cgi?id=755411
2015-09-22 15:03:13 +02:00
Arun Raghavan
6835c27e9f x265enc: Drop incorrect stream-format="avc" in template caps 2015-09-21 19:11:42 +05:30
Thibault Saunier
717f922701 gtksink: Do not re destroy the GtkWindow if destroyed by the user
Otherwise we will get an ASSERT.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=755249
2015-09-21 13:03:53 +02:00
Thibault Saunier
a2bdce8df3 gtkglsink: Hide and clean the GtkWindow we might create
When stopping the sink we should always hide the window.

https://bugzilla.gnome.org/show_bug.cgi?id=755249
2015-09-19 12:31:49 +02:00
Philippe Normand
261d8daca0 adaptivedemux: prefix the statistics message name macro
Keep old define around for now.

https://bugzilla.gnome.org/show_bug.cgi?id=754686
2015-09-17 17:39:27 +01:00
Jan Schmidt
587e7c4a23 Don't throw compiler warnings with G_DISABLE_ASSERT
Disable code that warns about unused variables when G_DISABLE_ASSERT
is defined, as it is in tarballs and pre-releases.
2015-09-18 00:29:51 +10:00
Matthew Waters
557ca6fda5 glimagesink: request a resize on caps/3d mode changes
Fixes incorrect aspect ratio on OSX when changing caps or the 3d
output mode.

https://bugzilla.gnome.org/show_bug.cgi?id=755111
2015-09-17 20:26:23 +10:00
Matthew Waters
d088a5294b gl/uploadelement: fail earlier if we could not upload the buffer 2015-09-17 20:21:43 +10:00
Vineeth T M
00438fdff0 gl: Fix GError leaks during failures
https://bugzilla.gnome.org/show_bug.cgi?id=755140
2015-09-17 11:52:55 +02:00
Vincent Penquerc'h
50400fa2a6 mpdparser: support for negative repeat count in segments
Implements negative repeat segment fields, defined in 5.3.9.6.1.
2015-09-16 09:44:20 +01:00
Vincent Penquerc'h
69bfa8222f mpdparser: properly read signed r values for S elements
The spec defines these as signed in 5.3.9.6.1.
Since we don't support this behavior, warn and default to 0
(non repeating), which is the spec's default when the value
is not present.

https://bugzilla.gnome.org/show_bug.cgi?id=752480
2015-09-16 09:44:19 +01:00
Vincent Penquerc'h
23ea8ccb43 mdpparser: catch failures to parse
https://bugzilla.gnome.org/show_bug.cgi?id=752480
2015-09-16 09:44:19 +01:00
Matthew Waters
7ae0dd2361 glimagesink: avoid updating the viewport in the draw loop
Fixes flashes/incorrect aspect ratio when resizing glimagesink on OSX.
2015-09-16 18:04:51 +10:00
Thiago Santos
7e834a5d85 opusdec: remove check for number of channels
opus decoder can convert from different number of channels, no
need to check, just let it negotiate and create a new decoder if
needed.

https://bugzilla.gnome.org/show_bug.cgi?id=755059
2015-09-15 16:00:43 -03:00
Thiago Santos
bd710e5e1b dashdemux: fix return when trying to advance in subfragmented stream
Even if it doesn't actually advance the subfragment in the default way
for streams that have subfragments, it can help the base class to return
EOS when there is no more fragments instead of signaling it that it should
continue downloading.

https://bugzilla.gnome.org/show_bug.cgi?id=755042
2015-09-15 12:46:31 -03:00
Thibault Saunier
b6ad1b0c22 pitch: Set seqnum on newly created segment event
https://bugzilla.gnome.org/show_bug.cgi?id=755012
2015-09-15 13:41:18 +02:00
Sebastian Dröge
c9f60db2d4 mpdparser: Don't consider period start times in periods with segment lists either
https://bugzilla.gnome.org/show_bug.cgi?id=754222
2015-09-14 19:53:18 +02:00
Sebastian Dröge
0d0455e346 dashdemux: Export the period start time to the base class
https://bugzilla.gnome.org/show_bug.cgi?id=754222
2015-09-14 19:53:03 +02:00
Sebastian Dröge
b5697b8ced Revert "dashdemux: Subtract the period start time from the presentation offset"
This reverts commit 626a8f0a74.

This allows us to get the plain presentation offset and the period start time
separately. We have to adjust the timestamp by the presentation offset, but
the period start time should only adjust the stream time and running time.

https://bugzilla.gnome.org/show_bug.cgi?id=752409
2015-09-14 19:53:03 +02:00
Sebastian Dröge
bb05bbafd5 Revert "dashdemux: Include the period start in the fragment timestamps in all cases"
This reverts commit e671ad25a9.

The timestamps should restart at 0 again for each period, but we have to
adjust the segment to map those timestamps to the actual stream time and
running time of that period.

Otherwise we would have timestamps that conflict with the ones from the tfdt
inside the MP4 container, which are restarting at 0 for each period.

https://bugzilla.gnome.org/show_bug.cgi?id=752409
2015-09-14 19:53:03 +02:00
Sebastian Dröge
cfe2871a5e mpdparser: Consider the repeat count when checking if a segment is the last one
Otherwise we play only the first repetition of the last segment and then EOS.

https://bugzilla.gnome.org/show_bug.cgi?id=752480
2015-09-14 19:49:14 +02:00
Thiago Santos
cc599bb5b5 dashdemux: also check for subfragments on has_next_fragment
In dash isombff profile the fragment is split into subframents where
bitrate switching is possible. Also take that into consideration
when checking if a stream has next fragments.
2015-09-14 13:56:10 -03:00
Miguel París Díaz
25f0787c1c opusenc: improve deprecated properties docs
https://bugzilla.gnome.org/show_bug.cgi?id=754819
2015-09-11 23:33:19 +02:00
Miguel París Díaz
f000cd4963 opusenc: do not throw g_warning when getting deprecated properties
https://bugzilla.gnome.org/show_bug.cgi?id=754819
2015-09-11 23:33:19 +02:00
Matthew Waters
38d360675c gtk, qt: more specifically define the compile time requirements
Otherwise we could include headers/configurations that will
never been installed.

https://bugzilla.gnome.org/show_bug.cgi?id=754732
2015-09-10 13:11:06 +10:00
Matthew Waters
bca1fd1040 qt: use our function table instead of directly calling gl functions
Otherwise when building with --as-needed we would need to link to
a GL or GLES library.

https://bugzilla.gnome.org/show_bug.cgi?id=754732
2015-09-10 00:33:40 +10:00
Vincent Penquerc'h
6d1eda9391 mpdparser: fix period start time scaling
This GstStreamPeriod start value is expressed in nanoseconds,
and the glib time addition function expects microseconds.
There seems to have been a confusion with GstPeriodNode's start
field, which is expressed in milliseconds.

Additionally, add a warning if the timestamp modification did
not succeed, and NULL was returned.
2015-09-07 12:52:03 +01:00
Jan Schmidt
779ad060a4 faac: Add bitrate info to the tags output.
Makes it possible for muxers to know the target bitrate as soon
as encoding starts, which flvmux now uses.
2015-09-05 23:42:50 +10:00
Thibault Saunier
de29038d1e gtk: Do not consider GtkEvents as handled
Applications might still want to use them
after the sink transformed them into
GstNavigation events
2015-09-04 16:25:44 +02:00
Nirbheek Chauhan
77f68f6e10 qmlsink: Ensure that at least one windowing system is available
Otherwise, we'll just crash at runtime because the gl context is NULL

https://bugzilla.gnome.org/show_bug.cgi?id=754108
2015-08-31 23:16:07 +01:00
Tim-Philipp Müller
1cb3e8c591 gtk, qt, gl: fix typo in debug and error messages 2015-08-31 18:06:31 +01:00
Tim-Philipp Müller
536e3742aa Fix file permissions of some files 2015-08-28 19:55:59 +01:00
Vanessa Chipirrás Navalón
1e14ceedb3 edgedetect: Rename gstedgedetect.c to gstedgedetect.cpp for consistency.
Change the file extension to cpp and add it into Makefile for consistency
with other elements of opencv.

https://bugzilla.gnome.org/show_bug.cgi?id=754148
2015-08-28 14:23:02 +01:00