summaryrefslogtreecommitdiff
path: root/gst-libs
Commit message (Collapse)AuthorAgeFilesLines
* libs: fix build errorHEADmasterVíctor Manuel Jáquez Leal2016-02-151-8/+5
| | | | | | | | | | | | gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class} functions are used only when libva's API version is greater than 0.36.0 This patch guards those functions completely rather than just their content. The patch is a continuation of commit 38f8fea4 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com> https://bugzilla.gnome.org/show_bug.cgi?id=762055
* libs: fix compiler warningsVíctor Manuel Jáquez Leal2016-02-033-2/+5
| | | | | | | | | | After setting the release flags, the compiler warns about a couple initialized variables. Also marked a couple of set variables as unused, because they are only used for assertion. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* libs: humongous code style fixVíctor Manuel Jáquez Leal2016-02-0313-8898/+8733
| | | | | | | | | | | | | As part of the upstreaming process of gstreamer-vaapi into the GStreamer umbrella, we need to comply with the project's code style. This meant to change a lot of code. It was decided to use a single massive patch to update the code style. I would like to apologize with the original developers of this code because of the history breakage. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* libs: small refactors to enhance the code styleVíctor Manuel Jáquez Leal2016-02-035-16/+17
| | | | | | | | | As gst-indent generated ugly code in these cases, this patch changes the used idiomatic into other one. No functional changes were introduced. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* libs: small code style fixesVíctor Manuel Jáquez Leal2016-02-0322-107/+120
| | | | | | This a set of small code style fixes detected as-is by gst-indent. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* libs: trivial comment style fixesVíctor Manuel Jáquez Leal2016-02-039-15/+15
| | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* libs: avoid gst-indent mess upVíctor Manuel Jáquez Leal2016-02-032-25/+25
| | | | | | Guard pieces of code to avoid gst-ident to mess up the following code. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Fix some more compiler warningTim-Philipp Müller2016-02-022-2/+2
| | | | | | | | Two (false) compiler warnings about variables potentially being used uninitialized, and one about a variable being set but not used. https://bugzilla.gnome.org/show_bug.cgi?id=759192
* vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warningsTim-Philipp Müller2016-02-024-16/+28
| | | | | | | Declare variables at the beginning of a code block, which is how it's done in GStreamer. https://bugzilla.gnome.org/show_bug.cgi?id=759192
* decoder: vp9: Fix crop rectangle settingSreerenj Balachandran2016-02-021-4/+7
| | | | | | Align with software vp9dec behaviour: Add crop rectangle only if display_width/display_height is less than the frame_hdr->width/frame_hdr->height
* decoder: update a deprecated functionVíctor Manuel Jáquez Leal2016-02-021-2/+1
| | | | | | | | | Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got deprecated since GStreamer 1.0. This patch replace it with gst_adapter_prev_pts() Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* build: fix when HEVC decoder is disabledVíctor Manuel Jáquez Leal2016-02-011-6/+5
| | | | | | | | | | | | | This a very pathological situation: when we have a HEVC encoder but not a HEVC decoder. The encoder needs functions that are only available when the decoder is enabled. This patch moves the utils functions into the generic sources, such as the rest of the utils. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Remove old gst version guardsVíctor Manuel Jáquez Leal2016-01-255-21/+0
| | | | | | | As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes all the old GStreamer version guards. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* libs: remove versioningVíctor Manuel Jáquez Leal2016-01-201-30/+30
| | | | | | | Since we don't install libraries anymore, it makes no sense to keep versioning them according to the gstreamer's version. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* libs: make libraries no installablesVíctor Manuel Jáquez Leal2016-01-191-28/+6
| | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Do not install libgstvaapi headersVíctor Manuel Jáquez Leal2016-01-191-39/+0
| | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Remove codecparsers submoduleVíctor Manuel Jáquez Leal2016-01-193-98/+2
| | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Remove libvpx submoduleSreerenj Balachandran2016-01-192-125/+2
| | | | | We will be using upstream codecparsers always. No more internal libvpx !
* wayland: free the frame in frame_release_callback()Michael Olbrich2016-01-191-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland: decouple wl_buffer from frame). Otherwise the frame may be overwritten while it is still used by the compositer: The frame done callback (frame_done_callback()) is called, when the compositor is done processing the frame and hands it to the hardware. The buffer release callback (frame_release_callback()) is called when the buffer memory is no longer used. This can be quite some time later: E.g. if weston (with the DRM backend) puts the buffer on a hardware plane, then then buffer release callback is called when the kernel is done with the buffer. This is usually when the next frame is shown, so most likely after the frame done callback for the next frame! Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when destroy()" the mentioned possible leak should no longer be a problem, so reverting this change should cause no leaking buffers. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=758848 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Add 10 HEVC 10 bit decoding supportSreerenj Balachandran2015-12-084-7/+12
| | | | | | | | | | | | | | Only supporting vaapidecode ! vaapisink combination for now. Missing dependencies: 1: No support for P010 video format in GStreamer 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping through GstVideoMeta. Right now we only set chroma format (YUV420 with more than 8 bits per channel) for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format of the surfaces is implementation (driver) defined, which is P010.
* gstvaapisurfacepool: Add new API to create surface pool based on chroma typeSreerenj Balachandran2015-12-082-0/+40
| | | | | | | This new API gst_vaapi_surface_pool_new_with_chroma_type() is for creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified chroam type and dimensions. The underlying format of the surfaces is implementation (driver) defined.
* Add definitions for YUV420 with more than 8 bits per channelSreerenj Balachandran2015-12-072-1/+11
|
* gstvaapiporfile: Fix string representation of HEVCMain10 profileSreerenj Balachandran2015-12-071-1/+1
|
* texture: detect GL version and use the proper APIVíctor Manuel Jáquez Leal2015-11-301-5/+30
| | | | | | | | | | | | | When receiving the texture from the application or the video sink, we must know it size and border. To query the texture the API has changed according to the OpenGL version used in the GL context of the application/vsink. This patch checks the current context API type and queries the texture according to this detected API. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=753099
* texture: check for expected target and formatVíctor Manuel Jáquez Leal2015-11-301-2/+2
| | | | | | | | | | | gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and formats GL_RGBA or GL_BGRA. This patch adds a debugging verification of those values. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=753099
* libs: add gl3_bind_texture_2d()Víctor Manuel Jáquez Leal2015-11-302-17/+68
| | | | | | | | | | | | | | | | Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not needed. In particular, the Intel's Mesa implementation complains if it is called. This patch add a new binding function for 2D textures, without enabling gl3_bind_texture_2d()[2]. 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=753099
* libs: add gl_get_current_api()Víctor Manuel Jáquez Leal2015-11-302-0/+103
| | | | | | | | | | | | | In order to know which OpenGL API use, we must detect the API type of current context. This patch adds the function gl_get_current_api() which returns the OpenGL API type. This function is an adaptation of gst_gl_context_get_current_gl_api() from GstGL. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=753099
* build: Add gmodule dependency for libgstvaapi_eglSreerenj Balachandran2015-11-301-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=756259
* decoder: vp9: Fix last/golden/altref frame index settingSreerenj Balachandran2015-11-171-11/+8
| | | | | Always fill VADecPictureParameterBufferVP9 last/golden/altref indices based on what ever reference frame indices encoded in frame header.
* decoder: vp9: Fix PTS calculation of cloned framesSreerenj Balachandran2015-11-161-0/+3
|
* decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture ↵Sreerenj Balachandran2015-11-161-3/+2
| | | | | | | | | output We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the gstvaapidecoder base calss is reponsible for handling those frames later on. No need for explicit verification of frame header's show_frame in order to do picture outputing.
* decoder: vp9: Fix ref picture update while doing repeat frameSreerenj Balachandran2015-11-161-1/+10
| | | | | | Don't try to do frame decoding and reference picture update while receiving a vp9 frame having show_existing_frame flag set as TRUE.
* decoder: vp9: Add repeat-frame display handlingSreerenj Balachandran2015-11-161-8/+30
| | | | | | If vp9 frame header come up with show_existing_frame flag set, we should duplicate the existing decoded frame as current frame to be displayed.
* decoder: vp9: Add crop rectangle support.Sreerenj Balachandran2015-11-131-0/+19
| | | | | | | Set crop rectange if: There is display_width and display_height which is different from actual width/height or The changed resolution is less than the actual configured dimension of surfaces
* decoder: vp9: Fix the context and surface pool reset for multi resolution videoSreerenj Balachandran2015-11-131-2/+16
| | | | | | | | | | Unlike other decoders, vp9 decoder doesn't need to reset the whole context and surfaces for each resolution change. Context reset only needed if resolution of any frame is greater than what actullay configured. There are streams where a bigger resolution set in ivf header or webm header but actual resolution of all frames are less. Also it is possible to have inter-prediction between these multi resolution frames.
* decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from ↵Sreerenj Balachandran2015-11-131-2/+2
| | | | | | | frame header Always fill width/height of VADecPictureParameterBufferVP9 from frame header. Preliminary fix for supproting multi resolution video decode.
* decoder: vp9: Set lossless flag from frame headerSreerenj Balachandran2015-11-131-1/+1
|
* libs: vp9: remove unused symbolsVíctor Manuel Jáquez Leal2015-11-111-4/+0
| | | | | | | | | clang complains about a couple variables and one label which were not used. This patch removes them. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=757958
* libs: remove unneeded headersVíctor Manuel Jáquez Leal2015-11-092-4/+0
| | | | | | | | | | | | | | Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not required to include them in the header. It is not also required to include them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and exposes their structures (e.g. GLXPixmap). Nonetheless, glext.h neither glxext.h are required to include, they are already included conditionally by gl.h and glx.h, respectively. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=757577
* VP9: libgstvaapi: Add VP9 decoderSreerenj Balachandran2015-11-063-0/+725
|
* VP9: gstvaapiprofile: Add profile definitionsSreerenj Balachandran2015-11-062-0/+11
|
* VP9: Allow building vp9 codecparser internallySreerenj Balachandran2015-11-061-0/+5
|
* decoder: h264: initialize PPS's slice_group_idVíctor Manuel Jáquez Leal2015-09-151-0/+1
| | | | | | | | | | | | | | | | When the GstVaapiParserInfoH264 is allocated, the memory is not initialized, so it contains random data. When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id pointer uninitialized, leading to a segmentation fault when the memory is freed. This patch prevents this by initializing the slice_group_id before the PPS parsing. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=754845
* decoder: hevc: Don't flush dpb for EOS/EOB nalSreerenj Balachandran2015-09-041-1/+0
| | | | | | | | Explicit flushing of dpb for EOS and EOB nal decoding is wrong, the dpb_add() itself will handle the flusing(if needed) of dpb for end of sequence and end of bitstream. https://bugzilla.gnome.org/show_bug.cgi?id=754010
* decoder: hevc: Fix the dpb_add() based on C.5.2.3Sreerenj Balachandran2015-09-041-7/+7
| | | | | | | Follow the spec as it is in C.5.2.3, add the decoded frame to dpb just after the PicLatencyCnt setting of existing dpb frames. https://bugzilla.gnome.org/show_bug.cgi?id=754010
* decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)Sreerenj Balachandran2015-09-041-6/+8
| | | | | | | | | | This fix is based on the V3 vesion of spec which was missing in older versions. When the current picture has PicOutputFlag equal to 1, for each picture in the DPB that is marked as "needed for output" and follows the current picture in output order, the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3). https://bugzilla.gnome.org/show_bug.cgi?id=754010
* decoder: h265: Fix indentationSreerenj Balachandran2015-09-041-4/+4
|
* multiview: initial attempt at stereo/multiview supportJan Schmidt2015-08-314-2/+78
| | | | | | | Add support for marking caps and buffers for multiview or stereoscopic output. https://bugzilla.gnome.org/show_bug.cgi?id=750835
* decoder: hevc: remove unused functionsVíctor Manuel Jáquez Leal2015-08-311-18/+7
| | | | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=754250
* decoder: hevc: Fix the scaling list scan orderSreerenj Balachandran2015-08-261-4/+4
| | | | | | | | The default scan order of scaling lists are up-right-diagonal as per hevc specification. Use the newly implemented uprightdiagonal_to_raster conversion codecparser APIs to get the the scaling_list values in raster order, which is what the VA intel driver requires.