summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-09-230.6.10.6Víctor Manuel Jáquez Leal1-1/+1
2015-09-23NEWS: updates for 0.6.1Víctor Manuel Jáquez Leal1-1/+13
2015-09-23gstcompat: add gst_buffer_copy_deep() if gst < 1.5Víctor Manuel Jáquez Leal1-0/+23
gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should add an implementation if gstreamer-vaapi is linked to previous versions. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2015-09-23vaapidecode: simplify copy of GstVideoCodecStateVíctor Manuel Jáquez Leal1-17/+2
Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2015-09-22build: link libgstvaapi_parse against codec parserVíctor Manuel Jáquez Leal1-2/+6
GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled when running configure. Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse need it if builtin codec parsers are disabled. This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse compilation. If builtin codec parsers are enable, this variable is null, so it should work using libgstvaapi, as normal. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=754845
2015-09-22build: verify for H264 MVC and H265 SPSVíctor Manuel Jáquez Leal1-2/+9
Currently the H264 and H265 parsers look for MVC and SPS respectively, and the required symbols for those were added in GStreamer 1.5 If we try to compile in GStreamer < 1.4, without enabling the builtin codec parsers, the compilation fails, because the lack of those symbols. This patch verifies if the installed H264 and H265 parsers have those symbols. If they do not, the specific built in codec parsers are enabled and used. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=754845
2015-09-22decoder: h264: initialize PPS's slice_group_idVíctor Manuel Jáquez Leal1-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
2015-09-15vaapidecode: proper numerator and denominator for forced latency framerateMark Nauwelaerts1-2/+2
https://bugzilla.gnome.org/show_bug.cgi?id=755040
2015-09-09vaapidecode: renegotiate if caps are not equalVíctor Manuel Jáquez Leal1-1/+6
The use of gst_caps_is_always_compatible() for this optimization may lead to false positives. It is better to stick to gst_caps_is_strictly_equal() to know if it is required a re-negotiation. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=750835
2015-09-09vaapidecode: Always keep a copy of input codec stateSreerenj Balachandran1-2/+32
Currently we are sharing the input GstVideoCodecState with GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for each caps change. This is troublesome in many cases, for eg: if resoultion changes with in a singe stream. Because, when ever there is a resolution change, GstVideoDecoder will first change the Codec_state->caps fields with new resolution, but since we are using the same codecstate (ref) in gstvaapidecode.c, the caps check for input caps change will always fail. https://bugzilla.gnome.org/show_bug.cgi?id=753914
2015-09-09debian: add yasm as build dependencyVíctor Manuel Jáquez Leal1-1/+2
As the compilation of libvpx (for vp8 parser) is enabled by default, yasm is required by default too. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2015-09-09debian: remove --with-gstreamer-api optionLim Siew Hoon1-5/+1
It is no longer valid in gstreamer-vaapi. Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> [removed unused GST_API_VERSION variable] Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=753618
2015-09-09vaapidecode: don't lost GLTextureUpload on seekVíctor Manuel Jáquez Leal1-2/+0
When seeking, the decoder is reset, but the buffer pool is not re-negotiated, but in reset_full() the code forgets if the negotiated buffer pool has the GLTextureUpload meta. The decoder knows that GLTextureUpload meta was negotiated in decide_allocation(), but this method is not called when seeking. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=752929
2015-09-09plugins: don't use gst_pad_get_allowed_caps()Víctor Manuel Jáquez Leal1-2/+4
gst_pad_get_allowed_caps() query the pad and the peer pad. In the case decoders, that is OK, but in the case of the postproc might lead loops, since the gst_base_transform_query_caps() forwards the query upstream and forth. Instead of gst_pad_get_allowed_caps() we only query the peer with gst_pad_peer_query_caps() using the pad's template as filter. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=752558
2015-07-150.6.00.6.0Sreerenj Balachandran1-4/+8
2015-07-15NEWS: updatesSreerenj Balachandran1-1/+44
2015-07-15vaapidecoder: no wmv profiles gstreamer 1.4/1.2Víctor Manuel Jáquez Leal1-0/+12
This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4 Right now there is not a primary ranked parser for vc1 and the demuxers delivers caps without specifying the profile. This situation is not an issue for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a explicit profile defined in the negotiated caps. Nonetheless, in gstreamer 1.5 it seems not to be a problem since the negotiation admits caps subsets try outs. This patch solves the issue ignoring the profile negotiation in the caps. For gstreamer < 1.5 the profile string is not handled, so the auto-plugging get done without the vc1 parser, such as happens in gstreamer 1.5. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2015-07-07Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.Sreerenj Balachandran1-1/+1
Unfortunately vaapidecodebin element is not seems to be stable enough for autoplugging ahead of vaapidecode. Lowering the rank for now (cosidering the immediate 0.6 release). See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-07-07build: Add missing CFLAGS to Makefile.amSreerenj Balachandran1-0/+1
2015-07-03gstvaapifilter: Only register STE property if it supported by corresponding ↵Sreerenj Balachandran1-0/+2
VA library Fix the regression introduced in commit eb465fb. VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36. Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-07-03vaapipostproc: no format convert on GL tex upload metaVíctor Manuel Jáquez Leal1-1/+7
When GL texture upload meta is negotiated, vaapipostproc shall not modify the color format of the buffer. https://bugzilla.gnome.org/show_bug.cgi?id=748184
2015-07-03gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancementSreerenj Balachandran1-0/+2
VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36. Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-07-02encoder:h265: Fix the check for packed-header supportSreerenj Balachandran1-3/+3
Use VA_ENC_PACKED_HEADER_* definition for checking. Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-07-02encoder:h264: Fix the check for packed-header supportSreerenj Balachandran1-3/+3
Use VA_ENC_PACKED_HEADER_* definition for checking. Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-07-02encoder: h264: submit SEI buffering_period() and picture_timing() messages ↵Sreerenj Balachandran1-3/+220
for CBR mode One buffering_period() SEI message shall be present in every IDR access unit when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we use a non-CQP mode, e.g. CBR. In other words, when nal_hrd_parameters_present_flag is set to 1. One picture_timing() SEI messages shall be present in every access unit if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1 https://bugzilla.gnome.org/show_bug.cgi?id=722734 https://bugzilla.gnome.org/show_bug.cgi?id=751831 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-07-02vaapidecodebin: notify if vpp is disabledVíctor Manuel Jáquez Leal1-26/+28
When the system is aware that VPP is not available by the VA driver, it would be useful to notify to the user that the disable-vpp property has changed. https://bugzilla.gnome.org/show_bug.cgi?id=749554
2015-07-02vaapidecodebin: enable vpp if it is availableVíctor Manuel Jáquez Leal2-59/+124
Instead of creating and adding VPP into the bin at setup, we wait until we are sure the VA driver supports it. We know that when the VA video context is received by the bin. Afterwards, it is decided to instanciate and link the VPP or not. This is more efficient and safer than waiting the VPP to fail and then disable it. https://bugzilla.gnome.org/show_bug.cgi?id=749554
2015-07-02tests: Fix compilation while enabling egl as the only renderer in buildSreerenj Balachandran2-0/+7
Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
2015-07-02configure: fix the build while enabling egl as the only rendererSreerenj Balachandran1-1/+1
2015-07-02libs: Bump library major versionSreerenj Balachandran1-5/+2
2015-06-30gst/vaapi: Switch to upstreram like indentation.Sreerenj Balachandran11-70/+57
gst-indent for all gst/vaapi/*.c source files
2015-06-30vaapidecodebin: Add property to disable VPPSreerenj Balachandran2-20/+71
Adding a new propery "disable-vpp", enabling it will prevent the insertion of vaapipostproc child element. This is helpful in debugging, specifically to narrow-down the vaapidecodebin/vaapipostproc related negotiation issues. No support for run-time disabling for now. https://bugzilla.gnome.org/show_bug.cgi?id=745901
2015-06-29vaapipostproc: Fix wrong selection of passthrough mode.Sreerenj Balachandran1-0/+1
The Current code path is falling back to passthorugh mode if there is no vpp property set by the user explictily. But we should not use the passthrough mode if the negotiated src pad caps have a differnt color space format than sink pad caps (Even though the user didn't set the format property explicitly). https://bugzilla.gnome.org/show_bug.cgi?id=748184 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-06-29vaapipostproc: prevent advanced-deinterlacing of non-native video formats.Sreerenj Balachandran1-0/+25
This is a workaround to deal with the va-intel-driver for non-native formats while doing advanced deinterlacing. The format of reference surfaces must be same as the format used by the driver internally for motion adaptive deinterlacing and motion compensated deinterlacing. A permanent solution could be to do the color space conversion internally for reference surfaces. https://bugzilla.gnome.org/show_bug.cgi?id=730925 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-06-29Work around ABBA deadlock between vaapisink and vaapipostprocSimon Farnsworth1-0/+3
vaapisink takes the display lock, then does a gst_buffer_replace which can take the lock on the gst_vaapi_video_pool. vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free surfaces, which means that gst_vaapi_surface_create is called. gst_vaapi_surface_create takes the display lock. If vaapisink and vaapipostproc are in different threads, and this happens, you get a deadlock. vaapisink holds the display lock, and wants the gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock and wants the display lock. Work around this by releasing the display lock in vaapisink around the gst_buffer_replace. https://bugzilla.gnome.org/show_bug.cgi?id=738249 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2015-06-25vaapidecodebin: expose deinterlace-method property from inner vaapipostprocJacobo Aragunde Pérez2-1/+22
https://bugzilla.gnome.org/show_bug.cgi?id=745901
2015-06-22vaapipostproc: log negotiated capsVíctor Manuel Jáquez Leal1-0/+4
2015-06-22vaapipostproc: remove useless debug messageVíctor Manuel Jáquez Leal1-2/+0
2015-06-22vaapidecode: log negotiated src/sink capsVíctor Manuel Jáquez Leal1-0/+2
2015-06-22vaapisink: error handling if rendering failsVíctor Manuel Jáquez Leal1-8/+19
This patch enhance the code path when an error is found when rendering a buffer. If the video meta doesn't contain a surface proxy or a surface, a warning message is printed. If the rendering backend fails, a error message is posted in the bus. https://bugzilla.gnome.org/show_bug.cgi?id=749382
2015-06-18vaapisink: Fix the conditional pad template creation.Sreerenj Balachandran1-4/+2
2015-06-18build: Don't build simple-encoder test program if there is no VA Encoding ↵Sreerenj Balachandran1-0/+5
support This will fix the build error against older VA-APIs <= 0.32
2015-06-18Fix build error for older VA-API versionsSreerenj Balachandran2-1/+8
Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from VA >= 0.36.
2015-06-17vaapisink: Fix the capsfeature advertisement in padtemplateSreerenj Balachandran1-5/+7
This fixes the regression introduced in 64acc74. If a pad supports multiple set of capsfeatures, it needs to add multiple equal structures with different feature sets to the caps. Because caps structures with the same name but with a non-equal set of caps features are not compatible. Without this patch, playbin will autoplug xvimagesink instead of vaapisink. https://bugzilla.gnome.org/show_bug.cgi?id=750095
2015-06-17vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.Adrian Cox1-3/+13
https://bugzilla.gnome.org/show_bug.cgi?id=750095 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-06-17vaapipluginbase: Override downstream allocation reply if no poolOlivier Crete1-3/+2
If the downstream replied without a pool, then override it. https://bugzilla.gnome.org/show_bug.cgi?id=748559
2015-06-12vaapipostproc: add color balance interfaceVíctor Manuel Jáquez Leal2-1/+199
https://bugzilla.gnome.org/show_bug.cgi?id=720376
2015-06-08vaapipostproc: add skin tone enhancementVíctor Manuel Jáquez Leal4-0/+117
Added the 'skin-tone-enhancement' property to vaapostproc. https://bugzilla.gnome.org/show_bug.cgi?id=744088
2015-06-04doc: add VA-API reference in freedesktopVíctor Manuel Jáquez Leal1-0/+5
2015-06-04patches/videoparsers: rebase all the h264parse patchesVíctor Manuel Jáquez Leal3-10/+10
In order to avoid the creation of .orig files and break the distcheck target