summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* rtp: Use running_time instead of PTS for config-interval calculationsSebastian Dröge2018-07-256-39/+72
| | | | | | | PTS can start again from a different offset while the running time is increasing. The only thing that matters here is the running time. https://bugzilla.gnome.org/show_bug.cgi?id=796807
* Release 1.14.21.14.2Tim-Philipp Müller2018-07-206-144/+511
|
* Update docsTim-Philipp Müller2018-07-2072-74/+74
|
* qmlgl: Fix conflicting declaration of type GLsync for non-androidIñigo Huguet2018-07-181-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=796821
* souphttpsrc: Protect input stream with lockEdward Hervey2018-07-181-0/+4
| | | | | | | This was the last remaining place where modifying/unreffing the input stream was not protected by the lock https://bugzilla.gnome.org/show_bug.cgi?id=796639
* splitmuxsrc: Make sure events are writable before setting their seqnumSebastian Dröge2018-07-181-3/+9
|
* v4l2bufferpool: Validate that capture buffers were queuedNicolas Dufresne2018-07-131-0/+8
| | | | | | | | | | | | | When the pool is started, we allocate and release buffer, expecting the pool release-buffer handler to queue them. Though, as we rely on release function, there is no direct way to detect that this process didn't work. To check this, validate that the number of queued buffer is the same as the number of allocated buffers. This allow returning an error when buffer importation was refused by the driver. https://bugzilla.gnome.org/show_bug.cgi?id=583890
* v4l2bufferpool: Only return eos for M2M devicesNicolas Dufresne2018-07-131-19/+5
| | | | | | | | | | | This will avoid sending EOS on v4l2src when a driver sends an empty buffers. This case would be a bug in the driver, but yet the camera should keep running. This also removes the check for corrupted buffers, as this check is already done later. https://bugzilla.gnome.org/show_bug.cgi?id=794842
* v4l2: Add a macro to check for M2MNicolas Dufresne2018-07-133-14/+20
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=794842
* v4l2allocator: Fix userptr importationNicolas Dufresne2018-07-131-7/+5
| | | | | The length passed to the driver was always 0 instead of the size of the memory. This would fail validation in videobuf2.
* v4l2src: Try to avoid TRY_FMT when camera is streamingNicolas Dufresne2018-07-113-1/+51
| | | | | | | | Some camera firmware crash is TRY_FMT is called during streaming. As a side effect. This try and detect that the same format as currently running is about to be tried, and skip renegotiation. https://bugzilla.gnome.org/show_bug.cgi?id=796789
* v4l2videodec: Protect double calls to set_format()Nicolas Dufresne2018-07-091-4/+6
| | | | | | In some cases, set_format() may get called twice before the output format is set. Running an allocation query in this case is both not needed and will cause assertion due tot he NULL caps.
* scaletempo: Mark as Audio in classificationThibault Saunier2018-07-081-1/+1
|
* v4l2videoenc: Only renegotiate with upstreamNicolas Dufresne2018-06-291-0/+4
| | | | | | | | | | When the decoder get linked further, it will receive a renegotiation event from downstream. This case is not supported and should be ignored. This fixes issues when this encoder is used inside an GstRtspServer pipeline. https://bugzilla.gnome.org/show_bug.cgi?id=796525
* v4l2videoenc: Don't set colorimetry on captureNicolas Dufresne2018-06-271-1/+6
| | | | | | | The colorimetry will be set along with the raw format and those fields will then be copied from sink to src caps by the gst encoder. https://bugzilla.gnome.org/show_bug.cgi?id=791471
* v4l2object: Really always set colorimetryNicolas Dufresne2018-06-271-15/+13
| | | | | | | This fixes patch dd1c5aed656e07e3dad01f83410f3af16cfb14cf which pretended to always set colorimetry but the patch was incomplete. This is again best effort considering the spec says that for CAPTURE you may only read this value.
* v4l2videodec: do not call streamon while pool is flushingMichael Tretter2018-06-271-3/+6
| | | | | | | | | | | | | | | | | | gst_v4l2_buffer_pool_flush() executes streamoff for the output, but streamoff->streamon for the capture of the decoder. gst_v4l2_buffer_pool_streamon() on capture assumes that is able to resurrect the buffers from the pool, but acquiring buffers fails if the buffer pool is still flushing. The decoder needs to stop flushing the pools before calling gst_v4l2_buffer_pool_flush() to restart the v4l2 device. Otherwise starting the decoding thread might fail, because there are no buffers in the capture pool. This fixes a regression that was introduced in 97985a335c78 ("v4l2videodec: Add dynamic resolution change support"). https://bugzilla.gnome.org/show_bug.cgi?id=796681
* v4l2object: use S_SELECTION instead of S_CROP in gst_v4l2_object_set_cropPhilipp Zabel2018-06-271-11/+28
| | | | | | | | | | | The S_CROP call doesn't work on mem2mem output queues. Use the S_SELECTION call to set the crop rectangle and only fall back to S_CROP for ancient kernels. This will allow v4l2videoenc to set the coded size on the output queue via S_FMT and then set the visible size via the crop rectangle, as required by the V4L2 codec API. https://bugzilla.gnome.org/show_bug.cgi?id=796672
* v4l2videoenc: activate capture pool after output poolMarian Mihailescu2018-06-271-8/+6
| | | | | | | | | | Some drivers need output buffers set before capture buffers. CODA cannot set output format if capture is streaming. Exynos MFC fails on output STREAMON if capture is already streaming. This patch delays capture activation until output is configured and streaming https://bugzilla.gnome.org/show_bug.cgi?id=796693
* v4l2object: Don't open the device in get propertyNicolas Dufresne2018-06-271-8/+5
| | | | | | | This is both racy and inefficient. This function is still missing some locking which will be address in later patch. https://bugzilla.gnome.org/show_bug.cgi?id=796185
* v4l2: Fix typo in debug messagesEdward Hervey2018-06-271-2/+2
| | | | | | It's a decoder, not an encoder :) https://bugzilla.gnome.org/show_bug.cgi?id=795941
* v4l2bufferpool: Drop truncated framesNicolas Dufresne2018-06-071-0/+12
| | | | | | Drop truncated frames regardless if they have the ERROR flag or not. Truncated frame causes video frame map failure in many elements including cluttersink, glupload etc.
* tests: rtpstorage: fix potential crashes / test failures on 32-bitTim-Philipp Müller2018-05-282-11/+13
| | | | | | | Pass 64 bits to g_object_set() for 64-bit integer properties like rtpstorage's "size-time" property. https://bugzilla.gnome.org/show_bug.cgi?id=796429
* Release 1.14.11.14.1Tim-Philipp Müller2018-05-176-25/+583
|
* Update docsTim-Philipp Müller2018-05-1772-74/+74
|
* Update translationsTim-Philipp Müller2018-05-171-68/+68
|
* Revert "qtdemux: also push buffers without encryption info instead of ↵Thibault Saunier2018-05-151-19/+20
| | | | | | | | dropping them" This reverts commit 762e9c645ec13513c62eb5a3800d7406e01cdcb7. This was pushed by mistake
* Revert "qtdemux: add context for a preferred protection"Thibault Saunier2018-05-152-195/+6
| | | | | | This reverts commit 0ba62ba4805e2cdbed17fa9934762d685be42fd4. This was pushed by mistake
* Revert "souphttpsrc: cookie jar and context query support"Thibault Saunier2018-05-152-40/+2
| | | | | | This reverts commit 6715af9933a6607e5d86ac6fc1bcf476761cbf10. This was pushed by mistake
* jpegenc: Accept sof-marker=4Thibault Saunier2018-05-151-1/+1
| | | | | | sof-marker is 4 when input is in the RGB colorspace. https://bugzilla.gnome.org/show_bug.cgi?id=795463
* qtdemux: also push buffers without encryption info instead of dropping themEnrique Ocaña González2018-05-151-20/+19
|
* qtdemux: add context for a preferred protectionXabier Rodriguez Calvar2018-05-152-6/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qtdemux selected the first system corresponding to a working GStreamer decryptor. With this change, before selecting that decryptor, qtdemux will check if it has context (a preferred decryptor id) and if not, it will request it. The request includes track-id, available key system ids for the available decryptors and even the events so that the init data is accessible. [eocanha@igalia.com: select the preferred protection system even if not available] Test "4. ClearKeyVideo" in YouTube leanback EME conformance tests 2016 for H.264[1] uses a media file[2] with cenc encryption which embeds 'pssh' boxes with the init data for the Playready and Widevine encryption systems, but not for the ClearKey encryption system (as defined by the EMEv0.1b spec[3] and with the encryption system id defined in [4]). Instead, the ClearKey encryption system is manually selected by the web page code (even if not originally detected by qtdemux) and the proper decryption key is dispatched to the decryptor, which can then decrypt the video successfully. [1] http://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/2016.html?test_type=encryptedmedia-test&webm=false [2] http://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/media/car_cenc-20120827-86.mp4 [3] https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1b/encrypted-media/encrypted-media.html#simple-decryption-clear-key [4] https://www.w3.org/Bugs/Public/show_bug.cgi?id=24027#c2 https://bugzilla.gnome.org/show_bug.cgi?id=770107
* souphttpsrc: cookie jar and context query supportPhilippe Normand2018-05-152-2/+40
| | | | | | | | Use a volatile Cookie jar to store cookies and handle the context query so that session data can be shared with other elements (like adaptivedemux). https://bugzilla.gnome.org/show_bug.cgi?id=726314
* rtpsession: Fix on-feedback-rtcp raceMikhail Fludkov2018-05-142-1/+89
| | | | | | | | | | | | | | | If there is an external source which is about to timeout and be removed from the source hashtable and we receive feedback RTCP packet with the media ssrc of the source, we unlock the session in rtp_session_process_feedback before emitting 'on-feedback-rtcp' signal allowing rtcp timer to kick in and grab the lock. It will get rid of the source and rtp_session_process_feedback will be left with RTPSource with ref count 0. The fix is to grab the ref to the RTPSource object in rtp_session_process_feedback. https://bugzilla.gnome.org/show_bug.cgi?id=795139
* rtpsession: Add missing lock around sess->ssrcs iterationStian Selnes2018-05-141-1/+5
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=795139
* dcaparse: do not accept header with invalid channel countMatej Knopp2018-05-141-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=737928
* qtdemux: Initialize riff libraryEdward Hervey2018-05-101-6/+3
| | | | Avoids debugging message issues. Also just use the main riff header
* rtpvrawpay: don't use buffer lists if everything fits into one bufferTim-Philipp Müller2018-05-051-1/+2
| | | | | | | People might use very large mtu sizes where every payload fits into a single output packet. https://bugzilla.gnome.org/show_bug.cgi?id=795758
* flvmux: Don't wake up the muxer unless there is dataOlivier Crête2018-05-041-0/+6
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=795332
* flvmux: Save the current position in the output segmentOlivier Crête2018-05-041-0/+6
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=795332
* flvmux: Wait for caps from both srcs before writing headerOlivier Crête2018-05-042-42/+186
| | | | | | | | Wait for caps on all pads to start writing data even when source is live. Includes unit test by Havard Graff that simulates it. https://bugzilla.gnome.org/show_bug.cgi?id=794722
* flacparse: Drain the parser when a CAPS event is receivedSebastian Dröge2018-05-011-0/+16
| | | | | | | | | | | | | | | | | After a CAPS event, in theory a new stream can start and it might start with the FLAC headers again. We can't detect FLAC headers in the middle of the stream, so we drain the parser to be able to detect either FLAC headers after the CAPS event or the continuation of the previous stream. This fixes for example gst-launch-1.0 audiotestsrc num-buffers=200 ! flacenc ! c. \ audiotestsrc num-buffers=200 freq=880 ! flacenc ! c. \ concat name=c ! rtpgstpay ! udpsink host=127.0.0.1 port=5000 gst-launch-1.0 udpsrc multicast-group=127.0.0.1 port=5000 \ caps=application/x-rtp,media=application,clock-rate=90000,encoding-name=X-GST ! \ rtpgstdepay ! flacparse ! flacdec ! audioconvert ! pulsesin
* configure: Fix hard-coded enabled v4l2 probe on Linux/ARMKirill Marinushkin2018-04-261-3/+5
| | | | | | | | | | | | | | Currently, enable_v4l2_probe is hard-coded to "yes" on linux, platforms arm and aarch64. This even overrides the --disable-v4l2-probe argument. As a result, it is impossible to disable v4l2_probe. It becomes a problem for use-cases, when startup time is critical, because the v4l2_probe feature increases the initialization time. This commit makes the v4l2_probe feature configurable. On linux, platforms arm and aarch64, the default value is still "yes". But now it can be disabled by the --disable-v4l2-probe argument. https://bugzilla.gnome.org/show_bug.cgi?id=795200
* v4l2: rely on gst_v4l2_dup() to set no_initial_format and keep_aspectGuillaume Desmottes2018-04-264-6/+1
| | | | | | | | | | | gst_v4l2_dup() will now take care of setting v4l2capture->no_initial_format and keep_aspect instead of doing it manually. Fix a typo as keep_aspect was set twice on v4l2output but never on v4l2capture. https://bugzilla.gnome.org/show_bug.cgi?id=795028
* Revert "rtspsrc: Fix up sendonly/recvonly attribute handling"Sebastian Dröge2018-04-172-8/+8
| | | | | | | | | | | | | This reverts commit af273b4de9eb292c0b6af63665e10ca015895902. While RFC 3264 (SDP) says that sendonly/recvonly are from the point of view of the requester, the actual RTSP RFCs (RFC 2326 / 7826) disagree and say the opposite, just like the ONVIF standard. Let's follow those RFCs as we're doing RTSP here, and add a property at a later time if needed to switch to the SDP RFC behaviour. https://bugzilla.gnome.org/show_bug.cgi?id=793964
* qtmux: Fix leakMathieu Duponchelle2018-04-161-0/+3
| | | | | | | | | | gst_qt_mux_can_renegotiate () gets called everywhere following that pattern: return gst_qt_mux_can_renegotiate (ref(self)); This means the reference must be released both in the success and failure cases, it was only done in the success case.
* flvmux: aggregate should not push EOS itselfMathieu Duponchelle2018-04-161-1/+1
| | | | | Instead it is expected to return GST_FLOW_EOS, and let the base class handle that.
* flvmux: unref return of aggregator_pad_peek_bufferMathieu Duponchelle2018-04-161-0/+1
| | | | | We ended up leaking every single buffer going through the muxer, which is far from ideal
* v4l2object: Disable DMABuf for emulated formatsWhoopie2018-04-111-0/+6
| | | | | | | | libv4l2 does not prevent exporting DMABuf even when emulated formats are in use. As a side effect, userspace ends up with buffers of the original formats which will cause issues. https://bugzilla.gnome.org/show_bug.cgi?id=795097
* v4l2object: Only use BT2020_12 for BT2020 v4l2 colorspaceNicolas Dufresne2018-04-111-1/+1
| | | | | | | | BT2020_12 is not represented in V4L2, so drivers providing full colority for BT2020 will set V4L2_XFER_FUNC_709 transfer function. To fix the issue, we bump this to BT2020_12 if the resoltion is 4K, but we should only do that if the colorspace is BT2020 to start with, otherwise it's not possible to use normal BT709 for 4K 8bit formats.