Commit graph

19373 commits

Author SHA1 Message Date
Luis de Bethencourt
0113029fb9 opencv: facedetect: free IplImage with cvReleaseImage
Using delete() with IplImage will fail to free some of the structure's
contents. cvReleaseImage() is the proper way of freeing the memory.
2015-08-05 11:56:37 +01:00
Luis de Bethencourt
cc8af753b9 opencv: facedetect: check pointer before using it
Check if profile is NULL before dereferencing it with new. Also, new will
never return NULL; if allocation fails, a std::bad_alloc exception will be
thrown instead. Remove check for a NULL return.

CID #1315258
2015-08-05 11:39:03 +01:00
Luis de Bethencourt
ca52600ccb x265enc: remove dead code
level_ok is only used in a check that will never be true, removing it.

CID #1315255
2015-08-05 11:14:51 +01:00
Luis de Bethencourt
54b317ef78 x265enc: fix memory leak
Free vps_nal before returning.

CID #1315257
2015-08-05 11:11:14 +01:00
Carlos Garnacho
3129396643 rsvg: Don't leak a GstVideoCodecState
There's already the output_state variable with it, no need to
call gst_video_decoder_get_output_state() and get a new ref.

https://bugzilla.gnome.org/show_bug.cgi?id=753262
2015-08-04 19:14:43 -04:00
Jimmy Ohn
be714c7441 rawparse: fix duplicated format in handle_seek_pull
GstFormat variable are duplicated in handle_seek_pull function.
So we need to move this variable in condition statement.

https://bugzilla.gnome.org/show_bug.cgi?id=753243
2015-08-04 12:29:40 -03:00
Tim-Philipp Müller
0e70f8c94f opencv: facedetect: fix crashes in finalize
Fixes gst-inspect-1.0 -a crashing.
2015-08-04 14:30:17 +01:00
Sebastian Dröge
d3dbb69c8e winscreencap: Properly timestamp buffers with the current clock running time instead of doing magic
Also implement framerate handling correctly by borrowing the code from
ximagesrc. GstBaseSrc::get_times() can't be used for that, we have to
implement proper waiting ourselves.
2015-08-03 19:42:56 +03:00
Jan Schmidt
bd30d516a8 opencv: Fix 32-bit build / format strings.
Use G_GSIZE_FORMAT for format strings where relevant
2015-08-04 00:20:27 +10:00
Matthew Waters
374cd2a570 glvideomixer: swap control binding proxy
The ref_object and object parameters were the wrong way around.

For the typical use case where an application is setting a
GstControlBinding on the returned ghost pad:
1. our control binding would be removed when the new one was set
2. sync_values calls were not being forwarded from the internal
   pad to the ghost pad.

If an application attempts to perform other control binding
operations (get_* family of functions) on the internal pad, they
will also be forwarded to the ghost pad where a possible
GstControlBinding will provide the necessary values.
2015-08-03 20:08:52 +10:00
Thiago Santos
620af5b04b dash: mpdparser: plug leak in segmenttemplate parsing
Only copy the values from the parent if the current node doesn't
have that value, they were being copied from the parent and
then overwriten by the child node, leaking the parent's copy
2015-08-01 16:11:07 -03:00
Thiago Santos
9d431e605f tests: dash_mpd: add check for segmenttemplate inheritance
Checks if the values are properly inherited and overwriten
2015-08-01 16:11:07 -03:00
Thiago Santos
9c291904f5 tests: dash_mpd: add one more baseURL test
This other type of baseURL test was replaced by a more complex one,
better have both to keep both options working

Also adds another 2 variations of how baseURL can be generated

https://bugzilla.gnome.org/show_bug.cgi?id=752776
2015-08-01 16:11:01 -03:00
Florin Apostol
6ce65709bd dashdemux: tests: added duration format test
https://bugzilla.gnome.org/show_bug.cgi?id=752776
2015-08-01 16:10:55 -03:00
Florin Apostol
86c12c7357 dashdemux: tests: update unit test for baseURL
Update the unit test for baseURL to test that it is properly
resolved taking into account parent baseURL elements.

https://bugzilla.gnome.org/show_bug.cgi?id=752776
2015-08-01 11:52:26 -03:00
Thiago Santos
2df67f9da0 templatematch: revert rename of property
The property doesn't need to have its name changed because of C++,
just the instance variables.
2015-08-01 11:52:12 -03:00
Vanessa Chipirrás
02b9daafdf facedetect: Add unit test
I created four utilities of the detected features:
1- If you hide your mouth, the volume of video is low.
2- If you hide the nose, the volume of the video is up.
3- If you hide the full face, the video stops.

You can see proof of this here:
https://www.youtube.com/watch?v=pxzejNKV_WQ

https://bugzilla.gnome.org/show_bug.cgi?id=748377
2015-07-31 17:43:56 +01:00
Luis de Bethencourt
2111f50a6f templatematch: rename conflicting variable
With the switch of gstopencv.c to C++, all OpenCV elements are built with
g++. The template variable clashes with C++'s feature of the same name.
Rename template to templ to avoid any clash.
2015-07-31 16:49:35 +01:00
Vanessa Chipirrás
78d0c5f01e facedetect: need to migrate to C++
The cascade classifier changes its structure on new version of OpenCV.
The need to migrate to C++ to utilize the new load method of OpenCV which
allows to load the new classifiers.

https://bugzilla.gnome.org/show_bug.cgi?id=748377
2015-07-31 16:49:17 +01:00
Vineeth TM
9115a750f7 dtsdec: fix taglist leak
taglist merge doesnt take ownership. So should free the tags after use

https://bugzilla.gnome.org/show_bug.cgi?id=753086
2015-07-31 10:00:13 +01:00
Heinrich Fink
0cc6d16c94 applemedia/avsample: Fix racy cleanup of CA layer
The block that is dispatched async to the main thread assumed the
wrapping GstAvSampleVideoSink to be alive. However, at the time of
the block execution the GstObject instance that is deferenced to access
the CA layer might already be freed, which caused occasional crashes.
Instead, we now only pass the CoreAnimation layer that needs to be
released to the block. We use __block to make sure the block is not
increasing the refcount of the CA layer again on its own.

https://bugzilla.gnome.org/show_bug.cgi?id=753081
2015-07-31 12:59:00 +10:00
Olivier Crête
035e51b010 tests: Add test for seeking live pipelines
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
1cb49c429b tests: Make source live to re-enable aggregator timeout tests
The live mode is only enabled if one of the sources if live.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
ce6206388c tests: Add audiointerleave test to show that queuing works
This tests fails without the queuing patch because incoming buffers are
not delivered before they are needed.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
10ef6403b6 audiointerleave: Avoid caps processing if not yet negotiated
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
3f2bc1e4b2 audioaggregator: On timeout, resync pads with not enough data
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
6efc106a67 aggregator: Queue "latency" buffers at each sink pad.
In the case where you have a source giving the GstAggregator smaller
buffers than it uses, when it reaches a timeout, it will consume the
first buffer, then try to read another buffer for the pad. If the
previous element is not fast enough, it may get the next buffer even
though it may be queued just before. To prevent that race, the easiest
solution is to move the queue inside the GstAggregatorPad itself. It
also means that there is no need for strange code cause by increasing
the min latency without increasing the max latency proportionally.

This also means queuing the synchronized events and possibly acting
on them on the src task.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
e4a1db2287 videoaggregator: Remove broken _clip vfunc
It never does anything.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Vineeth TM
09992f32dc h265parse: Avoid checking for Non Mandatory VPS NAL
VPS is not mandatory, and need not check for its presence before setting
the caps. Because of the check, in streams which don't have VPS,
sticky event mishandling happens.

https://bugzilla.gnome.org/show_bug.cgi?id=752807
2015-07-30 15:10:05 +01:00
Vineeth TM
8f7a84a9a1 sdpdemux: assertion error due to wrong condition check
In media to caps function, reserved_keys array is being used for variable i,
leading to GLib-CRITICAL **: g_ascii_strcasecmp: assertion 's1 != NULL' failed
changed it to variable j

https://bugzilla.gnome.org/show_bug.cgi?id=753009
2015-07-30 15:51:53 +03:00
Luis de Bethencourt
22baf364fe gstglfilterbin: remove unused variable
res is set multiple times but never used or returned. Removing it.
2015-07-30 11:12:26 +01:00
Olivier Crête
69fa4f9a5b aggregator: Default to "zero" start time selection mode as documented 2015-07-29 20:07:09 -04:00
Olivier Crête
50b7d1d577 aggregator: Ignore the "first" mode if the segment not a time segment 2015-07-29 20:06:11 -04:00
Sebastian Dröge
b21f01276c glupload: Remove debug output from gst_gl_upload_transform_caps()
We can't know if the GstGLUpload type is initialized at this point already,
and thus our debug category might not be initialized yet... and cause an
assertion here.

As we don't print debug output for any of the other transform functions, let's
defer this problem for now.
2015-07-29 19:11:58 +01:00
Luis de Bethencourt
82a2b43bdd glstereomix: remove redundant initialization
v is initialized in the for loop init, no need to do it twice. Removing
first initialization.
2015-07-29 17:49:01 +01:00
Luis de Bethencourt
0e29906a6f rtp: remove dead assignment
Value set to ret will be overwritten at least once at the end of the while
loop, removing assignment.
2015-07-29 17:33:27 +01:00
Tim-Philipp Müller
d37fcff732 mpegtsmux: use GQueue instead of GList prepend/reverse 2015-07-29 17:30:15 +01:00
Luis de Bethencourt
d6b637532f sdpdemux: remove redundant assignment
Value of p is already set below just before being used. Removing this
first assignment that will be ignored.
2015-07-29 17:19:33 +01:00
Luis de Bethencourt
7ddaf8741b mpegtsbase: remove redundant check
No need to check if done is True since break will already terminate the for
loop.
2015-07-29 16:52:08 +01:00
Sebastian Dröge
a4a2638d86 sdpdemux: Don't assert in GstAdapter if no data was received before EOS 2015-07-29 14:35:50 +01:00
Sebastian Dröge
b88d93ff7b compositor: Add unit tests for the new aggregator start-time-selection property
https://bugzilla.gnome.org/show_bug.cgi?id=749966
2015-07-29 14:35:50 +01:00
Sebastian Dröge
fab880fddc aggregator: Add property to select how to decide on a start time
Before aggregator based elements always started at running time 0,
now it's possible to select the first input buffer running time or
explicitly set a start-time value.

https://bugzilla.gnome.org/show_bug.cgi?id=749966
2015-07-29 14:35:50 +01:00
Sebastian Dröge
86a9b84c92 sdpdemux: Strip keys from the fmtp that we use internally in our caps
Skip keys from the fmtp, which we already use ourselves for the
caps. Some software is adding random things like clock-rate into
the fmtp, and we would otherwise here set a string-typed clock-rate
in the caps... and thus fail to create valid RTP caps

https://bugzilla.gnome.org/show_bug.cgi?id=753009
2015-07-29 14:35:50 +01:00
Jan Schmidt
c1b0d818bb h264parse: Add more NAL types for debugging output.
Register more NAL unit types so that they are dumped
by name in the debug output instead of being labelled
'Invalid'
2015-07-29 23:10:49 +10:00
Jan Schmidt
55373e21a8 mpegtsmux: Don't clear the PID on reset.
The PID on a pad shouldn't change on a state change, only
if the pad is freed and a new one created. Clearing the PID
prevented mpegtsmux from being reused, because all packets
would end up muxed in PID 0

https://bugzilla.gnome.org/show_bug.cgi?id=752999
2015-07-29 23:10:49 +10:00
Jan Schmidt
0d170d51c7 mpegtsmux: Accumulate streamheaders in reverse
Accumulate streamheader packets in reverse into the
GList for efficiency, and reverse the list once when
processing.

Improves muxing speed when there are a lot of
streamheaders.
2015-07-29 23:10:49 +10:00
Sebastian Dröge
431c4b5e84 amcvideoenc: Always set i-frame-interval setting
Most encoders fail to initialize if we don't set it at all.
2015-07-29 10:13:17 +01:00
Vineeth TM
9b43bed607 h263parse: fix caps memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=752991
2015-07-29 09:25:47 +01:00
Sebastian Dröge
730b5c8aa2 aggregator: Query the peer latency again on the next opportunity after a pad was added or removed
Adding a pad will add a new upstream that might have a bigger minimum latency,
so we might have to wait longer. Or it might be the first live upstream, in
which case we will have to start deadline based aggregation.

Removing a pad will remove a new upstream that might have had the biggest
latency, so we can now stop waiting a bit earlier. Or it might be the last
live upstream, in which case we can stop deadline based aggregation.
2015-07-28 23:23:32 +01:00
Nicolas Dufresne
47e436916d glcolorconvert-test: Test notify function for setup_wrapped
gst_gl_memory_setup_wrapped() now takes a destroy notify function. This
destroy notify is called to track the memory life time, hence will
notify each time a memory get destroyed. This test check that the
callback count is correct.
2015-07-28 11:20:40 -04:00