summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* audiodecoders: use default pad accept-caps handlingThiago Santos2015-08-156-0/+19
| | | | | | | | Avoids useless check of downstream caps when handling an accept-caps query Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec, sbcdec, adpcmdec, sirendec
* videodecoders: use default pad accept-caps handlingThiago Santos2015-08-157-0/+21
| | | | | | | | Avoids useless check of downstream caps when handling an accept-caps query Elements: daaladec, libde265dec, openjpegdec, rsvgdec, schrodec, webpdec, pnmdec, vmncdec, openexrdec
* glsink: Enable sync meta on pools we offerNicolas Dufresne2015-08-152-0/+5
| | | | | | As the upload is asynchronous, we need to enable the sync meta to gain correct rendering. The buffer pool receiver don't know about that.
* gtkglsink: Add overlay composition supportNicolas Dufresne2015-08-153-0/+93
| | | | | Rendering composition overlay in GL with additional high resolution overlay being added.
* gtkglsink: Fix unsafe handling of buffer life timeNicolas Dufresne2015-08-154-32/+58
| | | | | | We need to keep the active buffer (the one we have retreive a texture id from) otherwise it's racy and upstream may upload new content before we have rendered or during later redisplay.
* gtkglsink: Remove reset pathNicolas Dufresne2015-08-153-48/+0
| | | | | The reset path is bogus and there is no reason to get rid of these things during resize.
* glimagesink: Move overlay rendering after video renderingNicolas Dufresne2015-08-151-2/+2
| | | | | | This is mostly cosmetic, but heoretically it reduces the amount of required object in the context at one point. It also avoids potential conflicts.
* facedetect: Refactor the codeVanessa Chipirrás Navalón2015-08-141-27/+28
| | | | | | Some lines of code are repeated several times, therefore this lines are simplified with a inline function, that this is proper style of C++.
* dashdemux: add support for HTTP HEAD method of time syncAlex Ashley2015-08-141-5/+131
| | | | | | | | | | | | | | | | | The urn:mpeg:dash:utc:http-head:2014 method of time synchronisation uses an HTTP HEAD request to a specified URL and then parses the Date: HTTP response header. This commit adds support to dashdemux for this method of time synchronisation by making a HEAD request and then parsing the Date: response. This commit adds support to gstfragment to return the HTTP headers and to uridownloader to support HEAD requests. To avoid creating a new API, the RANGE get function is re-used (abused?) with start=-1 and end=-1 to indicate a HEAD request. https://bugzilla.gnome.org/show_bug.cgi?id=752413
* dashdemux: post-review fixup of UTCTiming elementAlex Ashley2015-08-141-2/+34
| | | | | | | | | | | | | | This commit addresses the following items from the code review: use a portable way to define NTP_TO_UNIX_EPOCH, fix memory leak on error, and add documentation to UTCTiming parse functions Using LL is not portable, so the G_GUINT64_CONSTANT needs to be instead. If an error occurs during DNS resolution, the GError was not being released, causing a memory leak. https://bugzilla.gnome.org/show_bug.cgi?id=752413
* dashdemux: add support for UTCTiming elements for clock drift compensationAlex Ashley2015-08-145-5/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unless the DASH client can compensate for the difference between its clock and the clock used by the server, the client might request fragments that either not yet on the server or fragments that have already been expired from the server. This is an issue because these requests can propagate all the way back to the origin ISO/IEC 23009-1:2014/Amd 1 [PDAM1] defines a new UTCTiming element to allow a DASH client to track the clock used by the server generating the DASH stream. Multiple UTCTiming elements might be present, to indicate support for multiple methods of UTC time gathering. Each element can contain a white space separated list of URLs that can be contacted to discover the UTC time from the server's perspective. This commit provides parsing of UTCTiming elements, unit tests of this parsing and a function to poll a time server. This function supports the following methods: urn:mpeg:dash:utc:ntp:2014 urn:mpeg:dash:utc:http-xsdate:2014 urn:mpeg:dash:utc:http-iso:2014 urn:mpeg:dash:utc:http-ntp:2014 The manifest update task is used to poll the clock time server, to save having to create a new thread. When choosing the starting fragment number and when waiting for a fragment to become available, the difference between the server's idea of UTC and the client's idea of UTC is taken into account. For example, if the server's time is behind the client's idea of UTC, we wait for longer before requesting a fragment [PDAM1]: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=66068 dashdemux: support NTP time servers in UTCTiming elements Use the gst_ntp_clock to support the use of an NTP server. https://bugzilla.gnome.org/show_bug.cgi?id=752413
* Revert "srtpdec: Add support for buffer list"Sebastian Dröge2015-08-131-141/+1
| | | | | | | | | This reverts commit ff11a1a8a0c685d2edd0e06c0071cbb94f2cb663. It can't be assumed that all buffers in a buffer list have the same SSRC or are RTP or RTCP only. It has to be checked for every single buffer, and one basically has to do the processing that is done by the default chain_list implementation.
* glimagesink: take into account non 1/1 par for navigationMatthew Waters2015-08-121-12/+45
| | | | | | The current code was ignoring the par/dar aspect when transforming from window coordinates to stream coordinates resulting in incorrect coordinates being sent upstream in the navigation events.
* gtk: fix motion event nameMatthew Waters2015-08-121-1/+1
| | | | | | s/motion/mouse/ Fixes hover interaction with DVD menus
* gtk: correct navigation events for window scalingMatthew Waters2015-08-121-2/+75
| | | | | | | i.e. take into account the possiblity of scaling in the sink or through GDK_SCALE. Fixes DVD Menus with a scaled gtkwidget
* gtk: implement GstNavigation interfaceMatthew Waters2015-08-113-1/+142
| | | | Now we can push key/mouse input into the pipeline for DVD use cases.
* opus: Copy metadata in the (de)payloader, but only the relevant onesSebastian Dröge2015-08-112-0/+59
| | | | | | | | The payloader didn't copy anything so far, the depayloader copied every possible meta. Let's make it consistent and just copy all metas without tags or with only the audio tag. https://bugzilla.gnome.org/show_bug.cgi?id=751774
* facedetect: wrong form to write the delete operatorVanessa Chipi2015-08-111-1/+1
| | | | | The delete operator is written this way: delete (cascade). This way is misspelled, it is an operator, not a function. Delete the parentheses.
* facedetect: simplify repeated code.vanechipi2015-08-111-3/+4
| | | | | Store the value of r.height / 2 instead of repeating the operation line three times.
* facedetect: Redundancy exists in code.vanechipi2015-08-111-7/+7
| | | | | | | Checking the vector is not empty and checking the vector size is greater than zero are the same thing, this is a redundancy in the code. Only checking the vector is not empty is sufficient, therefore removing the other check.
* gl: use gles2 shaders everywhereMatthew Waters2015-08-1022-466/+84
| | | | | This effectively limits a glfilter subclass to be > GL(ES) 2.0. rather than a possible GL 1.4.
* gltransformation: implement pivot point for rotation and scaleLubosz Sarnecki2015-08-082-2/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=744763 Add a pivot vector for setting the origin of rotations and scales. With the pivot point the rotation and scale operations can have different origins. This adds the ability to rotate around different points. Currently the default (0, 0) pivot point is possible, a rotation around the center, and zooming into and out of the center. With an pivot point this is optional. I defined the following image coordinates for the pivot point: (-1,1) ------------------------- (1,1) | | | | | | | (0,0) | | | | | | | (-1,-1) ------------------------- (1,-1) Example: Rotate the video at the bottom left corner gst-launch-1.0 videotestsrc \ ! gltransformation \ scale-x=0.5 \ scale-y=0.5 \ rotation-z=25.0 \ pivot-x=-1.0 \ pivot-y=-1.0 \ ! glimagesink The pivot-z option defines the pivot point in 3D space. This only affects rotation, since we have no Z data to scale. With this option a video can be rotated around a point in 3D space. Example: Rotate around point behind the video: gst-launch-1.0 videotestsrc \ ! gltransformation \ rotation-x=10.0 \ pivot-z=-4.0 \ ! glimagesink
* qml: implement the required multiple GL context synchonisationMatthew Waters2015-08-083-5/+40
| | | | From GStreamer's GL context into the QML context
* facedetect: fix profile loading checkLuis de Bethencourt2015-08-071-2/+5
| | | | | | | Since the profile gchar depends on DEFAULT_FACE_PROFILE, it should never be NULL. Furthermore CascadeClassifier accepts any input, even an empty one, but if the profile fails to load it returns an empty cascade. Check for this instead, and inform the user if there was an Error.
* hlsdemux: don't warn about duration if it is not knownThiago Santos2015-08-071-2/+5
| | | | And also print the values in case of warning
* configure: update OpenCV requirements to 2.3.0Luis de Bethencourt2015-08-076-31/+10
| | | | | | | With facedetect ported to C++ the minimum version of OpenCV supported is 2.3.0 https://bugzilla.gnome.org/show_bug.cgi?id=748377
* dashdemux: Fix leak in gst_dash_demux_stream_update_fragment_info()Florin Apostol2015-08-061-0/+1
| | | | | | | | | | | | | | The gst_dash_demux_stream_update_fragment_info function could call gst_dash_demux_stream_update_headers_info function twice. The gst_dash_demux_stream_update_headers_info function will set header_uri and index_uri to some newly allocated strings. The values set by the first call of gst_dash_demux_stream_update_headers_info will leak when the function is called for a second time. The solution is to call gst_adaptive_demux_stream_fragment_clear before the second call of gst_dash_demux_stream_update_headers_info https://bugzilla.gnome.org/show_bug.cgi?id=753188
* opencv: facedetect: free IplImage with cvReleaseImageLuis de Bethencourt2015-08-051-2/+2
| | | | | Using delete() with IplImage will fail to free some of the structure's contents. cvReleaseImage() is the proper way of freeing the memory.
* opencv: facedetect: check pointer before using itLuis de Bethencourt2015-08-051-6/+4
| | | | | | | | 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
* x265enc: remove dead codeLuis de Bethencourt2015-08-051-4/+0
| | | | | | level_ok is only used in a check that will never be true, removing it. CID #1315255
* x265enc: fix memory leakLuis de Bethencourt2015-08-051-2/+3
| | | | | | Free vps_nal before returning. CID #1315257
* rsvg: Don't leak a GstVideoCodecStateCarlos Garnacho2015-08-041-2/+1
| | | | | | | 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
* opencv: facedetect: fix crashes in finalizeTim-Philipp Müller2015-08-041-8/+8
| | | | Fixes gst-inspect-1.0 -a crashing.
* opencv: Fix 32-bit build / format strings.Jan Schmidt2015-08-041-23/+21
| | | | Use G_GSIZE_FORMAT for format strings where relevant
* glvideomixer: swap control binding proxyMatthew Waters2015-08-031-4/+4
| | | | | | | | | | | | | | | 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.
* dash: mpdparser: plug leak in segmenttemplate parsingThiago Santos2015-08-011-10/+14
| | | | | | 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
* templatematch: revert rename of propertyThiago Santos2015-08-011-1/+1
| | | | | The property doesn't need to have its name changed because of C++, just the instance variables.
* templatematch: rename conflicting variableLuis de Bethencourt2015-07-312-15/+15
| | | | | | 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.
* facedetect: need to migrate to C++Vanessa Chipirrás2015-07-314-139/+146
| | | | | | | | 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
* dtsdec: fix taglist leakVineeth TM2015-07-311-0/+2
| | | | | | taglist merge doesnt take ownership. So should free the tags after use https://bugzilla.gnome.org/show_bug.cgi?id=753086
* gstglfilterbin: remove unused variableLuis de Bethencourt2015-07-301-14/+8
| | | | res is set multiple times but never used or returned. Removing it.
* glstereomix: remove redundant initializationLuis de Bethencourt2015-07-291-1/+0
| | | | | v is initialized in the for loop init, no need to do it twice. Removing first initialization.
* dashdemux: gst_mpdparser_get_xml_prop_duration sets default value in case of ↵Florin Apostol2015-07-271-5/+1
| | | | | | | | | parsing errors The gst_mpdparser_get_xml_prop_duration function will set the property_value to the default_value in case the parsing fails. https://bugzilla.gnome.org/show_bug.cgi?id=752426
* opuscommon: Use GString instead of snprintf for concatingNirbheek Chauhan2015-07-271-5/+10
| | | | | Safer, easier to understand, and more portable. Also, skip all this if the log level is too low.
* dahdemux: avoid overflows in computation of segment start time and durationFlorin Apostol2015-07-241-8/+6
| | | | | | | Used gst_util_uint64_scale to avoid overflows when segment start time or duration is computed. https://bugzilla.gnome.org/show_bug.cgi?id=752620
* hlsdemux: demote error to warningThiago Santos2015-07-241-1/+1
| | | | | It is not fatal and can be quite normal when the network is too slow
* srtpenc: do not check input buffersMiguel París Díaz2015-07-241-57/+0
| | | | | | With this we avoid an unnecessary and considerable overhead. https://bugzilla.gnome.org/show_bug.cgi?id=752774
* caopengllayersink: remove unused label context_creation_errorJulien Isorce2015-07-241-7/+0
| | | | | | | Build error introduced by commit 5457e55f255518d679b59a170951e299ecd8c5f6 https://bugzilla.gnome.org/show_bug.cgi?id=750310
* glimagesink: fix allocation meta structure leakTim-Philipp Müller2015-07-231-0/+3
| | | | | | | gst_query_add_allocation_meta() does not take ownership of the structure, for some reason. CID 1312135
* glvideomixer: Add GstControlBinding proxyOlivier Crête2015-07-221-55/+159
| | | | | | | | | This is used to proxy GstControlBinding to the pad on the parent object. This avoid having to sync the values in the proxy pad, this is too early if you have a queue between the pad and the actual aggregation operation. https://bugzilla.gnome.org/show_bug.cgi?id=734060