Commit graph

4295 commits

Author SHA1 Message Date
Sebastian Dröge bc8e1465dc openh264dec: On ::finish() stop trying if the decoder returned that no output is available 2014-10-03 17:23:36 +03:00
Sebastian Dröge 088cf16bf9 openh264: Run gst-indent over everything 2014-10-03 17:23:36 +03:00
Sebastian Dröge 09f5b9acec openh264: Remove unused codecparsers lib 2014-10-03 17:23:36 +03:00
Sebastian Dröge 68baaf19c3 openh264: Add FIXME comment about missing API in openh264 2014-10-03 17:23:36 +03:00
Sebastian Dröge 0e15f47bdf openh264dec: Try to handle frame reordering
As openh264 has no way to attach any IDs to input frames that we then get on
the output frames, we have to assume that the input has valid PTS. We just
take the frame with the oldest PTS, and if there is no PTS information we take
the one with the oldest DTS.
2014-10-03 17:23:36 +03:00
Sebastian Dröge 8ae2af61ce openh264dec: Don't drop videocodec frames if we can't decode them *yet*
Fixes jittery playback of streams with B frames.
2014-10-03 17:23:36 +03:00
Sebastian Dröge 1dfcdb9ce3 openh264dec: GstVideoDecoder works on frames, not sub-frames (e.g. NALs)
And we can just pass complete AUs to the decoder without problems.
2014-10-03 17:23:36 +03:00
Sebastian Dröge 1eb740a7c3 openh264dec: As we require NAL alignment from upstream we don't need to parse anything 2014-10-03 17:23:36 +03:00
Sebastian Dröge 0a31814ef3 openh264dec: Properly drain codec on ::finish() 2014-10-03 17:23:35 +03:00
Sebastian Dröge 10475b6793 openh264enc: Properly drain the encoder on ::finish() 2014-10-03 17:23:35 +03:00
Sebastian Dröge 8aedcc6bde openh264enc: We always get a single frame as output, not a NAL
No need to accumulate NALs.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 70d4e6b740 openh264enc: Fix up caps and stride handling 2014-10-03 17:23:35 +03:00
Sebastian Dröge f3cabe3cc3 openh264enc: Add support for GstVideoMeta
This will allow upstream elements to work more efficiently.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 2285cbaa45 openh264dec: Add support for GstVideoMeta
This will make operation with various sinks faster for free.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 4475663569 openh264dec: Optimize frame copying a bit 2014-10-03 17:23:35 +03:00
Sebastian Dröge 4c5a504a7b openh264dec: Don't forget to unref the input state 2014-10-03 17:23:35 +03:00
Sebastian Dröge 76b5c1c511 openh264dec: Fix various crashes on ::stop() 2014-10-03 17:23:35 +03:00
Sebastian Dröge bc5c6a0fc9 openh264dec: Remove invalid sprops-parameter-set handling
This only exists on RTP caps, not H264 caps.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 739a10d84e openh264enc: Don't set caps manually
This will break the order of events in GStreamer.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 18e7540263 openh264dec: Fix input state handling and propagation of upstream caps fields 2014-10-03 17:23:35 +03:00
Sebastian Dröge cf4ec9b04e openh264: Add OpenH264 based encoder/decoder elements
These are the openh264 elements released under the BSD-2 license
by Ericsson as part of the OpenWebRTC project.
https://github.com/EricssonResearch/openwebrtc-gst-plugins

https://bugzilla.gnome.org/show_bug.cgi?id=737788
2014-10-03 17:23:35 +03:00
Tim-Philipp Müller 3953b8e419 fluiddec: don't crash on 0-sized input buffers
https://bugzilla.gnome.org/show_bug.cgi?id=737658
2014-10-01 00:53:59 +01:00
Lubosz Sarnecki 04034b11f4 gltransformation: graphene multiplication order has changed
https://bugzilla.gnome.org/show_bug.cgi?id=733510
2014-09-30 22:11:35 +10:00
Matthew Waters d1360ef2c7 glvideomixer: update element documentation 2014-09-30 20:39:36 +10:00
David Waring 29f1f4533e dash: Use GstUri to join URIs 2014-09-29 12:22:19 +03:00
Matthew Waters 3ab17dfbe3 Revert accidental push: "gltestsrc: implement checkers pattern with GLSL"
This reverts commit eae09179f0.
2014-09-29 00:27:30 +10:00
Wang Xin-yu (王昕宇) eae09179f0 gltestsrc: implement checkers pattern with GLSL 2014-09-28 21:43:34 +10:00
Matthew Waters b658f04d6c gloverlay: fix zero output frames with YUY2/UYVY
also, be nice and disable blending for other elements
2014-09-26 22:29:56 +10:00
Matthew Waters 720ba932c9 gloverlay: protect desktop gl specific tokens with #if 2014-09-26 22:22:06 +10:00
Matthew Waters eaa424cec7 gloverlay: free the image memory every time the location changes
fixes a memory leak
2014-09-26 12:28:55 +10:00
Sebastian Dröge 9c6c82887f gloverlay: Include into the build with GLES2 only too 2014-09-25 20:48:59 +03:00
Matthew Waters 7e69750336 gltestsrc: free the shader on stop 2014-09-26 01:59:44 +10:00
Matthew Waters acb21cdb83 glvideomixer: fix blending with low-alpha sources
We also need to apply the blend paramaters to the alpha channel otherwise
the output of the blend will appear black at low alpha values (< 0.2).
2014-09-26 01:59:43 +10:00
Matthew Waters 7b3024c387 gloverlay: reimplement everything
- update for shaders
 - add alpha property
 - image placement properties shamelessly borrowed from gdkpixbufoverlay
 - image placement properties are GstController able
 - use GstGLMemory for the overlay image data
 - add support for gles2
2014-09-26 01:59:43 +10:00
Luis de Bethencourt 97ed6a2668 mpeg2enc: break statement unnecessary
Code flow never arrives to the break statements due to the goto's. So the
breaks are unnecessary.

https://bugzilla.gnome.org/show_bug.cgi?id=736942
2014-09-25 15:45:57 +01:00
Lihua Liu 22e09f19ed curlsmtpsink: Email with multipart content-type should end with a final boundary
Add final boundary for each of the sending out emails from smtpsink.

https://bugzilla.gnome.org/show_bug.cgi?id=736134
2014-09-25 11:16:30 +03:00
Stefan Sauer f8f2cca0e4 curl*sink: add more logging 2014-09-25 10:14:41 +02:00
Stefan Sauer 04d271dfd3 curlbasesink: add a debug function
If gstreamer is build with logging enabled, add a debug function and output
verbose messages to the log instead of stderr.
2014-09-25 08:05:50 +02:00
Stefan Sauer 8a8d3ac351 curlhttpsink: only add content-disposition header if a filename is set
The header is optional and therefore we better omit it if we don't have a filename.
2014-09-24 22:25:55 +02:00
Stefan Sauer a80cde8cb6 curlbasesink: don't replace specific error messages with a generic one
Only set an error if we haven't set one already.
2014-09-24 22:25:55 +02:00
Stefan Sauer 2e51ba1219 curltlssink: swap check
Lets check for NULL first, as that is the default anyway.
2014-09-24 22:25:55 +02:00
Matthieu Bouron 22c7559152 dashdemux: mark first buffer as discont after restarting a download task
Mark first buffer as discont after restarting a download task, so
downstream can reset its state to properly handle the new fragment.

Related issue: https://bugzilla.gnome.org/show_bug.cgi?id=736318

https://bugzilla.gnome.org/show_bug.cgi?id=736319
2014-09-24 13:30:20 -03:00
Thiago Santos 2273c15f15 dashdemux: push a time segment when restarting streaming
This should inform demuxers/decoders downstream that the stream is
about to start from a new position and they should flush accordingly

https://bugzilla.gnome.org/show_bug.cgi?id=736319
2014-09-24 12:35:37 -03:00
Anuj Jaiswal e4247f0a5a mplex: break statement unnecessary
One more code flow issue where it never arrives to the break statement due to
the goto. So the break is unnecessary.
Plus two coding style fixes.

https://bugzilla.gnome.org/show_bug.cgi?id=736895
2014-09-24 14:45:20 +01:00
Matthew Waters 9f953f297f glvideomixer: skip input frames with an alpha of 0 2014-09-24 14:31:19 +10:00
Matthew Waters c44352b11f gl: download whenever we have sysmem capsfeatures
Otherwise we could pass on a RGBA formatted buffer and downstream would
misinterpret that as some other video format.

Fixes pipelines of the form

    gleffects ! tee ! xvimagesink
2014-09-24 13:16:30 +10:00
Sebastian Rasmussen 462d27e60a gsettings: Fix typo in description
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=736933
2014-09-23 23:15:38 +03:00
Lubosz Sarnecki b2398e3fd1 gltestsrc: add Mandelbrot fractal pattern.
https://bugzilla.gnome.org/show_bug.cgi?id=735131
2014-09-24 00:40:57 +10:00
Lubosz Sarnecki 3736f944b5 gltestsrc: implement snow pattern with GLSL.
https://bugzilla.gnome.org/show_bug.cgi?id=735131
2014-09-24 00:40:37 +10:00
Matthew Waters 5b8d7a443e glupload: provide the output buffer that is rendered into
Allows callers to properly reference count the buffers used for
rendering.

Fixes a redraw race in glimagesink where the previous buffer
(the one used for redraw operations) is freed as soon as the next
buffer is uploaded.

1. glimagesink uploads in _prepare() to texture n
1.1 glupload holds buffer n
2. glimagesink _render()s texture n
3. glimagesink uploads texture n+1
3.1 glupload free previous buffer which deletes texture n
3.2 glupload holds buffer n+1
4. glwindow resize/expose
5. glimagesink redraws with texture n

The race is that the buffer n (the one used for redrawing) is freed as soon as
the buffer n+1 arrives.  There could be any amount of time and number of
redraws between this event and when buffer n+1 is actually rendered and thus
replaces buffer n as the redraw source.

https://bugzilla.gnome.org/show_bug.cgi?id=736740
2014-09-21 21:36:49 +10:00
Sanjay NM a1ae26acbd gl: Removed unreachable break, unused variable
https://bugzilla.gnome.org/show_bug.cgi?id=736957
2014-09-19 21:48:14 +10:00
Philippe Normand 6d67b5263f hlsdemux: lock client mutex before entering the retry_failover block
This is consistent with the case where the block execution is
triggered by the goto invoked after the current_variant update.

https://bugzilla.gnome.org/show_bug.cgi?id=736919
2014-09-18 23:28:15 +01:00
George Kiagiadakis e289ab07c1 mssdemux: synchronize with the download loop thread to signal it to continue
If EOS or ERROR happens before the download loop thread has reached its
g_cond_wait() call, then the g_cond_signal doesn't have any effect and
the download loop thread stucks later.

https://bugzilla.gnome.org/show_bug.cgi?id=735663
2014-09-18 13:38:29 -03:00
George Kiagiadakis f4546b64ea hlsdemux: synchronize with the download loop thread to signal it to continue
If EOS or ERROR happens before the download loop thread has reached its
g_cond_wait() call, then the g_cond_signal doesn't have any effect and
the download loop thread stucks later.

https://bugzilla.gnome.org/show_bug.cgi?id=735663
2014-09-18 13:38:27 -03:00
George Kiagiadakis 55032ae5fe dashdemux: synchronize with the download loop thread to signal it to continue
If EOS or ERROR happens before the download loop thread has reached its
g_cond_wait() call, then the g_cond_signal doesn't have any effect and
the download loop thread stucks later.

https://bugzilla.gnome.org/show_bug.cgi?id=735663
2014-09-18 13:38:25 -03:00
Thiago Santos 01ccac24fa mssdemux: fix clearing of eos state in pads
The internal pad still keeps its EOS flag and event as it can be assigned
after the flush-start/stop pair is sent. The EOS is assigned from the streaming
thread so this is racy.

To be sure to clear it, it has to be done after setting the source to READY to
be sure that its streaming thread isn't running.

https://bugzilla.gnome.org/show_bug.cgi?id=736012
2014-09-18 12:14:30 -03:00
Thiago Santos 07b59c93c2 hlsdemux: fix clearing of eos state in pads
The internal pad still keeps its EOS flag and event as it can be assigned
after the flush-start/stop pair is sent. The EOS is assigned from the streaming
thread so this is racy.

To be sure to clear it, it has to be done after setting the source to READY to
be sure that its streaming thread isn't running.

https://bugzilla.gnome.org/show_bug.cgi?id=736012
2014-09-18 12:14:30 -03:00
Thiago Santos 24c99712a8 dashdemux: fix clearing of eos state in pads
The internal pad still keeps its EOS flag and event as it can be assigned
after the flush-start/stop pair is sent. The EOS is assigned from the streaming
thread so this is racy.

To be sure to clear it, it has to be done after setting the source to READY to
be sure that its streaming thread isn't running.

https://bugzilla.gnome.org/show_bug.cgi?id=736012
2014-09-18 12:14:30 -03:00
Anuj Jaiswal 8b180b85a2 faad: logical disjunction consecutive return, break unnecessary
https://bugzilla.gnome.org/show_bug.cgi?id=736790
2014-09-18 12:33:35 +03:00
Ognyan Tonchev 8b0030d044 waylandsink: do not leak buffer pool in error case
https://bugzilla.gnome.org/show_bug.cgi?id=736735
2014-09-17 09:43:58 +03:00
Ognyan Tonchev 66967bb203 gltestsrc: do not leak pool in error cases
https://bugzilla.gnome.org/show_bug.cgi?id=736730
2014-09-16 12:48:43 +03:00
Ognyan Tonchev 984bab0bd0 openni2src: do not leak pool
https://bugzilla.gnome.org/show_bug.cgi?id=736731
2014-09-16 12:48:25 +03:00
Ognyan Tonchev 31703f9ac3 glmixer: do not leak pool in error cases
https://bugzilla.gnome.org/show_bug.cgi?id=736729
2014-09-16 12:48:01 +03:00
Sebastian Dröge 6fc64ebf5d webpdec: Remove unused variable 2014-09-16 11:24:37 +03:00
Vineeth T M 3480f16e72 webpdec: modify wrong packetized mode logic
packetized mode is being set when framerate is being set
which is not correct. Changing the same by checking the
input segement format. If input segment is in TIME it is
Packetized, and if it is in BYTES it is not.

https://bugzilla.gnome.org/show_bug.cgi?id=736252
2014-09-16 11:24:18 +03:00
Sebastian Dröge 775c5600c9 hlsdemux: Also refetch the playlist after the first fragment failure
Previously we only refetched the playlist if downloading a fragment
has failed once. We should also do that if it failed a second or third time,
chances are that the playlist was updated now and contains new URIs.
2014-09-15 13:33:45 +03:00
Sebastian Dröge 1ce7d89868 dash: Actually retry 3 times as advertised instead of 2 2014-09-15 11:59:49 +03:00
Sebastian Dröge d4a53a16dd hls: Actually retry 3 times as advertised instead of 2 2014-09-15 11:59:46 +03:00
Matthieu Bouron bce21e7398 mssdemux: improve position detection when a download restart
Query other src pads before falling back to the position of the last
known pushed segment (which can be far ahead in time).

https://bugzilla.gnome.org/show_bug.cgi?id=736421
2014-09-11 18:25:19 -03:00
Matthieu Bouron 4ed7c7919a dashdemux: improve position detection when a download restart
Query other src pads before falling back to the position of the last
known pushed segment (which can be far ahead in time).

https://bugzilla.gnome.org/show_bug.cgi?id=736421
2014-09-11 18:25:19 -03:00
Tim-Philipp Müller 7b8bd35d18 Fix up one-element lists in template caps 2014-09-10 17:24:39 +01:00
Nicola Murino 3a0a4a8d70 facedetect: Add new property min-stddev
face detection will be performed only if image standard deviation is
greater that min-stddev. Default min-stddev is 0 for backward
compatibility. This property will avoid to perform face detection on
images with little changes improving cpu usage and reducing false
positives

https://bugzilla.gnome.org/show_bug.cgi?id=730510
2014-09-05 10:38:32 +03:00
Lubosz Sarnecki f1b026c480 gltransformation: fix issues and expose mvp matrix
* aspect should not be 0 on init
* rename fovy to fov
* add mvp to properties as boxed graphene type
* fix transformation order. scale first
* clear color with 1.0 alpha

https://bugzilla.gnome.org/show_bug.cgi?id=734223
2014-09-05 09:39:34 +10:00
Sebastian Dröge bda4eae1cc mssdemux: Don't send flush events to deactivated pads
https://bugzilla.gnome.org/show_bug.cgi?id=736012
2014-09-04 18:21:38 +03:00
Sebastian Dröge 51a9e13bf2 dashdemux: Don't send flush events to deactivated pads
https://bugzilla.gnome.org/show_bug.cgi?id=736012
2014-09-04 18:21:25 +03:00
Sebastian Dröge f6c6d9c280 hlsdemux: Don't send flush events to deactivated pads
https://bugzilla.gnome.org/show_bug.cgi?id=736012
2014-09-04 18:20:58 +03:00
Sebastian Dröge 46b0310acd hlsdemux: Properly assign offsets to the files if we accumulate them instead of reading from the playlist 2014-09-04 17:49:23 +03:00
Tim-Philipp Müller cd325defca assrender: remove code that can't be reached
If this code could ever be reached, it would leak
memory (CID 1231979), but gst_caps_get_features()
never returns NULL, so that can't happen.
2014-08-29 19:26:40 +01:00
Sebastian Dröge e4b084acd9 glimagesink: Add missing break to switch
CID 1232801
2014-08-28 16:42:30 +03:00
Thomas Bluemel 04ca723461 hlsdemux: Support OpenSSL for AES decryption of HLS fragments
https://bugzilla.gnome.org//show_bug.cgi?id=735248
2014-08-28 10:34:55 +03:00
Tim-Philipp Müller 8a7079dda9 sndfile: don't decode formats that are better handled by other elements
In particular: flac, ogg, pcm, au, aiff, wav.

https://bugzilla.gnome.org/show_bug.cgi?id=722316
2014-08-25 12:22:44 +01:00
Youness Alaoui 3c80396424 srtpdec: Add support for RTP/RTCP mixing if data arrives on RTCP pad
https://bugzilla.gnome.org/show_bug.cgi?id=734321
2014-08-21 18:45:19 -04:00
Tim-Philipp Müller 334a71506c dashdemux: fix abort in error code path with newer glib
Don't forget to unlock mpd client again when erroring out.
Fixes abort when g_mutex_clear() is called on a locked mutex.
2014-08-21 16:25:55 +01:00
Lubosz Sarnecki ddaaff3376 glimagesink: expose context
* expose context in draw / reshape callbacks
* add context property

https://bugzilla.gnome.org/show_bug.cgi?id=734482
2014-08-21 17:38:57 +10:00
Thiago Santos 1cabb3b5a5 dashdemux: unref pad reference when removing internal source in error
Avoids leaking the pad in error situations
2014-08-19 17:17:33 -03:00
Thiago Santos 4afa05e567 dashdemux: read language from ContentComponent node as a fallback
If the language is not specified in the AdaptationSet, use the ContentComponent
node to get it. We only get it if there is only a single ContentComponent as
it doesn't seem clear on what to do if there are multiple entries

https://bugzilla.gnome.org/show_bug.cgi?id=732237
2014-08-19 16:02:52 -03:00
Matthieu Bouron 82fdb3aefc dashdemux: push language code tag
Language code tag is retrieved from the AdaptationSet language
property.

https://bugzilla.gnome.org/show_bug.cgi?id=732237
2014-08-19 15:34:01 -03:00
Matthew Waters 30ddb384ab glmixer: unref the GstGLUpload in the pad if freed while running
Dynamic pipelines that get and release the sink pads will finalize
the pad without going through gst_gl_mixer_stop() which is where the
upload object is usually freed.  Don't leak objects in such case.
2014-08-19 17:01:36 +10:00
Wang Xin-yu (王昕宇) 98152017b7 glvideomixer: avoid gl resource race condition between different thread
https://bugzilla.gnome.org/show_bug.cgi?id=734830
2014-08-19 17:00:58 +10:00
Matthew Waters 0b0c116327 glvideomixer: don't clobber unnecessary GstVideoInfo fields
otherwise we might clobber other important fields such as the frame rate.
2014-08-19 14:44:29 +10:00
Matthew Waters 510a016c88 glvideomixer: get the attribute from the correct shader 2014-08-19 14:43:42 +10:00
Matthew Waters c6706adfcc glimagesink: unref the window on navigation event
plugs a memory leak
2014-08-19 14:24:02 +10:00
Thibault Saunier 16201cec34 hlsdemux: Do not switch playlist on trick modes
Instead always use the low bandwith playlist making things go smoother
as the current heuristic is rather set for normal playback, and
currently it does not behave properly.

https://bugzilla.gnome.org/show_bug.cgi?id=734445
2014-08-13 17:49:12 +02:00
Thibault Saunier 123953d429 hlsdemux: No need to have a I-Frame list to do trick modes
It just works cleanly without any index and there is no real reason for
that limitation. Also, there are very few stream with that feature.

https://bugzilla.gnome.org/show_bug.cgi?id=734445
2014-08-13 17:49:05 +02:00
Valentin PONS 03b70aecec facedetect: Use NULL to disable eyes/nose/mouth
Without printing a warning about it

https://bugzilla.gnome.org/show_bug.cgi?id=734623
2014-08-13 12:31:17 -03:00
Thiago Santos 7863be66ed assrender: save a few ref/unref pairs
The event/query functions already have a reference to the element, avoid
ref/unref in the functions handling caps queries and events.
2014-08-11 12:32:04 -03:00
Thiago Santos 0b67f872dc assrender: remove obsolete fixme 2014-08-11 12:31:17 -03:00
Thiago Santos 33c2372ae3 assrender: improve negotiation
Check if downstream supports overlay meta, if possible use it and
if not fallback to no-overlay caps

https://bugzilla.gnome.org/show_bug.cgi?id=733916
2014-08-11 12:22:44 -03:00
Thiago Santos 7895d88369 assrender: always intersect with the filter caps
Avoids returning values that peers can't use

https://bugzilla.gnome.org/show_bug.cgi?id=733916
2014-08-11 12:21:28 -03:00
Sreerenj Balachandran b9105792da webenc: Add WebP image encoder
https://bugzilla.gnome.org/show_bug.cgi?id=733087
2014-08-11 16:24:48 +03:00
Sebastian Rasmussen 4482ce3423 sbcenc: Unref output caps in error cases
gst_caps_intersect() returns a reference to a caps object which in
the normal case is consumed, but in error cases must be unreferenced.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734521
2014-08-11 15:32:28 +03:00
Sebastian Rasmussen a9493a3985 opusenc: Unref pad template caps after usage
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734517
2014-08-11 15:31:45 +03:00
Tim-Philipp Müller c81a2d1c6c opengl: update element docs for 1.x 2014-08-10 18:07:28 +01:00
Sebastian Rasmussen b53433fbbf openal: Unref pad template caps after usage
https://bugzilla.gnome.org/show_bug.cgi?id=734520
2014-08-10 12:38:57 +01:00
Tim-Philipp Müller 2f8e528f37 ladspa: fix up broken patch merge
Sorry, should've been commit --amend
2014-08-10 12:29:04 +01:00
Sebastian Rasmussen 4dde567480 ladspa: Unref pad template caps after usage
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734519
2014-08-10 11:49:53 +01:00
Sebastian Rasmussen 9b7314cb6c ladspa: Unref pad template caps after usage
https://bugzilla.gnome.org/show_bug.cgi?id=734519
2014-08-10 11:47:17 +01:00
Sebastian Rasmussen 1b56e80147 dfbvideosink: Unref pad template caps after usage
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734518
2014-08-10 11:45:30 +01:00
Sebastian Rasmussen 961a704a74 gstgsmenc: Unref caps object after usage
gst_audio_encoder_set_output_format() does not consume caps, so
unreference that object instead.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734544
2014-08-10 11:26:51 +01:00
Sebastian Rasmussen e30f4a2851 opus: Improve annotation of internal function
https://bugzilla.gnome.org/show_bug.cgi?id=734543
2014-08-10 11:26:17 +01:00
George Kiagiadakis ea90ceac01 dashdemux: support downloading segments in reverse order
When a seek with a negative rate is requested, find the target
segment where gstsegment.stop belongs in and then download from
this segment backwards until the first segment.

This allows proper reverse playback.
2014-08-07 16:52:37 +03:00
Matthew Waters dab074899e glvideomixer: add a background property
That's compatible with the compositor/videomixer property

https://bugzilla.gnome.org/show_bug.cgi?id=731954
2014-08-07 19:21:02 +10:00
Thibault Saunier 0e67c13d2f ext:faad: Set rank to SECONDARY as the libav decoder is concidered better
https://bugzilla.gnome.org/show_bug.cgi?id=676131
2014-08-07 09:23:41 +02:00
Vasilis Liaskovitis 4dacc4ba55 GstGLWindow, GstGLImagesink, x11: Scale navigation events on resized windows
If window is resized, GstStructure pointer values have to be rescaled to
original geometry. A get_surface_dimensions GLWindow class method is added for
this purpose and used in the navigation send_event function.

https://bugzilla.gnome.org/show_bug.cgi?id=703486
2014-08-07 13:55:02 +10:00
Thiago Santos 24815a5feb dashdemux: return the error to the source immediately to stop faster
When flushing, this will prevent dashdemux from trying to download more
fragments or more chunks of the same fragment before stopping.

Also improves the error handling to not transform everything non-ok into
an error.

https://bugzilla.gnome.org/show_bug.cgi?id=734014
2014-08-01 10:37:15 -03:00
Matthew Waters 707cb58004 gl: document GST_GL_* environment variables
https://bugzilla.gnome.org/show_bug.cgi?id=733245
2014-08-01 16:43:47 +10:00
Robert Jobbagy bd3cefeecc faceblur: facedetect: add properties to faceblur
Makes faceblur have the same properties as facedetect. Also improves
the standard defaults and makes them the same in the 2 elements
2014-07-30 16:43:10 -03:00
Robert Jobbagy 43a4498569 faceblur: post message when profile loading fails 2014-07-30 16:43:10 -03:00
Robert Jobbagy 555d29681b facedetect: faceblur: update launch line examples
Reflect 1.0 and more useful examples
2014-07-30 16:43:10 -03:00
Matthew Waters 13960f0043 glimagesink: keep the uploaded buffer around on successful redisplay
We might need it later to perform a redisplay.  GstGLUpload will take
of releasing the previous buffer when it receives a new buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=733726
2014-07-29 13:25:22 +10:00
David Rothlisberger f5992a6cdd opencv templatematch: Set caps to BGR order
templatematch operates on BGR data. In fact, OpenCV's IplImage always
stores color image data in BGR order -- this isn't documented at all in
the OpenCV source code, but there are hints around the web (see for
example
http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html#SECTION00041000000000000000
and http://www.comp.leeds.ac.uk/vision/opencv/iplimage.html ).

gst_templatematch_load_template loads the template (the image to find)
from disk using OpenCV's cvLoadImage, so it is stored in an IplImage in
BGR order. But in gst_templatematch_chain, no OpenCV conversion
functions are used: the imageData pointer of the IplImage for the video
frame (the image to search in) is just set to point to the raw buffer
data. Without this fix, that raw data is in RGB order, so the call to
cvMatchTemplate ends up comparing the template's Blue channel against
the frame's Red channel, producing very poor results.
2014-07-28 14:22:27 -03:00
Thiago Santos aa5e25820b templatematch: mark pads as proxy caps
Allows negotiation to happen properly
2014-07-28 14:18:02 -03:00
William Manley 1b5483eef9 templatematch: Produce a warning message if we can't load a template image 2014-07-28 14:18:02 -03:00
William Manley 88cb33a1dc templatematch: Match rectangle grows redder with increased match certainty
This is useful for debugging your matches as it indicates how certain the
match was in addition to its position.
2014-07-28 14:18:02 -03:00
William Manley b608767288 templatematch: Allow changing template property on the fly
Previously changing the template property resulted in an exception
thrown from cvMatchTemplate, because "dist_image" (the intermediate
match-certainty-distribution) was the wrong size (because the
template image size had changed).

Locking has also been added to allow changing the properties (e.g. the
pattern to match) while the pipeline is playing.

 * gst_element_post_message is moved outside of the lock, because it will
   call into arbitrary user code (otherwise, if that user code calls into
   gst_templatematch_set_property on this same thread it would deadlock).

 * gst_template_match_load_template: If we fail to load the new template
   we still unload the previous template, so this element becomes a no-op
   in the pipeline. The alternative would be to keep the previous template;
   I believe unloading the previous template is a better choice, because it
   is consistent with the state this element would be in if it fails to
   load the very first template at start-up.

Thanks to Will Manley for the bulk of this work; any errors are probably
mine.
2014-07-28 14:18:01 -03:00
David Rothlisberger c77808055d templatematch: Pass video through when nothing to match against
The early return was bypassing the call to gst_pad_push. With no
filter->template (and thus no filter->cvTemplateImage) the rest of this
function is essentially a no-op (except for the call to gst_pad_push).

This (plus the previous commit) allows templatematch to be
enabled/disabled without removing it entirely from the pipeline, by
setting/unsetting the template property.
2014-07-28 14:17:28 -03:00
William Manley 056d652b92 templatematch: Remove no-op call to gst_templatematch_load_template
We have just set filter->template to NULL, so
gst_templatematch_load_template did nothing.
2014-07-28 11:26:13 -03:00
Matthew Waters 13c63154b0 glimagesink: silence gsignal warning
instance '0xblah' has no handler with id '13'
2014-07-27 13:27:10 +10:00
Matthew Waters 5291ba37d9 glimagesink: remove extra argument from debug call 2014-07-24 13:05:00 +10:00
Vasilis Liaskovitis 90a4444609 glimagesink: Add navigation interface and callbacks for GstGLWindow mouse/key signals
https://bugzilla.gnome.org/show_bug.cgi?id=703486
2014-07-24 12:48:57 +10:00
Wang Xin-yu (王昕宇) 1adb0a77d6 gl: fix multi gl object leaks
1. fix FBO leaks in decide_allocation
2. fix texture leaks in decide_allocation and reset
3. fix texture leaks in FBO incomplete error path
2014-07-24 11:46:56 +10:00
Nicola Murino bd4ae18938 facedetect: improve enum GstFaceDetectUpdates descriptions
https://bugzilla.gnome.org/show_bug.cgi?id=730509
2014-07-22 06:39:21 -03:00
Nicola Murino 3896dd8413 facedetect: make updates on_change works as expected
https://bugzilla.gnome.org/show_bug.cgi?id=730509
2014-07-22 06:39:21 -03:00
Thiago Santos e26e112e80 katedec: handle segment event earlier
Delaying the segment event to when caps are decided can cause issues as
the first thing katedec does on its chain function it doing a segment clip.
It will lead to an assertion if the segment format is undefined

https://bugzilla.gnome.org/show_bug.cgi?id=733226
2014-07-21 12:36:19 -03:00
Thiago Santos b0e63bbb9b katedec: handle streamheaders in caps
Properly handle the caps event by configuring the kate decoding lib using the
available streamheaders. This makes it possible to decode kate subtitles when
the stream is seeked before katedec gets the initial buffers that are usually
the streamheaders.

https://bugzilla.gnome.org/show_bug.cgi?id=733226
2014-07-21 12:36:19 -03:00
Sebastian Dröge c42595cc69 openni2src: Fix unitialized variable compiler warning
gstopenni2src.cpp:721:14: error: variable 'oni_ts' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
  } else if (src->color->isValid () && src->sourcetype == SOURCETYPE_COLOR) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gstopenni2src.cpp:752:26: note: uninitialized use occurs here
  GST_BUFFER_PTS (buf) = oni_ts - src->oni_start_ts;
                         ^~~~~~
gstopenni2src.cpp:721:10: note: remove the 'if' if its condition is always true
  } else if (src->color->isValid () && src->sourcetype == SOURCETYPE_COLOR) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gstopenni2src.cpp:721:14: error: variable 'oni_ts' is used uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized]
  } else if (src->color->isValid () && src->sourcetype == SOURCETYPE_COLOR) {
             ^~~~~~~~~~~~~~~~~~~~~~
gstopenni2src.cpp:752:26: note: uninitialized use occurs here
  GST_BUFFER_PTS (buf) = oni_ts - src->oni_start_ts;
                         ^~~~~~
gstopenni2src.cpp:721:14: note: remove the '&&' if its condition is always true
  } else if (src->color->isValid () && src->sourcetype == SOURCETYPE_COLOR) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~
gstopenni2src.cpp:642:18: note: initialize the variable 'oni_ts' to silence this warning
  uint64_t oni_ts;
                 ^
                  = 0
2014-07-21 10:14:17 +02:00
Sebastian Dröge 429f20531f hlsdemux: Make statistics message more generic for other adaptive streaming demuxers to reuse
https://bugzilla.gnome.org/show_bug.cgi?id=725828
2014-07-21 09:37:51 +02:00
Alexander Zallesov 7f4f9f09e3 hlsdemux: Provide statistics about time to download playlists and fragments
https://bugzilla.gnome.org/show_bug.cgi?id=725828
2014-07-21 09:37:51 +02:00
Sebastian Dröge a7e243b32e curlsshsink: Include gst.h and other stuff before anything else 2014-07-11 21:16:26 +02:00
Sebastian Dröge 1934847981 gl: Always build gstglmixer, not only when full OpenGL support is enabled 2014-07-11 13:58:55 +02:00
Sebastian Dröge 198d8dd5f1 curl: Use winsock2 instead and the GLib macro for checking if we're on Windows 2014-07-11 13:25:57 +02:00
Sebastian Dröge 0ea13d7a65 motioncells: Use no network API if not required 2014-07-11 13:25:18 +02:00
Alexey Pavlov 365d0cfb32 ext: Include winsock.h on Windows when required
https://bugzilla.gnome.org/show_bug.cgi?id=733052
2014-07-11 13:21:21 +02:00
Sebastian Dröge acb1d5afc3 gl: Link to all required libraries but not more 2014-07-11 12:06:48 +02:00
Sebastian Dröge 92d00d0233 gl: Move GstGLMixer to the plugin for now
It depends on GstAggregator and we don't want to install headers
for that yet.

https://bugzilla.gnome.org/show_bug.cgi?id=732207
2014-07-11 09:41:05 +02:00
Philip Withnall c57500a7f4 opus: Fix a double-unref in the Opus header code
The headers were never getting reffed when being added to the headers
list, which is later unreffed-and-freed by the caller (e.g.
gst_opus_parse_parse_frame()).

https://bugzilla.gnome.org/show_bug.cgi?id=733013
2014-07-11 09:05:32 +02:00
Nicolas Dufresne ab29217726 glimagesink: Keep aspect ratio by default
The expected default behaviour for video sink is to maintain the
aspect ratio. Fix the default value to reflect this. The property
default was already TRUE, but the value was not initially TRUE.
2014-07-09 15:03:53 -04:00
Nicolas Dufresne 25c289f6c4 facedetect: Make cascades dir a little more portable 2014-07-04 21:13:49 -04:00
Nicolas Dufresne 09fc19b83f handdetect: Use already mapped image
No need to map again the image, it's already handled by the base class.
2014-07-04 21:13:49 -04:00
Nicolas Dufresne efde572cec handdetect: Move size warning in set_caps so it's called once 2014-07-04 21:13:49 -04:00
Nicolas Dufresne 34e23c2e21 faceblur: Port to OpencvVideoFilter base class
This fixes issue whit black frames when special memory, like GlMemory is
in used.

https://bugzilla.gnome.org/show_bug.cgi?id=732756
2014-07-04 21:13:49 -04:00
Nicolas Dufresne 42a83d2c64 cvvideofilter: Don't try to make buffer writable
First this is handle by base transform, hence this is a no-op, and if it wasn't it
would lead to a buffer copy being leaked, and then an unreffed buffer being
pushed downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=732756
2014-07-04 21:13:11 -04:00
Nicolas Dufresne 2acdb2ecf2 cvvideofilter: Check buffer_map return value
Check the resturn value and cleanly fail if we could not mapped the buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=732756
2014-07-04 21:12:38 -04:00
Sebastian Rasmussen 77905f632e mimdec: Print invalid fourcc in error message in hex
Previously this was printed as characters which caused later processing
of the error message to sometimes warn about non-UTF-8 characters.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732715
2014-07-04 17:48:14 +01:00
Arun Raghavan 652f0b4fd2 openni2src: Add proper clean up of OpenNI2 objects
https://bugzilla.gnome.org/show_bug.cgi?id=732535
2014-07-03 23:08:22 +05:30
Arun Raghavan 46a7f258a1 openni2src: Don't embed C++ objects in our GObject
Since C++ objects shoudl be properly constructed, we keep only pointers
to them and manually construct them on the heap.

https://bugzilla.gnome.org/show_bug.cgi?id=732535
2014-07-03 23:08:22 +05:30
Arun Raghavan 357298c84f openni2src: Close device when stopping the stream
https://bugzilla.gnome.org/show_bug.cgi?id=732535
2014-07-03 23:08:22 +05:30
Arun Raghavan 0b6eae66df openni2src: Fix timestamping
OpenNI2 makes no guarantees of timestamp starting from zero, just that
it will be a millisecond timestamp. Make timestamps start from zero
manually so things work correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=732535
2014-07-03 23:08:22 +05:30
Arun Raghavan 6c4269c0e5 openni2src: Make the location property not be mandatory
Our calls to device open already handle the unset location case (by
opening any available device).

https://bugzilla.gnome.org/show_bug.cgi?id=732535
2014-07-03 23:08:22 +05:30
Arun Raghavan 7afb4a386a openni2src: Open device on NULL->READY
https://bugzilla.gnome.org/show_bug.cgi?id=732535
2014-07-03 23:08:22 +05:30
Arun Raghavan b6e07e77c2 openni2src: Fix deadlock when _get_caps() is called before READY
The object lock was not being dropped in the empty case. Restructured
the code a bit to make this sort of error less likely.

https://bugzilla.gnome.org/show_bug.cgi?id=732535
2014-07-03 23:08:22 +05:30
Arun Raghavan 65bddd1e0c openni2src: Mark element as a live source
https://bugzilla.gnome.org/show_bug.cgi?id=732535
2014-07-03 23:08:22 +05:30
Jan Alexander Steffens (heftig) 86080cb5cc rtmpsrc: Report limited bandwidth
Makes uridecodebin treat this source as a stream source,
allowing timeshifting.

https://bugzilla.gnome.org/show_bug.cgi?id=732335
2014-07-01 15:02:37 +02:00
Thiago Santos f2400d7f16 faceblur: release the haar cascade 2014-06-30 11:54:41 -03:00
Sebastian Dröge e77a93f6a8 segmentation: Release memory storage in finalize 2014-06-30 00:22:22 +02:00
Sebastian Dröge d5e7c7bffe textoverlay: Release memory storage and resize image when caps change 2014-06-30 00:18:20 +02:00
Sebastian Dröge 2683c87863 templatematch: Release cvImages when reloading templates are changing caps 2014-06-30 00:15:38 +02:00
Sebastian Dröge 7e0503ca89 pyramidsegment: Release image when changing caps or reusing the element 2014-06-30 00:12:26 +02:00
Sebastian Dröge e1366c29be handdetect: Release memory storage 2014-06-30 00:09:28 +02:00
Sebastian Dröge ae1027297c faceblur: Release memory storage
And also release cvImages and memory storage when changing caps or reusing the
element.
2014-06-30 00:07:22 +02:00
Sebastian Dröge 48e95f3d6f edgedetect: Don't leak cvImages when caps are changing or the element is reused 2014-06-30 00:05:53 +02:00
Sebastian Dröge 45ac4ba663 pyramidsegment: Release memory storage when finalizing 2014-06-29 23:43:07 +02:00
Sebastian Dröge 7b63bd6348 schroenc: Remove obsolete FIXME comment 2014-06-29 23:33:20 +02:00
Sebastian Dröge b4ef216f0b schroenc: Don't leak all input buffers 2014-06-29 23:31:50 +02:00
Sebastian Dröge dcccabfe22 textoverlay: Free text buffer in finalize 2014-06-29 22:30:56 +02:00
Sebastian Dröge a84320be50 glimagesink: Chain up to the parent class' finalize function 2014-06-29 22:26:47 +02:00
Sebastian Dröge f068b64285 glimagesink: Make sure to always unref the display
Even if we didn't create a context yet.
2014-06-29 22:25:43 +02:00
Sebastian Dröge 7f7793ef79 assrender: Make static caps actually static
Otherwise we leak once caps instance on every function call.
2014-06-29 21:05:27 +02:00
Sebastian Dröge 64160a1392 kate: Use G_GSIZE_FORMAT instead of unportable %zu 2014-06-28 23:26:23 +02:00
Thiago Santos cf76aa2a1d kate: unref events when freeing events list
Instead of just feeing the queue structs
2014-06-27 17:00:03 -03:00
Thiago Santos c2ebc2349f kateenc: fix segment event leak
gst_event_replace increments the refcount
2014-06-27 16:59:58 -03:00
Matthew Waters 7797b15de7 glshader: enable glshader on GLES2 2014-06-25 18:26:13 +10:00
Julien Isorce 13023f2975 glcolorscale: do passthrough on same caps
See https://bugzilla.gnome.org/show_bug.cgi?id=732178
2014-06-25 06:56:43 +01:00
Julien Isorce 6f45d00a9b gl: enable glvideomixer on GLES2 2014-06-25 06:55:11 +01:00
Matthew Waters c37ace1844 glvideomixer: bas output width/height on the pad properties
Allows automatic negotiation of the size in the following case:
gst-launch-1.0 glvideomixer name=m sink_0::xpos=0 sink_1::xpos=320 ! glimagesink \
    videotestsrc ! m. \
    videotestsrc pattern=1 ! m.

https://bugzilla.gnome.org/show_bug.cgi?id=731878
2014-06-25 12:00:34 +10:00
Matthew Waters 4c02c4f004 glvideomixer: don't clobber already allocated shader 2014-06-25 10:19:42 +10:00
Sebastian Rasmussen 96c78695f9 curls?ftpsink: Fix memory leaks due to new error handling
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732174
2014-06-24 19:05:34 +02:00
Matthew Waters 5409a3ea2f gl: XInitThreads when env variable is set
This is too allow gst-launch debugging with multiple GL contexts as
well as avoiding segfaulting innocent gtk+ apps that have not called
XInitThreads.

https://bugzilla.gnome.org/show_bug.cgi?id=731525
2014-06-24 23:51:24 +10:00
Koop Mast 386e5774a7 modplug: don't hardcode c++ standard library
Fixes build with llvm on FreeBSD.

https://bugzilla.gnome.org//show_bug.cgi?id=731930
2014-06-22 21:51:21 +01:00
Sebastian Dröge 8a18ac76e1 gl: Need to link to new badvideo library for the video aggregator base class 2014-06-22 18:58:51 +02:00
Thomas Bluemel b1fac8c781 hlsdemux: Fix decrypting fragments
Only reset the decryption engine on the first buffer of a fragment,
not again for the second buffer.  This fixes corrupting the second
buffer of a fragment.

https://bugzilla.gnome.org/show_bug.cgi?id=731968
2014-06-22 14:21:35 +02:00
Sebastian Dröge 902a9a56d0 waylandsink: Fix compiler warning
gstwaylandsink.c:480:14: error: comparison of constant -1 with expression of
      type 'enum wl_shm_format' is always false
      [-Werror,-Wtautological-constant-out-of-range-compare]
  if (format == -1)
      ~~~~~~ ^  ~~
2014-06-21 16:57:18 +02:00
Thibault Saunier d516c951e7 gl:glvideomixer: Add the Compositor in the element metadata class
So it is possible to pick one compositing element from the registry
2014-06-20 19:53:33 +02:00
Thibault Saunier 4ce8b409cc gl: Port glmixer to the GstVideoAggregator baseclass
https://bugzilla.gnome.org/show_bug.cgi?id=731921
2014-06-20 19:53:33 +02:00
Sebastian Dröge 95404609c0 hlsdemux: Include the debug string in the error messages we propagate from the
source
2014-06-19 18:34:05 +02:00
Sebastian Dröge 48987fd5a1 hlsdemux: Include a more descriptive error message 2014-06-19 18:34:05 +02:00
Sebastian Dröge 1e795ccce1 hlsdemux: Propagate error messages from the source element up in the hierarchy
Instead of inventing our own generic error strings which are mostly useless.
2014-06-19 18:34:05 +02:00
Sebastian Dröge 213883eb51 hlsdemux: Directly convert GErrors to error messages
This will make sure that we don't leak debug information into the actual
error message string and keep it behind the debug string.
2014-06-19 18:34:05 +02:00
Miguel París Díaz bf003caf9d gstsrtpenc: unref event when needed
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=731768
2014-06-18 15:54:08 +02:00
Wim Taymans 52d4b7de07 srtpenc: improve property comments
Add a Note to the allow-repeat-tx property because it is potentially
insecure when used incorrectly.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=731714
2014-06-18 15:37:23 +02:00