Commit graph

5127 commits

Author SHA1 Message Date
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