summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* glupload: dmabuf-direct: report driver limitations to debug loggluploadPhilipp Zabel2018-10-301-2/+14
| | | | | | | Report in the DEBUG log if the driver does not support importing a given format with linear modifiers non-externally. https://bugzilla.gnome.org/show_bug.cgi?id=783521
* glupload: dmabuf-direct: query formats before modifiersPhilipp Zabel2018-10-301-1/+28
| | | | | | | | | | | | | | | The EXT_image_dma_buf_import_modifiers extension [1] states regarding eglQueryDmaBufModifiersEXT: The format must be one of those returned by the eglQueryDmaBufFormatsEXT command. To comply with this requirement eglQueryDmaBufFormatsEXT must be called before eglQueryDmaBufModifiersEXT. [1] https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt https://bugzilla.gnome.org/show_bug.cgi?id=783521
* glupload: debug output from dmabuf and dmabuf_direct upload transform_capsPhilipp Zabel2018-10-301-0/+8
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=783521
* glupload: calculate DRM fourcc once for direct dmabuf uploadPhilipp Zabel2018-10-301-9/+12
| | | | | | | Calculate DRM fourcc and report to the DEBUG log about it only once instead of three times in gst_egl_image_from_dmabuf_direct(). https://bugzilla.gnome.org/show_bug.cgi?id=783521
* glupload: Implement direct dmabuf uploaderMichael Olbrich2018-10-301-14/+133
| | | | | | | | | | | | | The idea is that some GPUs (like the Vivante series) can actually perform the YUV->RGB conversion internally, so no custom conversion shaders are needed. To make use of this feature, we need an additional uploader that can import DMABUF FDs and also directly pass the pixel format, relying on the GPU to do the conversion. Based on patches from Nicolas Dufresne <nicolas.dufresne@collabora.com> and Carlos Rafael Giani <dv@pseudoterminal.org>. https://bugzilla.gnome.org/show_bug.cgi?id=783521
* gluploadelement: try to avoid dropping buffersMichael Olbrich2018-10-301-1/+13
| | | | | | | | | Without this, a buffer is dropped if glupload indicates that it is necessary to reconfigure. Avoid this by explicitly reconfiguring immediately and uploading the buffer again. https://bugzilla.gnome.org/show_bug.cgi?id=783521
* glupload: handle upload methods with different capsMichael Olbrich2018-10-301-0/+24
| | | | | | | | If a upload method is selected then use it exclusively in transform_caps(). Also, reconfigure if the current caps don't match the current upload method. https://bugzilla.gnome.org/show_bug.cgi?id=783521
* glupload: allow system memory for dmabuf in transform_capsMichael Olbrich2018-10-301-0/+6
| | | | | | | | | This should not be necessary, but currently not all plugins that provide dmabuf memory announce this with caps features, e.g. v4l2. The static caps already contain the system memory. It didn't break before because other upload methods provide the necessary transformation. https://bugzilla.gnome.org/show_bug.cgi?id=783521
* glupload: try to use the last method after reconfigureMichael Olbrich2018-10-301-5/+27
| | | | | | | | Reconfigure will trigger a set_caps which clears the upload method. Remember the method in this case and start with it. Wrap around once to try all methods if necessary. https://bugzilla.gnome.org/show_bug.cgi?id=783521
* gl/egl: Add gst_egl_image_from_dmabuf_direct() functionMichael Olbrich2018-10-303-7/+349
| | | | | | | | | | | | | The colorspace conversion happens during the upload so the necessary hints must be provided to ensure that the conversion works correctly. At least the Mesa Intel driver will create a texture without error but produces an incorrect result. Use eglQueryDmaBufModifiersEXT() to check if non-external upload is supported for the given format. Based on a patch from Carlos Rafael Giani <dv@pseudoterminal.org>. https://bugzilla.gnome.org/show_bug.cgi?id=783521
* glmemory: Fix n_wrapped_pointers usageNicolas Dufresne2018-10-301-1/+6
| | | | | | | | gst_gl_memory_setup_buffer() was not properly using the number of pointers to wrapped. This also fixes the validation, as we only support 1 wrapper per view, or num_planes * views wrapper. https://bugzilla.gnome.org/show_bug.cgi?id=783521
* overlaycomposition: Fix implicit use of memsetHEADmasterJohan Bjäreholt2018-10-291-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=797353
* overlaycomposition: Add plugin inspect fileSebastian Dröge2018-10-281-0/+34
|
* examples: overlaycomposition: Fix Meson buildPhilippe Normand2018-10-281-1/+1
|
* overlaycomposition: New element that allows applications to draw ↵Sebastian Dröge2018-10-2820-4/+1676
| | | | | | GstVideoOverlayComposition on a stream https://bugzilla.gnome.org/show_bug.cgi?id=797234
* parsebin: Add missing locks/unlocks of the chain mutexSebastian Dröge2018-10-281-1/+5
| | | | | | | Before freeing pending pads it is required to hold the mutex, that's what is protecting the list of pending pads in other places. https://bugzilla.gnome.org/show_bug.cgi?id=796935
* tests: Solidify tcp connection checkEdward Hervey2018-10-271-1/+19
| | | | | | | | | | | | | | | | | The previous failure was a timeout which was due to the sending pipeline pushing test buffer *before* the remote client was accepted. We would therefore never get the buffer on the other side. While the client socket would indeed appear as "connected", this doesn't mean that the remote server side did "accept" it (which is where we then add it to the list of remote parties to which data will be sent). The problem isn't with the element implementation, but to the nature of TCP 3-way handshake. In order to make the test reliable, wait for the sink to have accepted the remote client (by checking the number of handles) before sending out test buffers.
* decodebin3: fix eos event leakRoland Jon2018-10-181-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=796860
* oggdemux: Answer POSITION querySebastian Dröge2018-10-171-1/+14
|
* meson: Replace empty configuration_data() with copy keywordSeungha Yang2018-10-176-12/+12
| | | | | | | | Use 'copy' keyword to avoid meson warning message. Note that 'copy' keyword in configure_file() is available since meson 0.47.0 https://bugzilla.gnome.org/show_bug.cgi?id=797298
* videometa: Log map errors with GST_ERROR, not DEBUGNirbheek Chauhan2018-10-151-2/+2
| | | | Otherwise it's very easy to miss them when gst_video_frame_map() fails
* rtspconnection: do not duplicate authentication headersMathieu Duponchelle2018-10-111-2/+0
| | | | | | | | | rtsp_connection_send takes care of adding those already, and some reverse proxies such as nginx will reject the request altogether if the Authorization header is present twice, even with the same value. https://bugzilla.gnome.org/show_bug.cgi?id=797272
* rtpbasepayload: rtpbasedepayload: Add source-info propertyStian Selnes2018-10-1017-43/+972
| | | | | | | | | | | | | | | | | Add a source-info property that will read/write meta to the buffers about RTP source information. The GstRTPSourceMeta can be used to transport information about the origin of a buffer, e.g. the sources that is included in a mixed audio buffer. A new function gst_rtp_base_payload_allocate_output_buffer() is added for payloaders to use to allocate the output RTP buffer with the correct number of CSRCs according to the meta and fill it. RTPSourceMeta does not make sense on RTP buffers since the information is in the RTP header. So the payloader will strip the meta from the output buffer. https://bugzilla.gnome.org/show_bug.cgi?id=761947
* meson: use new 'python' module instead of deprecatedTim-Philipp Müller2018-10-081-1/+1
| | | | https://github.com/mesonbuild/meson/pull/4169
* examples: gl: remove bitrotten clutter examplesTim-Philipp Müller2018-10-0711-985/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=797173
* tests: audioconvert: test caps fixate with layout conversionGeorge Kiagiadakis2018-10-051-0/+50
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=797225
* audioconvert: remove layout from structure when fixating capsMatej Knopp2018-10-051-0/+1
| | | | | | otherwise caps intersection always fails when converting non-interleaved to interleaved audio https://bugzilla.gnome.org/show_bug.cgi?id=797225
* Revert "Revert "gl: use correct blend functions for unpremultiplied alpha""Matthew Waters2018-10-052-2/+13
| | | | | | This reverts commit 452d90a88c6e68a3daa38e02213782836788236a. This was actually correct. sorry for the noise!
* glimagesink: make multiview none equivalent to monoMatthew Waters2018-10-051-1/+14
| | | | | | | | | | | | Fixes the internal viewconvert to not scale buffers for output with the following pipeline: gltestsrc ! glimagesink It also fixes overlay composition with a resized output with an OpenGL upstream: gltestsrc ! timeoverlay ! glimagesink
* Revert "gl: use correct blend functions for unpremultiplied alpha"Matthew Waters2018-10-052-13/+2
| | | | This reverts commit 779d028f27b7bc6eb7abe841fe2cda97de3be983.
* gl: use correct blend functions for unpremultiplied alphaMatthew Waters2018-10-042-2/+13
| | | | | Fallback to the closest but incorrect values we had before if we can't do this correctly.
* gl/overlaycompositor: don't force unpremultiplied alphaMatthew Waters2018-10-041-2/+0
| | | | Remove testing code from 23159365618409011745b554b4ad371700961121
* gl/overlaycompositor: support both (un)premultiplied alphaMatthew Waters2018-10-041-4/+30
| | | | | | Using the correct blend modes for each case or converting to premultipled in the very unlikely case that separate blend modes are unavailable on ancient opengl hardware.
* gl: GstGLAPI should be gst_gl_api_ in lower-caseSebastian Dröge2018-10-041-1/+1
|
* glviewconvert: Add backwards compatibility gst_gl_stereo_downmix_mode_get_type()Sebastian Dröge2018-10-042-0/+15
| | | | It's proper new name is gst_gl_stereo_downmix_get_type().
* gl: Add gl-enumtypes.[ch] to CLEANFILESSebastian Dröge2018-10-041-1/+3
|
* video-overlay-composition: Correctly mark GstVideoOverlayFormatFlags as flagsSebastian Dröge2018-10-043-3/+5
| | | | And register a GType for it.
* gl/meson: fix wrong overlay filenameMatthew Waters2018-10-041-1/+1
|
* glimagesink: only update the output info iff there's a valid display_rectMatthew Waters2018-10-041-19/+21
| | | | | | | | | Attempting to use the MAX(1, display_rect) would result in the overlay composition attempting to draw into 1x1 buffer and calculate some grossly incorrect sizes. previously failing case: gltestsrc ! textoverlay text=GStreamer ! glimagesinkelement
* gl: add a new overlay compositor elementMatthew Waters2018-10-045-0/+403
| | | | | | | Flattens all the overlays from the GstVideoOverlayCompositionMeta into the video stream. https://bugzilla.gnome.org/show_bug.cgi?id=759867
* gl/overlaycompositor: add support for flipping the outputMatthew Waters2018-10-041-7/+86
| | | | | This is required to use gloverlaycompositor outside of glimagesink where the output is not automatically flipped
* gl/overlaycompositor: handle ANY caps features gracefullyMatthew Waters2018-10-041-2/+3
|
* glfilter: don't complete overwrite caps features from the subclassMatthew Waters2018-10-041-4/+8
| | | | | We can get away with ensuring that the memory:GLMemory caps feature is present in the output caps
* gl: Add gl-enumtypes.h to nodist_HEADERSSebastian Dröge2018-10-031-0/+1
|
* glviewconvert: Create an anonymous enum for GstGLStereoDownmixSebastian Dröge2018-10-031-1/+1
| | | | Older glib-mkenums completely fails to parse it otherwise.
* gl: Rename GST_TYPE_GL_STEREO_DOWNMIX GType macro everywhereSebastian Dröge2018-10-035-10/+8
| | | | The old one still exists but behind GST_DISABLE_DEPRECATED
* gl: Generate enum GTypes via glib-mkenumsSebastian Dröge2018-10-036-37/+39
| | | | | https://bugzilla.gnome.org/show_bug.cgi?id=797240 https://bugzilla.gnome.org/show_bug.cgi?id=797144
* glsl: Fix error quark string to be more consistentSebastian Dröge2018-10-021-1/+1
|
* glbasememory: Fix error quark string and move documentation to the right placeSebastian Dröge2018-10-022-7/+7
|
* encoding-profile: set_restriction should accept null as validThiago Santos2018-10-011-1/+1
| | | | | | It was checking for GST_IS_CAPS only and that would fail if the new restriction caps was NULL and its documentation says it accepts NULL as valid input.