summaryrefslogtreecommitdiff
path: root/gst-libs/gst
Commit message (Collapse)AuthorAgeFilesLines
* gl: add .def file for msvc buildsMatthew Waters2016-02-054-7/+8
| | | | Also internalize some API from being exported.
* adaptivedemux: handle snap seeksThiago Santos2016-02-042-9/+64
| | | | | | | | | | | | | | | | | | | | | Adaptive demuxers need to start downloading from specific positions (fragments) for every stream, this means that all streams can snap-seek to a different position when requested. Snap seeking in this case will be done in 2 steps: 1) do the snap seeking on the pad that received the seek event and get the final position 2) use this position to do a regular seek on the other streams to make sure they all start from the same position More arguments were added to the stream_seek function, allowing better control of how seeking is done. Knowing the flags and the playback direction allows subclasses to handle snap-seeking. And also adds a new return parameter to inform of the final selected seeking position that is used to align the other streams. https://bugzilla.gnome.org/show_bug.cgi?id=759158
* adaptivedemux: add utility function to get stream from padThiago Santos2016-02-042-17/+31
| | | | | Simplifies the code a bit and avoid repeating this common operation
* glquery: remove unnecessary pointer checkLuis de Bethencourt2016-02-041-2/+1
| | | | | | All uses of query->context in gstglquery.c assume it exists. We can assume this as well before unrefing it. Furthermore, gst_object_unref() will just silently return if it ever were to not exist.
* glbasefilter: enable qos by defaultMatthew Waters2016-02-041-0/+2
| | | | | | | | | Improves the responsiveness of the pipeline when resources are close/above the limitations of the hardware. Any subclass that wishes not to enable qos can do so themselves. https://bugzilla.gnome.org/show_bug.cgi?id=761519
* docs: remove some leftover 'Since 0.10.x' markersTim-Philipp Müller2016-02-032-6/+0
|
* libs: player: use configured GST_PKG_CONFIG_PATH when invoking the ↵David Waring2016-02-021-4/+6
| | | | | | introspection scanner https://bugzilla.gnome.org/show_bug.cgi?id=761460
* Revert "gl/eagl: try getting a gles3 context"Matthew Waters2016-02-021-17/+5
| | | | | | | | This reverts commit 96b9666d596be115fd4b446ef846508b7fd05c24. This reverts commit d11385d167d8843604ea23a05e2dea40b8bbac35. This breaks the texture sharing with the applemedia elements as CVOpenGLESTextureCache seems to have an arbitrary restriction on GLES2 only.
* glcolorconvert: don't skip subset structuresMatthew Waters2016-02-021-5/+0
| | | | | | | | We may need them to transform into a different set of formats. Fixes YUV->YUV with two glcolorconverts, e.g: format=I420 ! glcolorconvert ! glcolorconvert ! format=NV12
* glbasefilter: always call gl_start when not called alreadyMatthew Waters2016-02-021-1/+1
| | | | | Fixes elements transitioning out of passthrough mode using GL resources that hadn'e been allocated yet.
* glcolorconvert: fix RGB,rectangle->planar YUV conversionMatthew Waters2016-02-021-5/+8
| | | | | Converting to GRAY is no fun. Another case of normalized vs unnormalized texture coordinates.
* glcolorconvert: fix YUY2/UYVY,rectangle->RGB conversionMatthew Waters2016-02-021-5/+19
| | | | | | | 1.0 / width does not offset by one pixel in rectangular textures (which use unnormalized coordinates). Provide the actual pixel offset as a uniform to the shader.
* glcolorconvert: perform better negotiationMatthew Waters2016-02-021-64/+305
| | | | | | 1. Correctly describe what we can caps we can transform to/from. i.e. no YUV->YUV or GRAY->YUV or YUV->GRAY (except for passthrough). 2. Prefer similar formats and ignore incompatible formats on fixation.
* gstglwindow: initialize navigation_loop to NULLJulien Isorce2016-02-011-4/+7
| | | | | | Useful when gst_gl_window.c::gst_gl_window_new is not used. This is the case when using a custom GstGLWindow. (ex: GstGLWindowGPUProcess from Chromium)
* gl: eagl: fix buildTim-Philipp Müller2016-02-011-1/+2
| | | | | gstglcontext_eagl.m:238:45: error: too few arguments to function call, expected at least 4, have 3
* gl/eagl: try getting a gles3 contextMatthew Waters2016-02-011-5/+16
| | | | Fallback to a gles2 context if that fails
* glprototypes: fix parameter type of glGenBuffersWang Xin-yu (王昕宇)2016-01-291-1/+1
| | | | | | The number of buffers should be GLsizei instead of GLuint. https://bugzilla.gnome.org/show_bug.cgi?id=761272
* glcontext: back out unintended lost_context changesMatthew Waters2016-01-292-13/+1
|
* egl: implement selecting opengl3 contextsMatthew Waters2016-01-294-53/+212
|
* gl/egl: pass the error value to get_error_string()Matthew Waters2016-01-293-16/+16
|
* videoaggregator: don't do caps processing that is not overridableMatthew Waters2016-01-272-178/+146
| | | | | | | | | | | | | | | Allows the subclass to completely override the chosen src caps. This is needed as videoaggregator generally has no idea exactly what operation is being performed. - Adds a fixate_caps vfunc for fixation - Merges gst_video_aggregator_update_converters() into gst_videoaggregator_update_src_caps() as we need some of its info for proper caps handling. - Pass the downstream caps to the update_caps vfunc https://bugzilla.gnome.org/show_bug.cgi?id=756207
* gl: move control binding proxy implementation from glvideomixerMatthew Waters2016-01-274-0/+216
| | | | Other elements may need to use it's functionality
* adaptivedemux: fix leak of stream->internal_padAlex Ashley2016-01-221-0/+5
| | | | | | | | | | | | | The function gst_adaptive_demux_stream_update_source() function creates a new GstPad called internal_pad. This pad is not freed when releasing the stream. The solution is to set GST_PAD_FLAG_NEED_PARENT so that the chain functions do not get called when the pad has no parent and then remove the parent in the gst_adaptive_demux_stream_free() function. This causes the refcount of the pad to be set to zero. https://bugzilla.gnome.org/show_bug.cgi?id=760982
* base/audio/video: Install headers and pkg-config filesSebastian Dröge2016-01-223-4/+6
| | | | | | | They are still considered unstable API but it would be good to give them some wider testing already to make sure the API is useful. https://bugzilla.gnome.org/show_bug.cgi?id=760733
* audio: Move audioaggregator base class to a librarySebastian Dröge2016-01-224-3/+1592
| | | | | | | It's useful enough already to be used in other elements for audio aggregation, let's give people the opportunity to use it and give it some API testing. https://bugzilla.gnome.org/show_bug.cgi?id=760733
* glwindow: Fix android buildHolger Kaelberer2016-01-221-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=760972
* libs: g-i: fix init section to avoid compiler warningsTim-Philipp Müller2016-01-194-4/+4
| | | | | | | ..GstPlayer-1.0.c: In function ‘main’: ..GstPlayer-1.0.c:587:3: warning: implicit declaration of function ‘gst_init’ https://bugzilla.gnome.org/show_bug.cgi?id=760090
* glfilter: First make caps writable in fixate_caps(), then truncate themSebastian Dröge2016-01-161-1/+1
| | | | Truncating requires writable caps.
* glcolorconvert: Caps passed to fixate_caps() are not owned by us and ↵Sebastian Dröge2016-01-161-3/+0
| | | | | | | | | guaranteed to be fixed So don't try to fixate them, which takes ownership and steals them from basetransform. https://bugzilla.gnome.org/show_bug.cgi?id=760696
* Revert "glpool: fix caps refcount issue"Sebastian Dröge2016-01-161-1/+1
| | | | | | | | This reverts commit 3bdcdedfa00b87f1db505218789178318a16c743. gst_caps_replace() takes a new reference already, if there is a problem then it is elsewhere. And there are a few problems, see https://bugzilla.gnome.org/show_bug.cgi?id=760696
* adaptivedemux: replace ghostpad with a standard padThiago Santos2016-01-152-54/+39
| | | | | | | | | | | | Handling the ghostpad and its internal pad was causing more issues than helping because of their coupled activation/deactivation actions. As we have to install custom chain,event and query functions it is better to use a floating sink pad internally in the demuxer and just use those pad functions to push through a standard pad in the demuxer https://bugzilla.gnome.org/show_bug.cgi?id=757951
* adaptivedemux: do not flush the input padFlorin Apostol2016-01-151-15/+2
| | | | | | | gst_adaptive_demux_stream_clear_eos_and_flush_state() function will do all the necessary cleaning. https://bugzilla.gnome.org/show_bug.cgi?id=757951
* glquery: provide compat definition for GL_QUERY_RESULTMatthew Waters2016-01-151-1/+5
| | | | | | | e.g. android doesn't have it While we're here move a state specific assertion after the supported check. Removes an assertion on GLES
* gl: add compatibility definition of GLint64Matthew Waters2016-01-151-0/+3
| | | | e.g. anrdoid doesn't have it
* glpool: fix caps refcount issueMatthew Waters2016-01-151-1/+1
| | | | | The caps are from an allocation query which are transfer none but were being treated as transfer full.
* glmemory: log the time for glTexSubImage/glReadPixelsMatthew Waters2016-01-153-4/+26
|
* gl: add a gstglquery object for arbitrary GL queriesMatthew Waters2016-01-158-1/+476
| | | | Currently only GL_TIME_ELAPSED and GL_TIMESTAMP are supported
* gldebug: implement a delayed debug systemMatthew Waters2016-01-152-3/+307
| | | | | | | | The messages are stored by gst_gl_async_debug_store_log_msg() and output later by a corresponding store(), output() or an unset()/free(). Some wrapper macros are provided to avoid callers explicitly using __FILE__, GST_FUNCTION and __LINE__
* gldebug: use gst_info_vasprintf in insert_debug_marker()Matthew Waters2016-01-151-1/+7
| | | | Allows expansion of GST_PTR_FORMAT and GST_SEGMENT_FORMAT arguments.
* glfilter: recreate the fbo on caps changesMatthew Waters2016-01-151-35/+50
| | | | The width/height may change which requires recreating the depth buffer.
* glbasefilter: add a class function on set_caps (from GL)Matthew Waters2016-01-152-2/+49
| | | | | This is simply a convenience to avoid duplicating the thread marshalling on set_caps.
* gl/x11/navigation: add button press to the selected event maskMatthew Waters2016-01-141-1/+2
| | | | Otherwise we won't get the button press events and GstNavigation fails.
* glcolorconvert: try harder to passthroughAlessandro Decina2016-01-141-14/+28
| | | | | | | | | | | | | | | This makes a pipeline like: ... ! video/x-raw(memory:GLMemory),format=UYVY ! glcolorconvert ! video/x-raw(memory:GLMemory),format={UYVY, NV12} ! ... passthrough instead of converting UYVY => NV12. The conversion would happen before this change since the element (and basetransform) transform the src caps to format={NV12, UYVY} (since NV12 comes first in the glcolorconvert:src template) and then the default caps fixate func would fixate to NV12. Blah. Also there's no need to intersect against the template caps in ::transform_caps since basetransform does that right after calling the vfunc.
* gldebug: add a specific category for the debug spam from the driverMatthew Waters2016-01-131-0/+3
|
* glbasememory: Free the actual memory object when requestedMatthew Waters2016-01-112-8/+3
| | | | | | Otherwise we are leaking ~400B on each GstMemory allocation. Freeing in the base class matches the GObject semantics.
* glmemorypbo: don't double read pixelsMatthew Waters2016-01-111-0/+1
| | | | | | The optimistic download_transfer was not setting the required flag to not perform glReadPixels on subsequent map (READ). resulting in glReadPixels happening twice.
* glmemory: expose gst_gl_memory_texsubimageMatthew Waters2016-01-113-33/+10
| | | | Removes extremely similar code from glmemorypbo.
* glfeature add a specific debug categoryMatthew Waters2016-01-111-0/+17
| | | | | Saves having to trawl through the 'default' category when function retrieval goes wrong.
* adaptivedemux: fix seeking that just updates stop positionThiago Santos2016-01-071-9/+57
| | | | | | | | | | | | Fixed adaptivedemux seeking without flushing that just wants to update stop position. This required protecting the segment variables with a new mutex so that the seeking thread and the download threads could safely manipulate the segment and events related to it. This contention is only locked/unlocked when starting a new download, when the first fragment of a segment is received and when seeking so, hopefully, it won't damage performance.
* adaptivedemux: fix segment update on seeksThiago Santos2016-01-071-3/+3
| | | | | Fixes typo on reverse rate check and also only update the position when the start/stop was actually changed.