summaryrefslogtreecommitdiff
path: root/gst-libs
Commit message (Collapse)AuthorAgeFilesLines
* gst-gl: Remove duplicate declarationsMaciej Wolny2019-05-013-6/+3
| | | | This causes 'redefinition of typedef ...' errors on GCC 4.5.3
* video: fix pipeline leak in gst_video_convert_sample_async()Tim-Philipp Müller2019-05-011-0/+1
|
* video: convertframe: Shut down pipeline asynchronously via the thread poolSebastian Dröge2019-05-011-10/+9
| | | | | | | If we use the main loop it might happen that the caller (e.g. our unit test) already shut down the loop once the result was received and in that case the pipeline would never ever be shut down (and our unit test would hang).
* convertframe: Error out directly in the sync variant if the state change to ↵Sebastian Dröge2019-05-011-1/+4
| | | | PAUSED failed
* convertframe: Only go to PAUSED state for the async variantSebastian Dröge2019-05-011-2/+1
| | | | We only care for the pre-roll sample.
* convertframe: Error out directly if changing the pipeline state to PLAYING ↵Sebastian Dröge2019-05-011-1/+17
| | | | failed
* convertframe: Use refcounting for the contextSebastian Dröge2019-05-011-79/+103
| | | | | | | | | | | | | | While this creates a circular reference between the pipeline and the context, this ensures that the context stays alive for as long as any callbacks could be called on it. The circular reference is broken once the conversion is finished (or error, or timeout), which will then cause everything to be freed. Previously it was possible that a callback could be called on the context right after it was freed already. Also use only a single context structure, the second structure does not simplify anything and duplicates storage.
* gl: Fix subclassing of GstGLContextEGLXavier Claessens2019-05-011-1/+6
|
* rtpbasepayload: Update current seqnum for buffer listsLinus Svensson2019-05-011-0/+2
| | | | | | | The current sequence number will be the one from the first RTP buffer when a buffer list is pushed, but should be the last one. Fixes #495
* meson: opengl: fix enabled_gl_apis in pkg-config fileTim-Philipp Müller2019-01-221-1/+1
| | | | | | | | | | Make consistent with what autotools puts into enabled_gl_apis variable. Autotools puts 'gl' in there instead of 'opengl'. This would cause problems when building -bad glmixers plugin in meson against a -base that was built with autotools. See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/871
* video-converter: fix number of allocated linesWim Taymans2019-01-111-7/+16
| | | | | | | | | | | | | We make an allocator for temporary lines and then use this for all the steps in the conversion that can do in-place processing. Keep track of the number of lines each step needs and use this to allocate the right number of lines. Previously we would not always allocate enough lines and we would end up with conversion errors as lines would be reused prematurely. Fixes #350
* glupload: dmabuf: be explicit about gl formats usedSjoerd Simons2018-11-111-2/+5
| | | | | | | | | | | | | Rather then letting gst_gl_memory_setup_buffer guess the GL format used for an eglimage after importing a dmabuf be explicit about it. This fixes issues where dmabuf import may have used another format then gst_gl_format_from_video_info would guess on the basis of the available GL extensions. In particular on etnaviv the gst_gl_format_from_video_info would assuming a luminance + alpha GL format is used for YUY2, but the dmabuf import will always use RG88. Which causes images to end up somewhat pink when displayed on the screen.
* gl/egl: Determine correct format on dmabuf importSjoerd Simons2018-11-111-4/+9
| | | | | | | | | | | | | | | When importing an egl image from dmabuf gst_gl_format_from_video_info was used to work what the result GL format will be. Unfortunately that will only work if the conventional format and the choosen DRM fourcc for the format match up. On etnaviv platforms there is no support for GL_EXT_texture_rg, so the GL format chosen for YUY2 ends up being GST_GL_LUMINANCE_ALPHA. However DRM does not do luminance + alpha as it's a legacy GL thing, so the dmabuf import ends up using DRM_FORMAT_GR88. To fix this, tie the DRM_FORMAT and the GL format together so they always match up.
* meson: fix backported gl patchTim-Philipp Müller2018-11-101-6/+2
| | | | | | compat_includes only exists in master. Fixes #507
* gl/overlaycompositor: handle ANY caps features gracefullyMatthew Waters2018-11-081-2/+3
|
* glfilter: don't complete overwrite caps features from the subclassMatthew Waters2018-11-081-4/+8
| | | | | We can get away with ensuring that the memory:GLMemory caps feature is present in the output caps
* gl/meson: check for EGL headers before allowing use of EGLMatthew Waters2018-11-081-4/+12
| | | | | For distros that provide headers in seperate dev/devel packages this won't build egl support without the necessary EGL headers.
* glviewconvert: fix output when a transformation matrix is usedMatthew Waters2018-11-081-0/+3
| | | | | | | | | | | | If we have a transformation matrix, we have no idea where in the output the video is going to endup. It might also be different and not cover the entire output. We need to clear the output to remove any previous data in the backing texture. Found from https://stackoverflow.com/questions/51707229/python-gstreamer-for-dynamic-control-of-element-properties
* glmemory: Fix n_wrapped_pointers usageNicolas Dufresne2018-11-071-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
* videometa: Log map errors with GST_ERROR, not DEBUGNirbheek Chauhan2018-10-181-2/+2
| | | | Otherwise it's very easy to miss them when gst_video_frame_map() fails
* rtspconnection: do not duplicate authentication headersMathieu Duponchelle2018-10-181-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
* encoding-profile: set_restriction should accept null as validThiago Santos2018-10-181-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.
* video: Fix annotations for gst_buffer_add_video_meta_full()Sebastian Dröge2018-10-181-2/+2
|
* glviewconvert: wait and set the gl sync meta on buffersMatthew Waters2018-09-271-7/+25
| | | | | This may be a cause of out-of-place frames when transforming multiview buffers.
* tagdemux: Use upstream GST_EVENT_STREAM_START if presentEdward Hervey2018-09-271-19/+8
| | | | | | | | | | | If we have an upstream GST_EVENT_STREAM_START, use that one instead of creating a new one which could be completely different from the upstream one and drop information (like the stream flags and stream object). Only create a new event if we don't already have one from upstream https://bugzilla.gnome.org/show_bug.cgi?id=797215
* glcolorconvert: Don't copy overlay composition meta over to NULL outbufsSebastian Dröge2018-09-271-8/+8
|
* glviewconvert: Copy composition meta from the primary buffer to both outputsSebastian Dröge2018-09-271-0/+20
| | | | | Without this, glviewconvert (and thus glimagesink) will drop all overlay composition metas.
* 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.
* gl/dispmanx: fix removing foreign window handleYuji Kuwabara2018-09-081-1/+1
| | | | | | | | | | | | | | gst_gl_window_dispmanx_egl_set_window_handle() removes native window handle (dispmanx element), regardless it was foreign window handle (set via gst_video_overlay_set_window_handle()) or not. This problem prevents glimagesink reusable. (PAUSED -> READY -> PAUSED does not work) This patch corrects it comparing the native window handle with foreign window handle. This behavior is same as gst_gl_window_dispmanx_egl_close(). https://bugzilla.gnome.org/show_bug.cgi?id=785199
* audioaggregator: Also run the audio-specific caps fixation for audio ↵Sebastian Dröge2018-08-171-7/+3
| | | | aggregator subclasses that can't convert
* audioaggregator: Fixate to some meaningful values if no sinkpad is ↵Sebastian Dröge2018-08-171-1/+17
| | | | | | | configured yet The default caps fixation code would select a rate of 1 for example, which is not really ideal.
* tagdemux: Propagate flow returns from gst_type_find_helper_get_range() properlySebastian Dröge2018-08-081-2/+4
| | | | | Instead of considering every failed typefinding as an error, even in case of e.g. GST_FLOW_FLUSHING.
* tagdemux: Properly propagate gst_pad_pull_range() errorsSebastian Dröge2018-08-021-16/+33
| | | | | | And don't consider FLUSHING an actual error, just stop in that case. https://bugzilla.gnome.org/show_bug.cgi?id=796883
* meson: gl: fix backported patchTim-Philipp Müller2018-07-181-1/+1
|
* gl/build: fixed failed compilation due to missing EGLuint64KHR typedefIñigo Huguet2018-07-183-1/+6
| | | | | | [Matthew Waters]: add meson differences https://bugzilla.gnome.org/show_bug.cgi?id=796820
* audiobasesrc: Round down segsize to an integer number of sampleswangzq2018-07-181-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=796704
* libs: g-ir-scanner: do not hardcode libtool pathAntoine Jacoutot2018-07-181-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=726571
* video: fix some GIR array annotationsMark Nauwelaerts2018-05-211-2/+2
|
* audio: fix some GIR array annotationsMark Nauwelaerts2018-05-211-7/+7
|
* meson: gl: remove non-headers from gl_prototype_headersChristoph Reiter2018-05-201-2/+0
| | | | | | | This made the meson build install those files, while they aren't installed with the autotools build. https://bugzilla.gnome.org/show_bug.cgi?id=796274
* meson: Fix detection of glib-mkenums under MSYS2Christoph Reiter2018-05-207-7/+7
| | | | | | | | | Under MSYS2 glib-mkenums is an executable and has a .exe extension and the path does not end with "glib-mkenums". Make the script compare the path without the file extension instead. https://bugzilla.gnome.org/show_bug.cgi?id=796274
* videotimecode: Allow 24000/1001 frame rateGeorg Lippitsch2018-05-141-1/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=796107
* appsink: Handle unlock in drain query handling tooSebastian Dröge2018-05-141-0/+16
| | | | | And also handle flushing, we might otherwise wait here forever when flushing too.
* appsink: Make sure to also handle unlock when waiting for EOS to be handledSebastian Dröge2018-05-141-0/+14
| | | | | | Otherwise shutting down during EOS waiting will cause a deadlock. https://bugzilla.gnome.org/show_bug.cgi?id=795551
* appsrc/sink: Fix optimization for only signalling waiters if someone is ↵Sebastian Dröge2018-05-142-27/+27
| | | | | | | | | | | | | | | | actually waiting It is possible that both application and the stream are waiting currently, if for example the following happens: 1) app is waiting because no buffer in appsink 2) appsink providing a buffer and waking up app 3) appsink getting another buffer and waiting because it's full now 4) app thread getting back control Previously step 4 would overwrite that the appsink is currently waiting, so it would never be signalled again. https://bugzilla.gnome.org/show_bug.cgi?id=795551
* video: Silence "restrict" issues with ORC codeEdward Hervey2018-05-052-8/+17
| | | | | | | | | The problem is that even though the functions we are calling are in-place transformation, orc automatically puts the restrict keyword on all arguments. To silence that warning just create yet-another variable containing the same value. https://bugzilla.gnome.org/show_bug.cgi?id=795765
* pbutils: Avoid assertion describing raw audio caps without formatThibault Saunier2018-05-021-2/+3
| | | | | | We used to get: gst_audio_format_from_string: assertion 'format != NULL' failed
* tagmux: Reset final tags for reusing elementSeungha Yang2018-05-011-0/+4
| | | | | | | If the output tag had been exposed, it never ever updated even if we reset the tagmux using state change. https://bugzilla.gnome.org/show_bug.cgi?id=795691
* videodecoder: keep event orderMatthias Fend2018-05-011-3/+3
| | | | | | | Since events are pushed out in reverse order, newer events need to be added at the front of event lists https://bugzilla.gnome.org/show_bug.cgi?id=794192
* gl/cocoa: Let ARC clean up our dispatch queue if ARC is used, and otherwise ↵Sebastian Dröge2018-04-251-0/+17
| | | | | | | do it manually Also don't use __bridge casts if ARC is not used, as is the case on 32 bit systems.