summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* gl/win32: Use g_io_channel_win32_new_messages() instead of our custom GSourceSebastian Dröge2018-09-216-131/+22
| | | | | | Removes some unneeded code duplication between here and GLib. https://bugzilla.gnome.org/show_bug.cgi?id=797184
* vorbisdec: Initialize decoder directly once we have the 3 headersSebastian Dröge2018-09-211-3/+27
| | | | | | | | | | ... instead of waiting for the first non-header buffer. Also drop non-identification headers arriving after initialization or before the identification header. We don't do anything with them and they would just accumulate. https://bugzilla.gnome.org/show_bug.cgi?id=796980
* examples: gl: generic: recordgraphic: fix build with MSVCTim-Philipp Müller2018-09-191-0/+3
|
* Removed unused GST_CAT_PERFORMANCEJohan Bjäreholt2018-09-191-3/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=797175
* meson: add glib-checks option to disable API guards and suchTim-Philipp Müller2018-09-192-0/+8
| | | | | | We want this enabled by default, also in releases, but people may want to disable this for performance-critical workloads or on embedded devices.
* meson: fix missing closing bracket in option descriptionsTim-Philipp Müller2018-09-191-2/+2
|
* meson: add clutter gl examples to Meson buildTim-Philipp Müller2018-09-192-4/+23
|
* examples: gl: remove old and broken vs solution filesTim-Philipp Müller2018-09-197-187/+1
|
* meson: add generic gl examples to Meson buildTim-Philipp Müller2018-09-196-1/+26
|
* gl/egl: fix annotation for gst_egl_image_new_wrapped()Víctor Manuel Jáquez Leal2018-09-181-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=797158
* gl: meson: add missing headers for gir generationsVíctor Manuel Jáquez Leal2018-09-181-1/+1
| | | | | | | | There are a lot of symbols in GstGL-1.0.gir generated by automake that are not when it is generated by meson, because a lot of headers were not included in meson's gir generation. https://bugzilla.gnome.org/show_bug.cgi?id=797158
* gl/build: don't pass OpenGL headers to GIRMatthew Waters2018-09-183-6/+14
| | | | | g-ir-scanner does not have a good enough C parser to parse the GL system headers
* glshader: macro out all the extremely similar uniform settingMatthew Waters2018-09-181-409/+147
|
* glviewconvert: fix GEnumValue declarationVíctor Manuel Jáquez Leal2018-09-141-3/+5
| | | | | | | | The purpose of value_name in GEnumValue structure is to express in text format the name of the enum, not a description of the value, so it can be use later for the gir file generation. https://bugzilla.gnome.org/show_bug.cgi?id=797144
* Revert "glmemory: Fix n_wrapped_pointers usage"Nicolas Dufresne2018-09-131-6/+1
| | | | This reverts commit b1299c179bb185bc78df58dd3af9988e6e1f5490.
* Revert "glupload: allow system memory for dmabuf in transform_caps"Nicolas Dufresne2018-09-131-6/+0
| | | | This reverts commit d7eb48cce7ddb2b9f0d0bee84f66516c8113d167.
* Revert "glupload: handle upload methods with different caps"Nicolas Dufresne2018-09-131-13/+0
| | | | This reverts commit 87336b19577b7677c0574e8cb4c4914f6d934b81.
* Revert "gl/egl: Add gst_egl_image_from_dmabuf_direct() function"Nicolas Dufresne2018-09-133-340/+7
| | | | This reverts commit 8f0d75d4d6f622483302e689653ec1d8c90bcaa4.
* Revert "glupload: Implement direct dmabuf uploader"Nicolas Dufresne2018-09-131-133/+14
| | | | This reverts commit 3b1ae6262b99b45095c6aca02af0d7bbf88cfbbc.
* Revert "glupload: try to use the last method after reconfigure"Nicolas Dufresne2018-09-131-27/+5
| | | | This reverts commit c1053e17d58c44f5509aaf9949c02b82332cb193.
* Revert "gluploadelement: try to avoid dropping buffers"Nicolas Dufresne2018-09-131-13/+1
| | | | This reverts commit 75f2532da784731190d44f118f01a12841ecb683.
* opusenc: fix segmentation fault at x86 versionMarcos Kintschner2018-09-131-2/+2
| | | | | | | | The argument 0x0 is interpreted by the x86 compiler as a 32-bit int, but it is consumed as a 64-bit uint causing a segmentation fault. We need to explicit cast it to guint64 in order for the va_list to be built correctly. https://bugzilla.gnome.org/show_bug.cgi?id=797092
* gluploadelement: try to avoid dropping buffersMichael Olbrich2018-09-101-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: try to use the last method after reconfigureMichael Olbrich2018-09-101-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
* glupload: Implement direct dmabuf uploaderMichael Olbrich2018-09-101-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
* gl/egl: Add gst_egl_image_from_dmabuf_direct() functionNicolas Dufresne2018-09-103-7/+340
| | | | | | | | | | | | | 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
* glupload: handle upload methods with different capsMichael Olbrich2018-09-101-0/+13
| | | | | | | | 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-09-101-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
* glmemory: Fix n_wrapped_pointers usageNicolas Dufresne2018-09-101-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
* videodecoder: Delete the link before pushingNicolas Dufresne2018-09-101-2/+3
| | | | | | | | | | The gst_video_decoder_clip_and_push_buf() now drops the internal stream lock while pushing. This means, the output_queued list could be modififed during that time. To make the code safe again, we delete the link before pushing the data. The walk pointer will later be updated with the list head, which makes it safe in case the list was modififed. https://bugzilla.gnome.org/show_bug.cgi?id=715192
* gstaudiosrc/sink: Set audio ringbuffer thread priorityNirbheek Chauhan2018-09-114-0/+76
| | | | | | | | | | On Windows, the ringbuffer thread function must have the "Pro Audio" priority set, otherwise it sometimes doesn't get scheduled for 200-300ms, which will immediately cause an underrun unless you set a very high latency-time and buffer-time. This has no compile-time deps since it tries to load avrt.dll at runtime to set the thread priority.
* meson: Add an option for the 'Tremor' Vorbis implementationNirbheek Chauhan2018-09-103-2/+4
| | | | | | | It makes sense to control it explicitly to allow us to enable it on platforms that don't have hardware floating-point, and to allow people to enable the 'vorbis' plugin without having to also provide the Tremor dependency which is useless on most devices.
* gl/meson: check for EGL headers before allowing use of EGLMatthew Waters2018-09-051-4/+12
| | | | | For distros that provide headers in seperate dev/devel packages this won't build egl support without the necessary EGL headers.
* discoverer: Consider closedcaption/ as subtitles and improve subtitle caps ↵Sebastian Dröge2018-09-041-4/+17
| | | | | | | | | detection Generally all subtitle/, subpicture/, text/, closedcaption/ and application/x-subtitle caps instead of hardcoding a small set of caps. https://bugzilla.gnome.org/show_bug.cgi?id=797072
* videoencoder: Release STREAM_LOCK during gst_pad_push()Alexey Chernov2018-08-311-1/+6
| | | | | | | | Release STREAM_LOCK before calling gst_pad_push() and take it back afterward so that upstream isn't blocked while output buffer is being pushed downstream. https://bugzilla.gnome.org/show_bug.cgi?id=715192
* videodecoder: Release STREAM_LOCK during gst_pad_push()Alexey Chernov2018-08-311-0/+4
| | | | | | | | Release STREAM_LOCK before calling gst_pad_push() and take it back afterward so that upstream isn't blocked while output buffer is being pushed downstream. https://bugzilla.gnome.org/show_bug.cgi?id=715192
* meson: Maintain macOS ABI through dylib versioningNirbheek Chauhan2018-08-3113-2/+15
| | | | | | | | Requires Meson 0.48, but the feature will be ignored on older versions so it's safe to add it without bumping the requirement. Documentation: https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-manual.md#shared_library
* gl/meson: fix gbm option to enable rather than disableMatthew Waters2018-08-311-2/+2
| | | | This change matches what the other winsys/platforms are doing
* gl/meson: add Android build definitionsMatthew Waters2018-08-311-0/+24
|
* gl/meson: add build for iOSMatthew Waters2018-08-312-47/+95
|
* video: Add GST_VIDEO_INFO_FIELD_RATE_N() macroZeeshan Ali2018-08-291-0/+3
| | | | | | | | Add a new macro that gives you the rate of the fields, which is the numerator of the field-rate for ALTERNATE interlacing video and FPS for progressive and other interlacing formats. https://bugzilla.gnome.org/show_bug.cgi?id=796106
* video: Add gst_video_decoder_set_interlaced_output_state()Zeeshan Ali2018-08-292-4/+35
| | | | | | | | | Add a variant of gst_video_decoder_set_output_state() that allows the user to pass an interlacing mode as well. This is needed to ensure that gst_video_info_set_interlaced_format() is used instead so that GstVideoInfo.size is correctly initialized. https://bugzilla.gnome.org/show_bug.cgi?id=796106
* video: Add GST_VIDEO_INFO_FIELD_HEIGHT() macroZeeshan Ali2018-08-292-6/+11
| | | | | | | | | Add a new macro that gives you the height of a field. It returns the height of the full frame unless split-field (alternate) interlacing is in use. Also GST_VIDEO_INFO_COMP_HEIGHT macro now uses this new macro to get the height for its calculation. https://bugzilla.gnome.org/show_bug.cgi?id=796106
* test: Ensure gst_video_info_set_format() calls succeedZeeshan Ali2018-08-291-20/+31
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=796106
* video: Add gst_video_info_set_interlaced_format()Zeeshan Ali2018-08-293-15/+64
| | | | | | | | Add a helper to set the interlacing mode while creating the GstVideoInfo in addition to format and resolution. Using this helper will ensure that size is correctly calculated for split-field interlacing mode. https://bugzilla.gnome.org/show_bug.cgi?id=796106
* video: Add GST_VIDEO_INTERLACE_MODE_ALTERNATEZeeshan Ali2018-08-293-3/+90
| | | | | | | | | | | | | | | Add a new interlace mode enum to represent buffers containing a single field of an interlaced video in a buffer. The name is based on the equivalent video format in the V4L2 API, V4L2_FIELD_ALTERNATE: https://01.org/linuxgraphics/gfx-docs/drm/media/uapi/v4l/field-order.html Since caps fields are optional, we also introduce a new caps feature, "format:Interlaced" that always goes with "alternate" interlace mode to ensure that caps for this incompatible format are incompatible with other interlaced and progressive video caps. https://bugzilla.gnome.org/show_bug.cgi?id=796106
* video: Add format for single fields of interlaced video in a bufferZeeshan Ali2018-08-291-8/+29
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=796106
* doc: glbasefilter: Add missing Since for gst_gl_base_filter_find_gl_context()Nicolas Dufresne2018-08-291-0/+2
|
* vorbisdec: Always handle in-band header packets once the first non-header ↵Sebastian Dröge2018-08-281-13/+18
| | | | | | | | | | | | | | | | packet arrives And clean up any old pending headers if we receive a new identification header, or if we receive a new set of headers via caps. Otherwise it might happen that we receive one or more header but not all, and then afterwards all headers again, and libvorbis does not like getting headers passed multiple times and would error out. It only makes sense to pass the very latest headers to the decoder at the time we can actually make use of them. https://bugzilla.gnome.org/show_bug.cgi?id=796980
* meson: Always define gstgl_dep to a valid dependency objectNirbheek Chauhan2018-08-281-0/+2
| | | | | | | Fixes configure error when gl support was auto-detected as not being available: ext/gl/meson.build:50:20: ERROR: Unknown variable "gstgl_dep".