summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Release 1.18.31.18.3Tim-Philipp Müller2021-01-136-11/+276
|
* v4l2object: Map correct video format for RGBAHou Qi2021-01-132-3/+3
| | | | | | | | | Map V4L2_PIX_FMT_RGBA32 pixel format to GST_VIDEO_FORMAT_RGBA instead of GST_VIDEO_FORMAT_RGB video format to support RGBA. Fixes #823 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/851>
* videoflip: fix possible crash when setting the video-direction while runningMatthew Waters2021-01-134-51/+211
| | | | | | | | | | | | | | | A classic case of not enough locking. One interesting thing with this is the interaction between the rotation value and caps negotiation. i.e. the width/height of the caps can be swapped depending on the video-direction property. We can't lock the entirety of the caps negotiation for obvious reasons so we need to do something else. This takes the approach of trying to use a single rotation value throughout the entirety of the negotiation and then subsequent output frame in a kind of latching sequence. Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/792 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/847>
* tests: add tests for videoflipMatthew Waters2021-01-132-0/+209
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/847>
* deinterlace: force -DPREFIX on macosIgnacio Casal Quinteiro2020-12-301-1/+6
| | | | | | | | | | This is due to a bug in meson where it will not detect properly the compiler if the symbols need an undercore. https://github.com/mesonbuild/meson/issues/5482 Fixes #821 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/846>
* splitmuxsink: Avoid deadlock when releasing a pad from a running muxerVivia Nikolaidou2020-12-172-1/+14
| | | | | | Might not drain correctly Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/843>
* splitmuxsink: Unit test - check format/opened/closed sequenceJan Schmidt2020-12-141-3/+69
| | | | | | | | Check the sequence of format-location/fragment-opened/fragment-closed events is respected. There should be 1 format-location call for each fragment-opened message, and 1 fragment-closed for each. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/840>
* splitmuxsink: Fix for 'reference bytes muxed' check.Jan Schmidt2020-12-142-7/+23
| | | | | | | | | | | | | | | | | https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798 introduced a check in the need-new-fragment logic to avoid starting a new fragment unless there has been some data on the reference stream, but the check is done against the number of bytes that have been received on the input, not the number that were released for output into the current fragment. Fix the check to remember and test against bytes that have been sent for output. This also fixes a problem where starting a new fragment fails to request a new filename from the format-location signal. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/840>
* splitmuxsink: Add debug for fragment opened/closed msgsJan Schmidt2020-12-141-0/+3
| | | | | | | When posting fragment-opened and fragment-closed messages, put a debug statement in the logs Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/840>
* splitmuxsink: Convert asserts into element errors.Jan Schmidt2020-12-141-9/+25
| | | | | | | Change some g_assert into element errors so that they can be caught and the pipeline shut down. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/840>
* Back to developmentTim-Philipp Müller2020-12-062-5/+5
|
* Release 1.18.21.18.2Tim-Philipp Müller2020-12-066-8/+385
|
* rpicamsrc: add vchostif library as it is required to build successfulJose Quaresma2020-12-021-1/+1
| | | | | | | fix: undefined reference to `vc_gencmd' /usr/src/debug/gstreamer1.0-plugins-good/1.18.1-r0/build/../gst-plugins-good-1.18.1/sys/rpicamsrc/RaspiCamControl.c:1440: undefined reference to `vc_gencmd' Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/829>
* deinterlace: Enable x86 assembly with nasm on MSVCNirbheek Chauhan2020-11-242-5/+2
| | | | | | | | | | | | | | We need to remove x86inc.asm from the list of compiled assembly files because it is not supposed to be compiled separately. It is directly included by yadif.asm, and it exports no symbols. The object file was getting ignored on all platforms except on msvc where it was causing a linker hang when building with debugging enabled because the object file had no debug symbols (or similar). We've seen this before in FFmpeg too, which uses nasm: https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/-/merge_requests/46 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/826>
* qtmux: Chain up when releasing pad, and fix some locking.Jan Schmidt2020-11-211-3/+15
| | | | | | | | | Release pads by calling up into aggregator so it can do the right things. Don't clean up the pad until after that. Add some missing locks around some accesses to shared pad state. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/800>
* v4l2: caps negotiate wrong as interlace featureBing Song2020-11-182-6/+12
| | | | | | | | | | | | | | gst_caps_simplify() will move interlace format before normal video format. It will cause caps negotiate prefer interlaced caps which isn't expected. Seperate normal caps and interlaced caps and then merge it will keep prefer progress video format. Add ARGB/BGRA for interlaced caps. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/802 Part-of <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/813> Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/821>
* aacparse: Fix caps change handlingVivia Nikolaidou2020-11-161-7/+7
| | | | | | | | | In baseparse we set the fixed caps flag on all src pads, therefore the source pad caps query in get_allowed_caps will return the current caps. Current caps won't necessarily intersect with the new caps (e.g. sample rate change). Replace get_allowed_caps with peer_query_caps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/819>
* rtspsrc: Ensure same group-id used for both TCP/UDP stream-start eventsChrisDuncanAnyvision2020-11-112-2/+28
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/814>
* rtspsrc: Use consistent URI hashed stream-id for UDP and TCP/Interleaved streamsChrisDuncanAnyvision2020-11-111-4/+9
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/814>
* flvmux: Release pads via GstAggregatorSebastian Dröge2020-11-021-3/+4
| | | | | | See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/797 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/803>
* splitmuxsrc: Fix comment in a testJan Schmidt2020-10-311-3/+3
| | | | | | | Fix a comment in the splitmuxsrc robust muxing test so it describes the test properly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
* splitmuxsink: Change EOS catching logic.Jan Schmidt2020-10-312-6/+14
| | | | | | | | | | Add a new state for ending the overall stream, and use it to decide whether to pass the final EOS message up the bus instead of dropping it. Fixes a small race that makes the testsuite sometimes not generate the last fragment(s) sometimes because the wrong EOS gets allowed through too early. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
* splitmuxsink: Don't use the element state lockJan Schmidt2020-10-312-3/+28
| | | | | | | | | | Using the element state lock to avoid splitmuxsink shutting down while doing element manipulations can lead to a deadlock on shutdown if a fragment switch happens at exactly the wrong moment. Use a private mutex and a shutdown boolean instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
* splitmuxsink: Don't busy loop on a non-ready pad.Jan Schmidt2020-10-311-3/+6
| | | | | | | | | If a pad gets into the check_completed_gop method and then the underlying conditions change on the reference context, things could get stuck in a busy loop when the context should instead jump back out and wait for more data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
* splitmuxsrc: Mark running=false on shutdown.Jan Schmidt2020-10-311-2/+1
| | | | | | | | | | Make sure that any late gst_element_call_async() callbacks know that the elements is shutting down and bail out instead of operating on the element we're trying to stop. Fixes a spurious test failure in elements_splitmuxsrc Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
* splitmuxsink: Forward EOS messages from async fragments.Jan Schmidt2020-10-311-9/+8
| | | | | | | | | | Re-enable forwarding EOS messages from fragments that are completing asynchronously, so that splitmuxsink itself won't go EOS until they are complete. This was disabled to work around a bug in core that is fixed in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/683 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
* splitmuxsink: Never start a new fragment with no reference buffersJan Schmidt2020-10-312-2/+13
| | | | | | | | | If there has been no bytes from the reference stream muxed into the current fragment, then time can't have advanced, there's no GOP... this fragment would be broken or empty, so wait for some data on the reference buffer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
* matroska-mux: Fix sparse stream crashJan Schmidt2020-10-291-4/+3
| | | | | | | | | | https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/656 introduced an invalid memory access when debug is enabled, by casting the wrong pointer to a GstCollectPad. Fixing that showed the original change was incorrect and leads to an infinite loop in the testsuite. This patch fixes both problems. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/793>
* Back to developmentTim-Philipp Müller2020-10-272-5/+5
|
* Release 1.18.11.18.1Tim-Philipp Müller2020-10-266-25/+420
|
* Revert "v4l2object: Only offer inactive pools and if needed"Nicolas Dufresne2020-10-231-5/+4
| | | | | | | | | | | | This reverts commit 85b9893e963ea5d342289e318daeefba35ff4a07. This change caused a regression reported in #796. Basically the pool get deactivated by basesrc and the encoder does not recover. Recovering with current design would cause insertion of an unwanted keyframe. This is being reverted in 1.18 only, a proper solution is wanted for 1.20. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/785>
* vpx: Fix the check to unfixed/unknown framerate to set bitrateThibault Saunier2020-10-221-1/+1
| | | | | | 0/1 means unknown framerate not X/0 (which is illegal). Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/783>
* qmlglsink: fix crash when created/destroyed in quick successionBastien Reboulet2020-10-221-2/+7
| | | | | | | | | | | | The crash is caused by a race condition where the render thread calls a method on the QtGLVideoItem instance that was previously destroyed by the main thread. Also, less frequently, QtGLVideoItem::onSceneGraphInitialized is called when QQuickItem::window is null, also causing a crash. Fixes #798 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/781>
* rtputils: Count metas with an empty tag list for copying/keepingArun Raghavan2020-10-221-2/+3
| | | | | | | | The GstMetaInfos registered in core do not set their tags to NULL, but instead use an empty list (non-NULL list with a single NULL value). Let's check explicitly for that so as to not miss some metas. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/780>
* rtpbin: Remove the rtpjitterbuffer with the streamNicolas Dufresne2020-10-041-0/+5
| | | | | | | | | Since !348, the jitterbuffer was only removed with the session. This restores the original behaviour and removes the jitterbuffer when the stream is removed. This avoid accumulating jitterbuffer objects into the bin when a session is reused. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/765>
* rtpbin: Cleanup dead codeNicolas Dufresne2020-10-041-7/+0
| | | | | | | | | | | The rtpjitterbuffer is now part of the session elements, we no longer need to do the ref_sink dance when signalling it. It is already owned by the bin when signalled. Also, the code that handles generic session elements already handle the ref_sink() calls since: 03dc22951bacb6fdc3868c8f801e6a52c33a745f Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/765>
* rtph26*depay: drop FU's without a corresponding start bitMatthew Waters2020-10-045-0/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have not received a FU with a start bit set, any subsequent FU data is not useful at all and would result in an invalid stream. This case is constructed from multiple requirements in RFC 3984 Section 5.8 and RFC 7798 Section 4.4.3. Following are excerpts from RFC 3984 but RFC 7798 contains similar language. The FU in a single FU case is forbidden: A fragmented NAL unit MUST NOT be transmitted in one FU; i.e., the Start bit and End bit MUST NOT both be set to one in the same FU header. and dropping is possible: If a fragmentation unit is lost, the receiver SHOULD discard all following fragmentation units in transmission order corresponding to the same fragmented NAL unit. The jump in seqnum case is supported by this from the specification instead of implementing the forbidden_zero_bit mangling: If a fragmentation unit is lost, the receiver SHOULD discard all following fragmentation units in transmission order corresponding to the same fragmented NAL unit. A receiver in an endpoint or in a MANE MAY aggregate the first n-1 fragments of a NAL unit to an (incomplete) NAL unit, even if fragment n of that NAL unit is not received. In this case, the forbidden_zero_bit of the NAL unit MUST be set to one to indicate a syntax violation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/764>
* imagefreeze: Response caps query from srcpadSeungha Yang2020-10-031-10/+21
| | | | | | | ... and chain up to default query handler for unhandled query types. Unhandled query shouldn't be returned with FALSE if there's no special needs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/763>
* rtpmp4gdepay: Allow lower-case "aac-hbr" instead of correct "AAC-hbr"Sebastian Dröge2020-10-032-2/+2
| | | | | | | | | Various live555 based products are using the wrong "mode" string or seem to assume case-insensitive matching, which is wrong. Examples for this are the Yuan SC6C0N1 mini and the Kiloview E2. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/762>
* rtspsrc: Fix push-backchannel-buffer parameter mismatchRicky Tang2020-10-032-3/+3
| | | | | | When using python, signal parameter must match with function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/761>
* jpegdec: check buffer size before dereferencing. Fixes #541Jérôme Laheurte2020-10-021-0/+2
| | | | | | | | Some cameras (Panacast) have buggy drivers/firmware which send invalid JPEG frames, containing no data, which makes jpegdec crash because it assumes the frame is at least 2 bytes long. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/760>
* flvmux: Improve logging of gst_flv_mux_buffer_to_tag_internalJan Alexander Steffens (heftig)2020-10-011-1/+16
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/759>
* flvmux: Move stream skipping to GstAggregatorPadClass.skip_bufferJan Alexander Steffens (heftig)2020-10-011-39/+45
| | | | | | | | Besides looking like the correct place to put this, it allows us to drop the entire aggregator queue. The old implementation only dropped at most one buffer for each call of aggregate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/759>
* v4l2object: plug memory-leakHavard Graff2020-09-301-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/758>
* splitmuxsink: fix sink pad release while PLAYINGMathieu Duponchelle2020-09-301-51/+59
| | | | | | | | | | | | - Release the split mux lock while removing the probes - Flush the sinkpad to unblock other pads - Turn check_completed_gop into a do while statement, when waking up we want to recheck whether the current GOP is ready for sending Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/756>
* Back to developmentTim-Philipp Müller2020-09-082-5/+5
|
* Release 1.18.01.18.0Tim-Philipp Müller2020-09-088-76/+2159
|
* meson: dist pot file in tarballsTim-Philipp Müller2020-09-073-0/+48
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/716>
* gst: Update for gst_video_transfer_function_*() function renamingSebastian Dröge2020-09-074-5/+7
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/715>
* flvmux: Avoid crash when best pad gets flushedJan Alexander Steffens (heftig)2020-08-311-2/+9
| | | | | | | The 'best' pad might receive a flush event between us picking it and us popping the buffer. In this case, the buffer will be missing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/711>