summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Do not install libgstvaapi headersVíctor Manuel Jáquez Leal2016-01-192-40/+0
| | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Remove videoparser patchesSreerenj Balachandran2016-01-1912-403/+1
|
* Remove pkg-config filesVíctor Manuel Jáquez Leal2016-01-199-105/+1
| | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Remove codecparsers submoduleVíctor Manuel Jáquez Leal2016-01-199-299/+21
| | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* Remove libvpx submoduleSreerenj Balachandran2016-01-1913-1227/+2
| | | | | We will be using upstream codecparsers always. No more internal libvpx !
* build: fix check for GstJpegParserVíctor Manuel Jáquez Leal2016-01-191-1/+1
| | | | | | | | | | Right now the local JPEG parser is always compiled because the check for the upstreamed version is broken: it looks for an non existent symbol: GstJpegImage. This patch changes that check for< GstJpegFrameHdr. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
* 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>
* vaapipostproc: check ANY caps at transform_caps()Víctor Manuel Jáquez Leal2016-01-141-1/+1
| | | | | | | | | When transforming downstream caps we should check for ANY caps from peer pad, otherwise we get a segmentation fault. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=759893
* vaapisink: ignore frame if its upload failedVíctor Manuel Jáquez Leal2016-01-141-1/+3
| | | | | | | | | | | | | | | When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was ignored by the vaapisink, leading to a segmentation fault. This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the segmentation fault, but doing and effort to continue rendering. This is the same behavior of ximagesink. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=759332
* build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yetJoel Holdsworth2015-12-091-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=759184
* 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
|
* Bump version for developmentSreerenj Balachandran2015-12-071-2/+2
|
* 0.7.00.7.0Sreerenj Balachandran2015-12-071-3/+3
|
* NEWS: UpdatesSreerenj Balachandran2015-12-071-2/+41
|
* AUTHORS: UpdateSreerenj Balachandran2015-12-071-1/+11
|
* README: UpdateSreerenj Balachandran2015-12-071-5/+5
|
* 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-302-0/+10
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=756259
* patches/videoparsers: h264: Disable passthorugh mode enablingSreerenj Balachandran2015-11-274-2/+46
| | | | | | | | | | This is a quick fix for regression introduced by the upstream commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser. The patch is disabling the passthrough mode, otherwise it will break multi-layer mvc stream parsing. https://bugzilla.gnome.org/show_bug.cgi?id=758656
* build: add gsth265parse patches conditionallyVíctor Manuel Jáquez Leal2015-11-253-3/+14
| | | | | | | | | | As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support GStreamer 1.2, the patching of gsth265parse must be conditional to the target GStreamer version. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=755525
* build: declare correctly parse lib built filesVíctor Manuel Jáquez Leal2015-11-251-14/+8
| | | | | | | | | | | This is a continuation of commit fc8a0d12 When declaring BUILT_SOURCES, those files should not be distributed. This patch avoids the distribution of the generated source code. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=755525
* build: libvpx: Add missing source fileSreerenj Balachandran2015-11-241-0/+1
|
* vaapipostproc: Correctly detect the caps changeSreerenj Balachandran2015-11-231-9/+1
| | | | | | | | | | This is a quick fix for regression introuduced by the commit 757833230bc73b8e3b4e31649e4618ba802bea51 With out this, the gst_vaapipostproc_create() will never get invoked. https://bugzilla.gnome.org/show_bug.cgi?id=758543
* build: libvpx: update the sources listsVíctor Manuel Jáquez Leal2015-11-192-53/+504
| | | | | | | | | | | | `make dist` broke since commit f06798 (libvpx: Update the submodule to libvpx-1.4.0) because the sources.frag does not contain all the module sources. This patch updates thoroughly the sources. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=755525
* vaapipostproc: don't set caps change at first setVíctor Manuel Jáquez Leal2015-11-191-10/+29
| | | | | | | | | | | | | | | | | When the source caps change, the filter is destroyed and recreated. Nonetheless, this happens every time the vaapipostproc starts, since the caps change detection algorithm does not take in consideration when the caps are set by first time. This patch intents to be an optimization, to avoid a useless filter destroy-creation cycle when the sources caps are set for first time. The new helper function video_info_update() is a refactorization to avoid duplicated code. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=758007
* vaapipostproc: params video_info_changed() callersVíctor Manuel Jáquez Leal2015-11-191-3/+3
| | | | | | | | | | | | The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers swapped the the order. This didn't raise problems since the comparison of both structures were not affected by its semantics. But still it would be better to fix this to keep the coherence of the code. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=758007
* build: declare real built filesVíctor Manuel Jáquez Leal2015-11-181-12/+15
| | | | | | | | | | | | | | When runnig the `make dist` target from a clean tree, it fails because if could not find the copied files from codecparsers submodule. They weren't copied because they weren't declared as built sources. This patch removes the stamp mechanism and use the actual file list to copy as the built sources. Also it fixes the duplication of the parser files. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=755525
* 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.
* debian: remove custom parallel compilationVíctor Manuel Jáquez Leal2015-11-161-9/+0
| | | | | | | | | | | | | | | | | | | | In order to build a debian package with upstream source, the user should do ./autogen.sh cp -a debian.upstream debian debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical way to make a parallel build (-j8 in this case). This commit removes the script in debian/rules that detects the number of cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not official in debian. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=754087
* 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.
* vaapidecodebin: add me as element co-authorVíctor Manuel Jáquez Leal2015-11-161-1/+3
| | | | | | Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=757957
* vaapidecodebin: try to get display from decoderVíctor Manuel Jáquez Leal2015-11-161-2/+9
| | | | | | | | | | | | | Rather than create a dummy display, if none has propagated as a context, we should try to get the one from vaapidecode. As the bin is already in READY state, the vaapidecode should be also in that state. That means that the contexts have been negotiated, and it should have already a display. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=757957
* vaapidecodebin: add postprocessor dynamicallyVíctor Manuel Jáquez Leal2015-11-162-43/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The former approach to left the bin unfinished has some problems: the context cannot be shared because the vaapidecode is unlinked in many cases, leading to creating a VADisplay twice. Initially the bin is fully functional, constructed as (-----------------------------------) | vaapidecodebin | | (-------------) (-------) | |<--| vaapidecode |--->| queue |--->| | (-------------) (-------) | (-----------------------------------) When the context is shared and the VADisplay has VPP capabilities, before changing to READY state, the bin is reconfigured dynamically, adding the vaapipostproc element afeter the queue: (--------------------------------------------------------) | vaapidecodebin | | (-------------) (-------) (---------------) | |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->| | (-------------) (-------) (---------------) | (--------------------------------------------------------) Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=757957
* vaapidecodebin: delay the bin configurationVíctor Manuel Jáquez Leal2015-11-161-5/+9
| | | | | | | | | | | Delay the bin configuration until changing to READY state. This is because we should add the vaapipostproc element until the vaapidecode has emitted the HAVE_CONTEXT message, so de gst_bin_add() could set the context set to vaapipostproc. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=757957
* 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.
* vaapidecode: Add comments for corner case fixes and fix couple of indentations.Sreerenj Balachandran2015-11-131-5/+9
|
* decoder: vp9: Set lossless flag from frame headerSreerenj Balachandran2015-11-131-1/+1
|
* codecparsers: Update to gst-vaapi-branch d9f25Sreerenj Balachandran2015-11-131-0/+0
| | | | d9f2527: codecparsers: vp9: Set lossless flag in frame header
* 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