summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tag: id3v2: fix frame size check and potential invalid reads1.16Tim-Philipp Müller2021-03-151-1/+1
| | | | | | | | | Check the right variable when checking if there's enough data left to read the frame size. Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1067>
* Release 1.16.31.16.3Tim-Philipp Müller2020-10-216-62/+867
|
* Update docsTim-Philipp Müller2020-10-2136-33/+230
|
* Update translationsTim-Philipp Müller2020-10-214-411/+1184
|
* gl: dist new private egl headerTim-Philipp Müller2020-10-211-0/+1
|
* Automatic update of common submoduleTim-Philipp Müller2020-10-202-53/+52
| | | | From 59cb678 to a825d27
* typefind/xdgmime: Validate mimetypes to be valid GstStructure names before ↵Sebastian Dröge2020-10-171-0/+26
| | | | | | | | | | | | | | using them On macOS, for example, "text/*" can be returned as mimetype for plaintext files but we don't allow '*' in structure names and this would cause critical warnings. It's a valid mimetype but not a valid structure name. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/616 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/879>
* gstrtpbuffer: fix header extension length validationWill Miller2020-10-122-1/+26
| | | | | | | | | | We validate the header extensions length of an RTP buffer by comparing it against the block size. Since we multiply the length in words by 4 to get the length in bytes, a suitably large length could cause a wrapround of the uint16, giving a lower length which erroneously passes the check and allows the buffer to be mapped. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/866>
* video-info: clarify GST_VIDEO_INTERLACE_MODE_ALTERNATE docGuillaume Desmottes2020-10-121-1/+1
| | | | | | Fields really should alternate in this mode. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/862>
* videodecoder: fix output state interlace-modeGuillaume Desmottes2020-10-121-43/+61
| | | | | | | | | | | When user is passing the actual interlace-mode when calling gst_video_decoder_set_interlaced_output_state() it should not be overidden by the input interlace-mode. Needed to fix #825 as we want to keep interlace-mode=interleaved from parsers and have the OMX decoder producing interlace-mode=alternate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/862>
* videodecoder: add interlace-mode to debug output when setting output stateGuillaume Desmottes2020-10-121-2/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/862>
* decodebin3: only force streams-selected seqnum after a select-streamsFrançois Laignel2020-10-111-1/+3
| | | | | | | | | | | The initial streams-selected message might not match any select-streams, in which case it is currently overriden with GST_SEQNUM_INVALID. Related to: - https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/601 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/863>
* gl/display/egl: ensure debug category is initializedMatthew Waters2020-09-271-5/+19
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/833>
* audioaggregator: Only check downstream caps when handling CAPS events if we ↵Sebastian Dröge2020-09-271-21/+23
| | | | | | | | | didn't negotiate with downstream yet If we already negotiated with downstream there is not point in checking if the caps are supported. We already know that this is the case. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/834>
* audioaggregator: Check all downstream allowed caps structures if they ↵Sebastian Dröge2020-09-271-5/+9
| | | | | | | | | | | | | | | support the upstream rate Otherwise it might happen that downstream prefers a different rate (i.e. puts it into the first structure) and also supports other rates, but audioaggregator would then fail negotiation. Also this now correctly handles downstream returning a range of supported rates. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/795 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/834>
* video-format: RGB16/15 are not 16 bit per component but only 5.333 and 5Sebastian Dröge2020-09-251-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/826>
* video: Fix NV12_64Z32 number of componentNicolas Dufresne2020-09-251-1/+1
| | | | | | This format has 3 components, just like NV12. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/827>
* gstglwindow_x11: fix resizeDavid Bender2020-09-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This patch was taken from #629#note_178766, the comment made at the time was: The root issue is a mismatch between the initialization of render_rect in GstGLWindowX11Private and what's expected in the draw_cb function. Because render_rect is not explicitly initialized to a width and height of -1 (unlike gstglwindow_wayland_egl.c which does initialize to -1), the less-than check for explicitly-set render_rect at gstglwindow_x11.c:453-454 always fails, even when the parent_win has been set and the render rectangle has never been set. Maybe this came from copying the similar check in the wayland code? Regardless, I think the correct inequality should be '<= 0' (on both lines). Alternatively initialization could be changed, but other sinks, e.g. xvimagesink don't appear to use -1 to mean "unset" render_rect this way. The issue can be reproduced by running the example in tests/examples/gl/qt/videooverlay/ on X11, and resizing the output window Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/829>
* videorate/videoscale/audioresample: Ensure that the caps returned from ↵Sebastian Dröge2020-09-253-2/+4
| | | | | | | | | | fixate_caps() are actually fixated If there is some other field than the ones we care about left and not fixated yet then basetransform will just error out. So instead just pass the result through gst_caps_fixate() in the very end. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/832>
* pbutils: Add latest H.264 level valuesNicolas Dufresne2020-09-251-0/+10
| | | | | | The spec now list 6, 6.1 and 6.2. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/831>
* audioaggregator: Fix negotiation with downstream if there is no peer yetSebastian Dröge2020-09-251-1/+5
| | | | | | | | get_allowed_caps() will return NULL, which is not a problem in itself. Just take the template caps for negotiation in that case instead of erroring out. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/830>
* libvisual: use gst_element_class_set_metadata when passing dynamic stringsJordan Petridis2020-09-251-1/+1
| | | | | | | | | | gst_element_class_set_metadata is meant to only be used with static or inlined strings, which isn't the case for this element resulting in use-after-free later on. https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c#gst_element_class_set_static_metadata Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/828>
* discoverer: Check sinkpad existence before retrieving capsSebastian Dröge2020-09-251-4/+4
| | | | | | Otherwise we would error out without releasing the caps first. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/825>
* discoverer: Ensure that we have fixed, non-empty caps before passing passing ↵Sebastian Dröge2020-09-251-2/+4
| | | | | | to is_subtitle_caps() Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/825>
* discoverer: Try to get negotiated caps first on pad-added and only then fall ↵Sebastian Dröge2020-09-251-1/+6
| | | | | | | | | | | back to a caps query The negotiated caps will be more accurate and are fixed caps in any case. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/498 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/825>
* typefind: Consider MPEG-PS PSM to be a PES typeJan Schmidt2020-09-251-1/+1
| | | | | | | | | | Include the Program Stream Map packet type 0xBC in the set of packets we treat as PES. This fixes typefinding on MPEG-PS streams with PSM, where the PSM would previously be considered a loss-of-sync and cause the typefind to require more data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/824>
* subparse: accept WebVTT timestamps without an hour componentMathieu Duponchelle2020-09-201-2/+12
| | | | | | https://www.w3.org/TR/webvtt1/#webvtt-timestamp mm:ss,000 is a valid WebVTT timestamp
* textrender: Fix AYUV output.Jan Schmidt2020-06-071-1/+1
| | | | | | | Fix the check for whether the element is operating in ARGB mode. It was incorrectly checking if the output format has an alpha channel, which is true for both ARGB and AYUV, leading to the element incorrectly outputting ARGB values into AYUV caps.
* build: Replace bashisms in configure for Wayland and GLES3Chris Mayo2020-06-051-5/+5
| | | | | | | | | | | | | | | | checking for wayland-scanner... wayland-scanner ./configure: 28389: test: xyes: unexpected operator checking libdrm/drm_fourcc.h usability... yes checking libdrm/drm_fourcc.h presence... yes checking for libdrm/drm_fourcc.h... yes checking for glTexDirectVIV in -lGLESv2... no ./configure: 28530: test: xyes: unexpected operator ./configure: 28533: test: x: unexpected operator Causes build failure: make[6]: *** No rule to make target '/stable/xdg-shell/xdg-shell.xml', needed by 'xdg-shell-client-protocol.c'. Stop.
* glupload: fix segfaultHaihao Xiang2020-03-261-1/+4
| | | | | | | | | | | | | | Without this fix, it is possible that outbuf is not initialized, which will result in segfault when call gst_buffer_replace (&outbuf, NULL). In addition, the patch fixes potential memory leak in restart path. The segfault can be reproduced by the pipeline below: GST_GL_PLATFORM=egl \ gst-launch-1.0 videotestsrc ! msdkh265enc ! msdkh265dec ! \ 'video/x-raw(memory:DMABuf)' ! glimagesink https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/619
* glupload: Fix fallback from direct dmabuf to dmabuf upload methodChris Lord2020-03-233-9/+72
| | | | | | | | In the situation that the direct dmabuf path is chosen, but with an unsupported texture format, this causes accept to fail rather than continue and fail at the upload stage. It is also possibly necessary to reconfigure after falling back from direct to non-direct dmabuf upload paths.
* compositor: Create a square checkerboard for UYVY/YUY2/YVYU tooSebastian Dröge2020-03-131-2/+2
| | | | | | Previously the "squares" were twice as wide. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/732
* compositor: Define a separate checker fill function for BGRx/RGBx than for ↵Sebastian Dröge2020-03-132-2/+5
| | | | | | | | xBGR/xRGB Otherwise we'll create a cyan or yellow checkerboard. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/736
* video-info: fix typo in docGuillaume Desmottes2020-02-261-2/+2
|
* video: fix GST_VIDEO_FRAME_IS_BOTTOM_FIELD()Guillaume Desmottes2020-02-262-1/+43
| | | | | | | GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD is a subset of GST_VIDEO_FRAME_FLAG_TOP_FIELD so needs to be checked accordingly. Fix #726
* appsrc/appsink: Make setting/replacing callbacks thread-safeSebastian Dröge2020-02-142-79/+160
| | | | | | | | | | | | | Previously we would simply use them without any locking at all, while using the object lock for setting them. Nothing prevented new callbacks to be set in the meantime, potentially calling a callback with already freed user_data. To prevent this move the callbacks into a reference counted struct and use the appsrc/appsink mutex to protect access to it, which is used in all functions calling the callbacks already anyway. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/729
* discoverer: Start discovering next URI from right threadThibault Saunier2020-02-121-2/+5
| | | | | When using the cache, we were not using the right GMainContext to setup next URI to discovery, fix that.
* glcolorconvert: error out if memory context is different than oursMatthew Waters2020-02-111-0/+15
|
* gltestsrc: NULL out the functions usedMatthew Waters2020-02-111-0/+1
| | | | Fixes segfault when the display changes
* glviewconvert: fix reset context for GL context changeMatthew Waters2020-02-111-2/+11
| | | | | We need to remove GL resources from the old context instead of the new GL context. The two GL context may not even be shared.
* glviewconvert: also remove GL buffers on a resetMatthew Waters2020-02-111-6/+28
| | | | Fixes a possible memory leak on renegotiation
* videoaggregator: Don't configure NULL chroma-site/colorimetrySebastian Dröge2020-02-051-5/+12
| | | | | | | If there's no known value in the best caps then the functions to convert them to strings will return NULL. Having the fields not in the caps is not a problem, having them with a NULL value however will cause negotiation failures.
* glvideomixer: perform _get_highest_precision on the GL threadMatthew Waters2020-02-031-19/+18
| | | | | | gst_gl_shader_string_get_highest_precision needs to make an OpenGL call so execution outside the OpenGL thread and context results in undefined behaviour.
* uridecodebin3: Fixed defauts not being set on initializationDimitrios Katsaros2020-01-171-2/+9
| | | | | | | | The default values were not being set on element initialization. This was a problem for buffer_duration and buffer_size since they would be zero initialized, rather then being set to -1. This would cause the underlaying queue2 element to have no limits and depending on the streamed file, could cause queue2 to allocate massive amounts of memory.
* oggstream: Workaround for broken PAR in VP8 BOSPhilippe Normand2020-01-131-0/+5
| | | | | | | Similarily to the Theora mapping, process 0:N, N:0 and 0:0 pixel aspect ratios as 1:1. Fixes #719
* fft: Update our kiss fft versionSebastian Dröge2020-01-0121-481/+544
| | | | | | | This fixes thread-safety issues and various other minor issues. Our previous version was about 13 years old. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/715
* audioencoder: fix segment event leakJonas Holmberg2019-12-201-0/+1
| | | | Segment event was leaked if format != _TIME.
* playbin: Handle error message with redirection indicationThibault Saunier2019-12-061-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are in the wild (mp4) streams that basically contain no tracks but do have a redirect info[0], in which case, qtdemux won't be able to expose any pad (there are no tracks) so can't post anything but an error on the bus, as: - it can't send EOS downstream, it has no pad, - posting an EOS message will be useless as PAUSED state can't be reached and there is no sink in the pipeline meaning GstBin will simply ignore it In that case, currently the application could try to handle that but it is pretty complex as it will get the REDIRECT message on the bus at which point it could set the URL but playbin will ignore it, as it will only be for the next EOS, it thus need to set the pipeline to NULL (READY won't do as it is already in READY at that point). And it needs to figure out the following ERROR message on the bus needs to be ignored, which is not really simple. The approach here is to allow element to add details to the ERROR message with a `redirect-location` field which elements like playbin handle and use right away. We could also use the element 'redirect' message in playbin, but the issue with that approach is that the element will still emit the ERROR message on the bus, leading to wrong behaviour. That can't be avoided since in the case the app/parent pipeline is not handling the redirect instruction, the ERROR message is necessary (and there is no way to detect that the message has been "handled" from the element emitting the redirect). [0]: http://movietrailers.apple.com/movies/paramount/terminator-dark-fate/terminator-dark-fate-trailer-2_480p.mov
* Release 1.16.21.16.2Tim-Philipp Müller2019-12-036-20/+451
|
* Update docsTim-Philipp Müller2019-12-0333-34/+34
|