summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* flvmux: Correct breaks in gst_flv_mux_find_best_padJan Alexander Steffens (heftig)2020-08-311-26/+24
| | | | | | | | | | | | | | | | The code seems to use `continue` and `break` as if both refer to the surrounding `while` loop. But because `break` breaks out of the `switch`, they actually have the same effect. This may have caused the loop not to terminate when it should. E.g. when `skip_backwards_streams` drops a buffer we should abort the aggregation and wait for all pads to be filled again. Instead, we might have just selected a subsequent pad as our new "best". Replace `break` with `done = TRUE; break`, and `continue` with `break`. Then simplify the code a bit. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/710>
* gstqmlgl: build on Windows with qmake without pkgconfig; update instructions ↵Dmitriy Purgin2020-08-242-6/+110
| | | | | | on building for Windows Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/591>
* meson: fix build failure if orc is enabled but none of its users arePhilipp Zabel2020-08-241-1/+1
| | | | | | Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/778 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/704>
* rtpL16depay: unref buffer on errorZeid Bekli2020-08-241-0/+2
| | | | | | | gst_rtp_L16_depay_process to unref buffer on wrong payload size or reorder failure. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/702>
* Release 1.17.901.17.90Tim-Philipp Müller2020-08-206-46/+1232
|
* rtputils: Don't call NULL GstMeta transform functionSebastian Dröge2020-08-181-2/+3
| | | | | | | It's optional and if it does not exist then no transformation is possible. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/701>
* rtp: Do not register rtpreddec and rtpredenc twiceJulian Bouzas2020-08-131-10/+0
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/699>
* rtpmanager: Improve readability of "stats" docs by making the fields an ↵Sebastian Dröge2020-08-134-49/+50
| | | | | | | | | | actual list Otherwise they end up all in the same line one after another. Also add docs for the "avg-jitter" stats field of the jitterbuffer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/698>
* v4l2h264codec: Map newly defined profile/levelsNicolas Dufresne2020-08-111-0/+20
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/697>
* v4l2: Sync headers with kernel 5.9Nicolas Dufresne2020-08-114-20/+121
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/697>
* v4l2: use GstV4l2Error in gst_v4l2_open()Víctor Manuel Jáquez Leal2020-08-1110-28/+43
| | | | | | | | | | | | | | | | gst_v4l2_open() is called by gst_v4l2_device_provider_probe_device(), where the GstV4l2Object is created without an associated GstElement. If gst_v4l2_open() fails, it raises a bus message, but without an element, a precondition check fails on gst_element_message_full_with_details() generating a crash if running with fatal-warnings debug mode. GstV4l2Error is a helper to raise error bus messages when it is appropiated. This patch changes the direct bus messages to this helper, and the elements will actually send the error message. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/694>
* flvmux: Return NEED_DATA when we drop a bufferVivia Nikolaidou2020-08-101-7/+30
| | | | | | | | | | | | When we are dropping a buffer in find_best_pad (e.g. waiting for a keyframe, or skipping backwards timestamp), return GST_AGGREGATOR_FLOW_NEED_DATA to make sure we have enough data at the next run. Otherwise, a stream that accidentally fell behind (e.g. relinking race, or just waiting for a keyframe) will never get the opportunity to catch up to the other one, because the other one will always keep advancing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
* flvmux: Return NEED_DATA when no best pad is foundVivia Nikolaidou2020-08-101-0/+8
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
* flvmux: Fix possible crash on GST_ITERATOR_RESYNCVivia Nikolaidou2020-08-101-1/+1
| | | | | | Wrong pointer type Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
* qmlgloverlay: fix multiple elements with Qt 5.15Matthew Waters2020-08-101-0/+12
| | | | | | | | | | | With Qt 5.15 multiple qmlgloverlay elements would produce: ASSERT: "!m_gl->property(QSG_RENDERCONTEXT_PROPERTY).isValid()" in file /path/to/qt5/qtdeclarative/src/quick/scenegraph/qsgdefaultrendercontext.cpp, line 121 Workaround by setting the (seeminigly unused) property before initialization. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/695>
* rtph26[45]pay: Change default aggregate-mode to "none" for backwards ↵Sebastian Dröge2020-08-086-29/+71
| | | | | | | | | | | | | | compatibility We didn't aggregate at all in previous versions and there are apparently various RTP implementations that don't handle aggregation well at all. As part of this also document that for RTSP it is recommended to keep it set to "none" while for WebRTC it should be set to "zero-latency". Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/749 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/692>
* build: update for gl pkg-config file splitMatthew Waters2020-08-074-9/+31
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/680>
* splitmuxsink: Make sure flushing doesn't blockJan Alexander Steffens (heftig)2020-08-041-3/+5
| | | | | | | | | | | | | | * Trying to disconnect a stream from a running splitmuxsink by flushing it results in the FLUSH_START blocking in the stream queue's gst_pad_pause_task because the flush did not unblock complete_or_wait_on_out, so add a check for ctx->flushing there. * Add a GST_SPLITMUX_BROADCAST_INPUT so check_completed_gop notices flushing changed and the incoming push is unblocked. * Pass the FLUSH_STOP along to the muxer without waiting. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/687>
* imagefreeze: Wait until we have a clockVivia Nikolaidou2020-08-041-2/+7
| | | | | | | | | | | Otherwise it can happen that it tries to get the clock in PAUSED state in live mode, which does not exist. Thanks to Sebastian Dröge for helping debugging. Fixes #775 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/691>
* qtdemux: extract bit depth from codec data for ALACTim-Philipp Müller2020-07-311-0/+1
| | | | | | | | | The info in the sound sample description might not be accurate if it's an older version atom. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/771 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/686>
* auparse: fix compiler warningsJordan Petridis2020-07-291-3/+3
| | | | | | | | | | | | | | | | | | GCC 10 was complaining like following. It really is complaining about default cases returning with potentially unitialized *desval, but those cases in the switch should never be hit. ``` ../subprojects/gst-plugins-good/gst/auparse/gstauparse.c: In function 'gst_au_parse_chain': ../subprojects/gst-plugins-good/gst/auparse/gstauparse.c:481:37: error: 'timestamp' may be used uninitialized in this function [-Werror=maybe-uninitialized] 481 | GST_BUFFER_TIMESTAMP (outbuf) = timestamp; ../subprojects/gst-plugins-good/gst/auparse/gstauparse.c:482:36: error: 'duration' may be used uninitialized in this function [-Werror=maybe-uninitialized] 482 | GST_BUFFER_DURATION (outbuf) = duration; ../subprojects/gst-plugins-good/gst/auparse/gstauparse.c:480:34: error: 'offset' may be used uninitialized in this function [-Werror=maybe-uninitialized] 480 | GST_BUFFER_OFFSET (outbuf) = offset; cc1: all warnings being treated as errors ``` Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/671>
* rtspsrc: drop stream-start message posted by the internal udp sink(s)George Kiagiadakis2020-07-291-0/+1
| | | | | | See #1368 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/685>
* tests: qtdemux: test correct pad names are createdHosang Lee2020-07-281-0/+147
| | | | | | | Test correct pad names are created in accordance to their media type in mss mode. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/628>
* qtdemux: create correct pad names in encrypted streamsHosang Lee2020-07-281-0/+10
| | | | | | | Refer to "original-media-type" when setting stream's subtype for encrypted streams in mss mode. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/628>
* matroskamux: Do caps renegotiation when it only adds fieldsThibault Saunier2020-07-281-2/+3
| | | | | | | | | | Matroskamux can accept caps renegotiation if the new caps is a superset of the old one, meaning upstream added new info to the caps. Same logic as a5f22f03aa25b04726f78ae619f40b3b648f7d48 in qtmux. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/678>
* rtpfunnel: protect internal srccaps with lockTim-Philipp Müller2020-07-281-2/+21
| | | | | | | | These are modified from sink pad event handlers, so could be accessed from multiple threads at the same time. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/681>
* rtpfunnel: copy caps before sending them in a caps-eventHavard Graff2020-07-281-1/+4
| | | | | | | Reason being we don't want downstream to own a ref to our internal caps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/681>
* rtpmanager: fix various documentation issuesMathieu Duponchelle2020-07-274-23/+24
| | | | | | Improper naming of properties, improper links, misc Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/684>
* rpicamsrc: hypothetical fix for data pointer calculationTim-Philipp Müller2020-07-241-1/+1
| | | | | | | | mmal buffer header docs say data is valid for length bytes from offset. In practice offset always seems to be 0 so far though. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
* rpicamsrc: mark buffers as header and keyframe/delta-unitTim-Philipp Müller2020-07-241-0/+7
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
* rpicamsrc: fix nal alignment of output buffersTim-Philipp Müller2020-07-243-16/+41
| | | | | | | | | | | | | | | | We claim output buffers are nal-aligned, but that wasn't actually true: We would push out a partial nal in case the nal doesn't fit into the max encoder-selected output buffer size, and then the next buffer would not start with a sync marker. That's not right and makes h264parse unhappy. Instead accumulate buffers until we have a full frame (we can't rely on the NAL_END flag, it's always set). Fixes #768 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
* rpicamsrc: fix "Could not find component vc.ril.camera" on recent raspiosTim-Philipp Müller2020-07-231-1/+4
| | | | | | | | | | | Make extra sure all the required mmal libs such as libmmal_vc_client.so actually get linked and stay linked. Otherwise the above error happens it seems. buster (10.4) with meson 0.55 and pi ref 2020-05-27 pi-gen, 825107f04027269db77426046f5085475b1ea22f, stage5 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
* rpicamsrc: deviceprovider: hook up i18n properlyTim-Philipp Müller2020-07-232-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
* rpicamsrc: deviceprovider: advertise (M)JPEG as wellTim-Philipp Müller2020-07-231-2/+8
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
* rpicamsrc: deviceprovider: also advertise constrained-baseline profileTim-Philipp Müller2020-07-231-0/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
* meson: add a plugin summaryStéphane Cerveau2020-07-231-0/+15
| | | | | | | This summary displays a list of plugins which have been enabled. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/679>
* v4l2: enhance v4l2 control interface to support string type CIDHaihua Hu2020-07-222-5/+73
| | | | | | add string type cid support for v4l2 implementation Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/676>
* qtdemux: add Dolby Vision fourccStéphane Cerveau2020-07-213-0/+18
| | | | | | | | | | | | This identifiers are registered in the MPEG-RA and defined to be used by the Dolby Vision AVC/HEVC streams. This is a first step to present the stream to the decoder. Additional box parsing of DOVIConfigurationBox is necessary to complete the media presentation with proper Dolby Vision enhancements. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/658>
* imagefreeze: Copy GstCapsFeatures to caps for source padLuke Yelavich2020-07-201-1/+3
| | | | | | | | | | Allows using imagefreeze with buffers in GLMemory. The following pipeline works. gst-launch-1.0 filesrc location=image.jpg ! jpegdec ! glupload ! \ imagefreeze ! glcolorconvert ! glimagesinkelement Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/594>
* rtpmanager: fix "redefinition of typedef RTPTWCCManager" compiler warningTim-Philipp Müller2020-07-201-1/+0
| | | | | | G_DECLARE_FINAL_TYPE includes this typedef as well. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/675>
* rtp*pay: Allocate using the base class for audio codecsOlivier Crête2020-07-1714-17/+40
| | | | | | | This is required to add RTP header extensions from the meta automatically. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/674>
* rtspsrc: Fix segfault with illegal freeOgnyan Tonchev2020-07-151-12/+5
| | | | | | | set_get_param_q is not a pointer so it is illegal to call g_queue_free_full(). Freeing the requests by popping them from the queue instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/669>
* QtGLVideoItem: Use QSharedPointer::data() for better compatibilityRaul Tambre2020-07-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | Older Qt versions didn't have QSharedPointer::get(), which is just a modern alias for QSharedPointer::data(). FAILED: ext/qt/libgstqmlgl.so.p/qtitem.cc.o c++ -Iext/qt/libgstqmlgl.so.p -Iext/qt -I../ext/qt -I. -I.. -I../gst-libs -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/lib/aarch64-linux-gnu/gstreamer-1.0/include -I/usr/include/aarch64-linux-gnu/qt5/QtCore -I/usr/include/aarch64-linux-gnu/qt5 -I/usr/include/aarch64-linux-gnu/qt5/QtGui -I/usr/include/aarch64-linux-gnu/qt5/QtQml -I/usr/include/aarch64-linux-gnu/qt5/QtNetwork -I/usr/include/aarch64-linux-gnu/qt5/QtQuick -I/usr/include/aarch64-linux-gnu/qt5/QtX11Extras -I/usr/include/libdrm -flto -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++11 -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Winit-self -Wmissing-include-dirs -Wno-multichar -Wvla -Wpointer-arith -g -fdebug-prefix-map=/opt/good/src=. -Wformat -Werror=format-security -O3 -march=native -Wno-error -Wdate-time -fPIC -pthread -DHAVE_CONFIG_H -DHAVE_QT_X11 -DHAVE_QT_EGLFS -MD -MQ ext/qt/libgstqmlgl.so.p/qtitem.cc.o -MF ext/qt/libgstqmlgl.so.p/qtitem.cc.o.d -o ext/qt/libgstqmlgl.so.p/qtitem.cc.o -c ../ext/qt/qtitem.cc In file included from /usr/include/gstreamer-1.0/gst/gst.h:55:0, from /usr/include/gstreamer-1.0/gst/video/video.h:23, from ../ext/qt/qtitem.cc:27: ../ext/qt/qtitem.cc: In destructor ‘virtual QtGLVideoItem::~QtGLVideoItem()’: ../ext/qt/qtitem.cc:138:86: error: ‘class QSharedPointer<QtGLVideoItemInterface>’ has no member named ‘get’ GST_INFO ("%p Destroying QtGLVideoItem and invalidating the proxy %p", this, proxy.get()); ^ /usr/include/gstreamer-1.0/gst/gstinfo.h:682:31: note: in definition of macro ‘GST_CAT_LEVEL_LOG’ (GObject *) (object), __VA_ARGS__); \ ^~~~~~~~~~~ ../ext/qt/qtitem.cc:138:3: note: in expansion of macro ‘GST_INFO’ GST_INFO ("%p Destroying QtGLVideoItem and invalidating the proxy %p", this, proxy.get()); ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/673>
* qtdemux: fix allocation explosion with stsd entriesJustin Chadwell2020-07-152-1/+56
| | | | | | | | | | | | Previously, the user input for stsd entries is trusted completely, and so a maliciously crafted file could choose the length of the stsd entries arbitrarily and cause qtdemux to try to allocate up to 2GB of memory (half of a 32 bit max int). This patch fixes this by sanity checking the stsd input against the size of the entire stsd atom. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/670>
* qtdemux: fix crashes when input stream contained no stsd entriesJustin Chadwell2020-07-152-0/+54
| | | | | | | | | | | | | During trak parsing, we need to check for the existence of stsd_entries, otherwise, we end up with a NULL pointer to them. It is entirely possible for the stsd to exist, but for it to have no entries, which the previous checks did not take into account. This patch adds a simply check to ensure that all files that do not contain a stsd entry are deemed corrupt, and adds a test case to prevent a regression. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/670>
* docs: update for new pixel formatsTim-Philipp Müller2020-07-151-4/+4
| | | | | | | https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/753 https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/754 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/672>
* rpicamsrc: fix build with older meson versionsTim-Philipp Müller2020-07-101-1/+1
| | | | | | assert() used to require two arguments. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/668>
* examples: hook up rpicamsrc examplesTim-Philipp Müller2020-07-104-2/+18
| | | | | | webrtc one should probably go into gst-examples. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
* examples: fix indentation of rpicamsrc examplesTim-Philipp Müller2020-07-103-105/+111
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
* rpicamsrc: flesh out docs and add to plugin docs cacheTim-Philipp Müller2020-07-103-5/+1095
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>