summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-03-19Release 1.14.01.14.0Tim-Philipp Müller5-62/+209
2018-03-16libs: decoder: h264: ensure num_ref_frames is greater than 0Julien Isorce1-0/+3
Even if it is the h264parse fault or bad video file, vaapih264dec should set a proper value for VAPictureParameterBufferH264.num_ref_frames as the driver might use it. Also see "info.ref_frames = dpb_size;" in gstvaapidecoder_h264.c::ensure_context https://bugzilla.gnome.org/show_bug.cgi?id=793836
2018-03-13Release 1.13.911.13.91Tim-Philipp Müller5-42/+917
2018-03-03Release 1.13.901.13.90Tim-Philipp Müller5-103/+3241
2018-03-01vaapipostproc: change how the metadata is copiedVíctor Manuel Jáquez Leal1-19/+26
Instead of copying the metada in prepare_output_buffer() vmethod, it is done in append_output_buffer_metadata() thus deinterlaced buffers could also have the proper metas. GstVideoCropMeta now it is copied internally and it is decided via transform_meta() vmethod. A new internal method, copy_metadata() was added to handle VPP transformation where non-GstVideoVaapiMeta metas were lost.
2018-02-27postproc: Copy meta data from input to outputNicolas Dufresne1-1/+21
This will ensure that meta data without memory tags will be copied. This was noticed when testing ROI. https://bugzilla.gnome.org/show_bug.cgi?id=768248
2018-02-27tests: element: rewrite ROI testVíctor Manuel Jáquez Leal1-63/+137
Rewrote the ROI test to use GstVideoRegionOfInterest meta rather than injecting GstEvents. These meta are added as a pad probe in the queue src pad. Also * Use of navigation messages to control de test * Use signal watch for processing messages * Change to H265 rather than H264 since current intel-vaapi-driver only supports ROI on kabylake. TODO: add a parameter to change the encoder/decoder to test. https://bugzilla.gnome.org/show_bug.cgi?id=768248
2018-02-27libs: encoder: reimplement ROI using metaVíctor Manuel Jáquez Leal6-48/+131
Check input buffers for ROI metas and pass them to VA. Also added a new "default-roi-delta-qp" property in order to tell the encoder what delta QP should be applied to ROI by default. Enabled it for H264 and H265 encoders. https://bugzilla.gnome.org/show_bug.cgi?id=768248
2018-02-27Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"Víctor Manuel Jáquez Leal3-123/+0
This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8. https://bugzilla.gnome.org/show_bug.cgi?id=768248
2018-02-27Revert "tests: simple-encoder: add an option to set ROI"Víctor Manuel Jáquez Leal1-39/+0
This reverts commit c21345c4787bb6342adddea1190f53fe62abff04. https://bugzilla.gnome.org/show_bug.cgi?id=768248
2018-02-27Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"Víctor Manuel Jáquez Leal2-113/+0
This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1. https://bugzilla.gnome.org/show_bug.cgi?id=768248
2018-02-27plugins: copy input buffer metasVíctor Manuel Jáquez Leal1-2/+3
When importing buffers to a VA-base buffer, it is required to copy the metas in the original buffer, otherwise information will be lost, such as GstVideoRegionOfInterestMeta. https://bugzilla.gnome.org/show_bug.cgi?id=768248
2018-02-27libs: surface: cast to uintptr_t pointerVíctor Manuel Jáquez Leal1-1/+1
According to Debian package auto-building, uintptr_t is not an unsigned long in i386 arch, raising an "incompatible pointer type" error. This patch adds a casting for compiler's satisfaction in i386.
2018-02-26libs: encoder: add zero as valid value for periodic keyframe.Matteo Valdina1-1/+1
Enabled zero as valid value for keyframe-period property. https://bugzilla.gnome.org/show_bug.cgi?id=793829
2018-02-22libs: encoder: code-style fixVíctor Manuel Jáquez Leal1-2/+2
2018-02-20vaapidecode: generate system allocated buffersVíctor Manuel Jáquez Leal1-0/+39
Generate system allocated output buffers when downstream doesn't support GstVideoMeta. The VA buffer content is copied to the new output buffer, and it replaces the VA buffer. https://bugzilla.gnome.org/show_bug.cgi?id=785054
2018-02-20vaapipostproc: handle system allocated buffers when requiredVíctor Manuel Jáquez Leal1-5/+82
When downstream can't handle GstVideoMeta it is required to send system allocated buffers. The system allocated buffers are produced in prepare_output_buffer() vmethod if downstream can't handl GstVideoMeta. At transform() vmethod if the buffer is a system allocated buffer, a VA buffer is instanciated and replaces the out buffer. Later the VA buffer is copied to the system allocate buffer and it replaces the output buffer. https://bugzilla.gnome.org/show_bug.cgi?id=785054
2018-02-20plugins: add gst_vaapi_copy_va_buffer()Víctor Manuel Jáquez Leal2-0/+72
This helper function aims to copy buffers with VA memory to dumb buffers, when GstVideoMeta is not available dowstream. https://bugzilla.gnome.org/show_bug.cgi?id=785054
2018-02-20plugins: add COPY_OUTPUT_FRAME flagVíctor Manuel Jáquez Leal2-0/+10
This patch add the member copy_output_frame and set it TRUE when when downstream didn't request GstVideoMeta API, the caps are raw and the internal allocator is the VA-API one. https://bugzilla.gnome.org/show_bug.cgi?id=785054
2018-02-20plugins: store the first downstream allocator if availableVíctor Manuel Jáquez Leal2-1/+18
The allocator will be required if we need to allocate a buffer to store the frame with the expected strides. https://bugzilla.gnome.org/show_bug.cgi?id=785054
2018-02-20vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()Víctor Manuel Jáquez Leal2-0/+28
This function will inform the element if it shall copy the generated buffer by the pool to a system allocated buffer before pushing it to downstream. https://bugzilla.gnome.org/show_bug.cgi?id=785054
2018-02-20vaapibufferpool: don't change config when forcing video metaVíctor Manuel Jáquez Leal1-6/+5
VA-API based buffer might need a video meta because of different strides. But when donwstream doesn't support video meta we need to force the usage of video meta. Before we changed the buffer pool configuration, but actually this is a hack and we cannot rely on that for downstream. This patch add a check fo raw video caps and allocator is VA-API, then the option is enabled without changing the pool configuration. In this case the element is responsible to copy the frame to a simple buffer with the expected strides. https://bugzilla.gnome.org/show_bug.cgi?id=785054
2018-02-20vaapipostproc: set discont flag at vpp deinterlacingVíctor Manuel Jáquez Leal1-1/+11
When deinterlacing with VPP the discont flag was not forwarded to the new created buffer. This patch sets the discont flag if input buffer has it.
2018-02-20vaapibufferpool: remove wrong gcc annotationVíctor Manuel Jáquez Leal1-1/+1
2018-02-19libs: encoder: h264,h265: extend max periodic keyframe.Matteo Valdina7-21/+1
Increased max values of periodic key frame for h26x codecs. This allow more fine tunning of encoder that in certian scenario want higher periodic key frame. For example: it doesn't want a key frame each 10 seconds but each 120 seconds. https://bugzilla.gnome.org/show_bug.cgi?id=786320
2018-02-15Back to developmentTim-Philipp Müller2-4/+4
2018-02-15Release 1.13.11.13.1Tim-Philipp Müller5-627/+118
2018-02-15vaapi: dist new headerTim-Philipp Müller1-0/+1
2018-02-13vaapi: register vaapisink as marginal on waylandVíctor Manuel Jáquez Leal1-2/+6
vaapsink, when used with the Intel VA-API driver, tries to display surfaces with format NV12, which are handled correctly by Weston. Nonetheless, COGL cannot display YUV surfaces, making fail pipelines on mutter. This shall be solved either by COGL or by making the driver to paint RGB surfaces. In the meanwhile, let's just demote vaapisink as marginal when the Wayland environment is detected, no matter if it is Weston. https://bugzilla.gnome.org/show_bug.cgi?id=775698
2018-02-13plugins: update mesa's vendor string in whitelistVíctor Manuel Jáquez Leal1-1/+1
Mesa has updated its VA-API Gallium driver vendor string: https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a This patch tries to cover both, the old and the new one. https://bugzilla.gnome.org/show_bug.cgi?id=793386
2018-02-08meson: make version numbers ints and fix int/string comparisonTim-Philipp Müller1-6/+6
WARNING: Trying to compare values of different types (str, int). The result of this is undefined and will become a hard error in a future Meson release.
2018-02-08plugins: handle vaapi allocator in allocation queryVíctor Manuel Jáquez Leal1-11/+48
In propose_allocation() if the numer of allocation params is zero, the system's allocator is added first, and lastly the native VA-API allocator. In decide_allocation(), the allocations params in query are travered, looking for a native VA-API allocator. If it is found, it is reused as src pad allocator. Otherwise, a new allocator is instantiated and appended in the query. https://bugzilla.gnome.org/show_bug.cgi?id=789476
2018-02-07vaapivideomemory: remove unused macroVíctor Manuel Jáquez Leal1-2/+0
GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it was never used, since the native VA-API allocator name has been GST_VAAPI_VIDEO_MEMORY_NAME. This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro. https://bugzilla.gnome.org/show_bug.cgi?id=789476
2018-02-05vaapisink: don't mask button events for foreign windowsVaL Doroshchuk1-3/+5
Don't subscribe to button press events when using a foreing window, because the user created window would trap those events, preveting the show of frames. https://bugzilla.gnome.org/show_bug.cgi?id=791615
2018-02-05autotools: use -fno-strict-aliasing where supportedTim-Philipp Müller1-1/+5
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-01-30meson: use -fno-strict-aliasing where supportedTim-Philipp Müller1-0/+5
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-01-30vaapi: add NULL-sentinel to kernel_namesPhilippe Normand1-1/+1
The array needs to be NULL-terminated according to the gst_plugin_add_dependency() documentation.
2018-01-18vaapipostproc: remove spurious codeVíctor Manuel Jáquez Leal1-2/+0
This assignation is dead code, since gst_video_info_from_caps() set to 1 by default. https://bugzilla.gnome.org/show_bug.cgi?id=790149
2018-01-18vaapipostproc: if no p-a-r in out caps define a rangeVíctor Manuel Jáquez Leal1-5/+2
Instead of copying the pixel-aspect-ratio from the sink caps, define an open range for the src caps pixel-aspect-ratio. Later it will be defined. https://bugzilla.gnome.org/show_bug.cgi?id=790149
2018-01-18vaapisink: check for display's color-balance propertiesVíctor Manuel Jáquez Leal1-1/+7
Check for display's color-balance properties, available by the VA-API driver, before setting them. Also logs an info message of those unavailable properties. https://bugzilla.gnome.org/show_bug.cgi?id=792638
2018-01-17plugins: re-using buffer pool breaks renegotiationVíctor Manuel Jáquez Leal1-4/+12
at propose_allocation() we should not reuse the proposed buffer, because it could break renegotiation. https://bugzilla.gnome.org/show_bug.cgi?id=792620
2018-01-17plugins: use g_clear_object() to unref sinkpad_buffer_poolVíctor Manuel Jáquez Leal1-4/+2
https://bugzilla.gnome.org/show_bug.cgi?id=792620
2018-01-17build: meson: add missing GstGL dependencyVíctor Manuel Jáquez Leal1-1/+6
2018-01-17libs: utils: egl: add missing guards for GstGLVíctor Manuel Jáquez Leal1-2/+2
2018-01-16plugins: remove dmabuf-import hackVíctor Manuel Jáquez Leal1-69/+0
Remove the hack to check if an upstream element has enabled the property io-mode enabled as dmabuf-import. https://bugzilla.gnome.org/show_bug.cgi?id=792034
2018-01-12libs: egl: utils: use eglGetPlatformDisplay()Víctor Manuel Jáquez Leal4-7/+60
eglGetDisplay() is currently broken in Mesa for Wayland. Also using eglGetDisplay() is rather fragile, and it is recommended to use eglGetPlatformDisplay() when possible. In order to do that, this patch uses the helper in GstGL. If gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay() will be used. https://bugzilla.gnome.org/show_bug.cgi?id=790493
2018-01-12vaapipostproc: lock ensure_filter with postproc_lockMichael Tretter1-1/+7
gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps and allowed_sinkpad_caps. This can race with copying these caps in gst_vaapipostproc_transform_caps and lead to segfaults. The gst_vaapipostproc_transform_caps function already locks postproc_lock before copying the caps. Make sure that calls to gst_vaapipostproc_ensure_filter also acquire this lock. https://bugzilla.gnome.org/show_bug.cgi?id=791404
2018-01-10tests: test-filter: fix dereference before null checkVíctor Manuel Jáquez Leal1-1/+2
Null-checking op_info suggests that it may be null, but it has already been dereferenced on all paths leading to the check. There may be a null pointer dereference, or else the comparison against null is unnecessary.
2018-01-10tests: y4mreader: fix string state checkupVíctor Manuel Jáquez Leal1-1/+1
str cannot be null in that moment, but it may be the end of string.
2018-01-10tests: y4mreader: use int for fgetcVíctor Manuel Jáquez Leal1-4/+2
Assigning the return value of fgetc to char truncates its value. It will not be possible to distinguish between EOF and a valid character.