He Junyan [Thu, 29 Aug 2019 10:44:36 +0000 (18:44 +0800)]
libs: encoder: clean two virtual func in encoder class
set_property and get_default_properties functions are no longer
needed for encoder class.
He Junyan [Thu, 29 Aug 2019 10:43:30 +0000 (18:43 +0800)]
libs: encoder: delete old set_property and property enum feienc264
He Junyan [Thu, 29 Aug 2019 10:39:27 +0000 (18:39 +0800)]
libs: encoder: delete old set_property and property enum in h264 fei
He Junyan [Thu, 29 Aug 2019 10:37:58 +0000 (18:37 +0800)]
libs: encoder: delete old set_property and property enum in vp9
He Junyan [Thu, 29 Aug 2019 10:36:51 +0000 (18:36 +0800)]
libs: encoder: delete old set_property and property enum in vp8
He Junyan [Thu, 29 Aug 2019 10:35:59 +0000 (18:35 +0800)]
libs: encoder: delete old set_property and property enum in mpeg2
He Junyan [Thu, 29 Aug 2019 10:34:57 +0000 (18:34 +0800)]
libs: encoder: delete old set_property and property enum in jpeg
He Junyan [Thu, 29 Aug 2019 10:31:56 +0000 (18:31 +0800)]
libs: encoder: delete old set_property and property enum in h265
He Junyan [Thu, 29 Aug 2019 10:30:07 +0000 (18:30 +0800)]
libs: encoder: delete old set_property and property enum in h264
He Junyan [Thu, 29 Aug 2019 10:17:42 +0000 (18:17 +0800)]
libs: encoder: delete EncoderPropInfo related functions
He Junyan [Thu, 29 Aug 2019 08:13:19 +0000 (16:13 +0800)]
libs: encoder: delete encoder_set_property
We no longer need this obsolete set_property function now after
switch to standard gobject's property manner.
Also delete the old encoder's property enum in the header file.
He Junyan [Thu, 29 Aug 2019 07:59:43 +0000 (15:59 +0800)]
libs: encoder: delete properties_get_default for base class
He Junyan [Thu, 29 Aug 2019 07:52:04 +0000 (15:52 +0800)]
plugin: encode: delete useless init_properties.
Also delete the get_properties function in encode class. We now
use g_object_class_list_properties to get all properties for
internal encoder class.
He Junyan [Thu, 29 Aug 2019 07:43:45 +0000 (15:43 +0800)]
plugin: encode: delete set/get_property func in encode class
Use standard gobject's property functions to replace the old way.
He Junyan [Thu, 29 Aug 2019 07:31:16 +0000 (15:31 +0800)]
plugin: encode: delete gst_vaapiencode_init_properties
No need to init the properties got by get_default_properties func
now. The properties are inited correctly in internal encoder class.
He Junyan [Thu, 29 Aug 2019 07:19:10 +0000 (15:19 +0800)]
libs: encoder: delete 3 useless init macro
He Junyan [Thu, 29 Aug 2019 07:16:26 +0000 (15:16 +0800)]
libs: encoder: delete get_default_properties of feienc
He Junyan [Thu, 29 Aug 2019 07:14:14 +0000 (15:14 +0800)]
libs: encoder: delete get_default_properties of H264 Fei
He Junyan [Thu, 29 Aug 2019 07:07:17 +0000 (15:07 +0800)]
libs: encoder: delete get_default_properties of VP9
He Junyan [Thu, 29 Aug 2019 07:06:25 +0000 (15:06 +0800)]
libs: encoder: delete get_default_properties of VP8
He Junyan [Thu, 29 Aug 2019 07:03:52 +0000 (15:03 +0800)]
libs: encoder: delete get_default_properties of MPEG2
He Junyan [Thu, 29 Aug 2019 07:03:19 +0000 (15:03 +0800)]
libs: encoder: delete get_default_properties of JPEG
He Junyan [Fri, 30 Aug 2019 11:15:38 +0000 (19:15 +0800)]
libs: encoder: delete get_default_properties of H265
He Junyan [Thu, 29 Aug 2019 06:59:12 +0000 (14:59 +0800)]
libs: encoder: delete get_default_properties of H264
He Junyan [Thu, 29 Aug 2019 06:53:59 +0000 (14:53 +0800)]
libs: encoder: delete the useless constructed func for encoder.
He Junyan [Mon, 26 Aug 2019 15:16:33 +0000 (23:16 +0800)]
libs: encoder: implement get_view_ids for h264 encoder.
He Junyan [Tue, 20 Aug 2019 15:56:33 +0000 (23:56 +0800)]
gst: encode: enable new type of property mechanism.
He Junyan [Tue, 20 Aug 2019 14:16:35 +0000 (22:16 +0800)]
gst: encode: add property help functions for encoder properties.
The encoder is a true gstobject now and all the properties are using
gobject's properties mechanism. Add help functions to handle the properties
between encode and encoder class.
The basic idea is mapping the same property between encoder and encode. All
the encoder's properties will have the same name, the same type in encode.
The set/get property function just forward the property setting/getting to
the encoder using the same property name and value. Because the encoder is
created on needed, we need to cache the property setting in encode.
He Junyan [Fri, 30 Aug 2019 10:39:32 +0000 (18:39 +0800)]
libs: encoder: add flags to all encoder properties.
G_PARAM_CONSTRUCT make all properties init correctly, we do not
need to init the properties manually.
G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
flag, means need to expose the property to according encode class.
He Junyan [Tue, 20 Aug 2019 09:00:39 +0000 (17:00 +0800)]
libs: encoder: Add properties for h264 encoder fei.
Install properties for h264 encoder fei class. Also set the new get/set
property functions for gobject class. Still use the old properties
way now and this new feature will be enabled later.
He Junyan [Tue, 20 Aug 2019 07:58:30 +0000 (15:58 +0800)]
libs: encoder: Add properties for h264 fei encoder.
Install properties for h264 fei encoder class. Also set the new get/set
property functions for gobject class. Still use the old properties
way now and this new feature will be enabled later.
He Junyan [Tue, 20 Aug 2019 07:29:27 +0000 (15:29 +0800)]
libs: encoder: Add properties for vp9 encoder.
Install properties for vp9 encoder class. Also set the new get/set
property functions for gobject class. Still use the old properties
way now and this new feature will be enabled later.
He Junyan [Tue, 20 Aug 2019 07:01:02 +0000 (15:01 +0800)]
libs: encoder: Add properties for vp8 encoder.
Install properties for vp8 encoder class. Also set the new get/set
property functions for gobject class. Still use the old properties
way now and this new feature will be enabled later.
He Junyan [Tue, 20 Aug 2019 06:31:58 +0000 (14:31 +0800)]
libs: encoder: Add properties for mpeg2 encoder.
Install properties for mpeg2 encoder class. Also set the new get/set
property functions for gobject class. Still use the old properties
way now and this new feature will be enabled later.
He Junyan [Tue, 20 Aug 2019 06:53:06 +0000 (14:53 +0800)]
libs: encoder: Add properties for jpeg encoder.
Install properties for jpeg encoder class. Also set the new get/set
property functions for gobject class. Still use the old properties
way now and this new feature will be enabled later.
He Junyan [Tue, 20 Aug 2019 06:12:36 +0000 (14:12 +0800)]
libs: encoder: Add properties for h265 encoder.
Install properties for h265 encoder class. Also set the new get/set
property functions for gobject class. Still use the old properties
way now and this new feature will be enabled later.
He Junyan [Mon, 19 Aug 2019 17:33:40 +0000 (01:33 +0800)]
libs: encoder: Add properties for h264 encoder.
Install properties for h264 encoder class. Also set the new get/set
property functions for gobject class. Still use the old properties
way now and this new feature will be enabled later.
He Junyan [Mon, 19 Aug 2019 07:38:09 +0000 (15:38 +0800)]
libs: encoder: add properties and prop help functions
Add all common properties to encoder base class. rate-control and
tune are moved to sub class.
He Junyan [Thu, 29 Aug 2019 06:38:49 +0000 (14:38 +0800)]
libs: encoder: delete useless gst_vaapi_encoder_new func.
GstVaapiEncoder is a abstract gobject and never be created directly.
He Junyan [Fri, 26 Jul 2019 16:55:53 +0000 (00:55 +0800)]
lib: encoder: gstobjectfy all vaapi encoders.
Replace all gstvaapiobject in vaapi encoders with standard gstobject.
Let the gstobject common logic to handle all the init and finalize
works. But the property install/set/get still use the old way, need
to be improved later.
Víctor Manuel Jáquez Leal [Thu, 29 Aug 2019 10:11:36 +0000 (12:11 +0200)]
vaapipostproc: check for filter before appending caps
While ensuring the allowed sink pad caps, the filter attributes set
the frame size restriction, but it is not ensured, at that moment,
that the filter is already instantiaded.
In order to silence the glib logs, this patch add only calls
gst_vaapi_filter_append_caps() if the filter is instantiated.
Thibault Saunier [Wed, 28 Aug 2019 16:49:03 +0000 (12:49 -0400)]
Classify vaapidecodebin as a hardware decoder
He Junyan [Tue, 27 Aug 2019 10:12:45 +0000 (18:12 +0800)]
libs: postproc: fix a memory leak point.
filter_ops and filter_formats should already have valid value when
the function gst_vaapipostproc_ensure_filter_caps re-enter
He Junyan [Mon, 26 Aug 2019 17:30:36 +0000 (01:30 +0800)]
libs: util: Fix a memory leak in config_surface_attributes_get
Wangfei [Thu, 22 Aug 2019 06:33:54 +0000 (14:33 +0800)]
vaapidecode: support transform ROI meta
This will benefit the use case like:
src ---> encode ---> decode ---> circle ROI ---> sink
| |
--> analyse to -->
get ROI
Mathieu Duponchelle [Fri, 23 Aug 2019 17:10:15 +0000 (19:10 +0200)]
docstrings: port ulinks to markdown links
Víctor Manuel Jáquez Leal [Tue, 20 Aug 2019 15:05:14 +0000 (17:05 +0200)]
libs: remove context's overlay
The context overlay was an optimization to apply a video composition
to all the surfaces bound to a context.
But since commit
18031dc6 this optimization was disabled, so it is
better just get rid of it.
Víctor Manuel Jáquez Leal [Tue, 20 Aug 2019 14:50:46 +0000 (16:50 +0200)]
libs: remove surface's parent context
In commit
18031dc6 surface's parent context is not assigned because of
circular references. Since then (2013), there's has no issue with
subpictures attached to a context, the current only users of this API.
This patch cleans up all of related code with the unused surface's
parent context.
Víctor Manuel Jáquez Leal [Sun, 18 Aug 2019 11:53:53 +0000 (13:53 +0200)]
vaapidecode: guard if no structure is available in caps
Víctor Manuel Jáquez Leal [Sun, 18 Aug 2019 11:53:19 +0000 (13:53 +0200)]
vaapipostproc: append frame size restrictions in caps
Víctor Manuel Jáquez Leal [Sun, 18 Aug 2019 11:09:58 +0000 (13:09 +0200)]
libs: profilecaps: refactor common code
Víctor Manuel Jáquez Leal [Fri, 16 Aug 2019 17:35:58 +0000 (19:35 +0200)]
vaapiencode: set frame size restrictions in caps
Fixes: #12
Víctor Manuel Jáquez Leal [Fri, 16 Aug 2019 17:28:27 +0000 (19:28 +0200)]
vaapiencode: enhance how the profile is defined
This code doesn't define the profile used by the internal encoder, but
it used to "predict" which is going to be used and to get the caps
restrictions.
Before the profile was predicted by checking the donwstream caps, but
sometimes they are not defined, setting an unknown profile. In order
to enhances this situation, the encoder asks to internal encoder if it
has one. If so, it is used.
To ask the internal encoder's profile a new accessor function was
added: gst_vaapi_encoder_get_profile()
Víctor Manuel Jáquez Leal [Fri, 16 Aug 2019 17:26:36 +0000 (19:26 +0200)]
libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
Previously it was just a boilerplate. Now it is real implementation.
Víctor Manuel Jáquez Leal [Fri, 16 Aug 2019 17:17:48 +0000 (19:17 +0200)]
libs: utils: treat va_rt_format as bitwise flag
The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
is a bitwise flag with *all* the supported chroma types.
Previously it was assumed that the return value was a single value,
thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
simple case. But it is wrong.
This patch changes the case block with a sequence of ifs testing the
bitwise. For now we assume a "priority" list in the testing sequence.
Víctor Manuel Jáquez Leal [Fri, 16 Aug 2019 16:07:43 +0000 (18:07 +0200)]
libs: profile: add gst_vaapi_profile_get_va_name()
gst_vaapi_profile_get_name() returns a proper name for
GstCaps. Nonetheless, there are many profiles which don't have a name
representation for that realm.
gst_vaapi_profile_get_va_name() returns the name of the profile
according to its VAProfile name.
This new funtion is used in the encoder error message.
Víctor Manuel Jáquez Leal [Mon, 5 Aug 2019 17:47:30 +0000 (19:47 +0200)]
libs: profilecaps: move caps config into a new file
Implement all the appending of frame size restrictions in caps, for
encoders and decoders, in a new source file.
Víctor Manuel Jáquez Leal [Mon, 5 Aug 2019 17:45:49 +0000 (19:45 +0200)]
libs: decoder: ref the caps as property
Víctor Manuel Jáquez Leal [Fri, 2 Aug 2019 14:56:17 +0000 (16:56 +0200)]
libs: context: add gst_vaapi_context_get_surface_attributes()
This function copies the surface attributes from the context's object
to the caller.
Víctor Manuel Jáquez Leal [Fri, 2 Aug 2019 10:46:55 +0000 (12:46 +0200)]
libs: move memory types conversions to gstvaapiutils
And add more supported memory types by current VA.
Víctor Manuel Jáquez Leal [Thu, 1 Aug 2019 17:48:21 +0000 (19:48 +0200)]
libs: utils: remove unused function gst_vaapi_get_surface_formats()
Víctor Manuel Jáquez Leal [Thu, 1 Aug 2019 17:46:17 +0000 (19:46 +0200)]
libs: context, filter: use new surface attributes API
Víctor Manuel Jáquez Leal [Thu, 1 Aug 2019 17:13:39 +0000 (19:13 +0200)]
libs: utils: add gst_vaapi_config_surface_attributes_get()
To extract the surface restrictions per config using a new structure:
GstVaapiConfigSurfaceAttributes
Víctor Manuel Jáquez Leal [Wed, 31 Jul 2019 11:08:43 +0000 (13:08 +0200)]
Split the surface attribute retrieval
Víctor Manuel Jáquez Leal [Mon, 15 Jul 2019 19:51:46 +0000 (21:51 +0200)]
vaapipostproc: handle navigation downstream event
When navigation events contains coordiantes those have to be mapped
to the new size and/or orientation.
Víctor Manuel Jáquez Leal [Mon, 15 Jul 2019 19:23:21 +0000 (21:23 +0200)]
test-vaapisink: also use vaapipostproc to change orientation
Víctor Manuel Jáquez Leal [Mon, 15 Jul 2019 19:27:20 +0000 (21:27 +0200)]
vaapipostproc: handle image-orientation upstream event
Now that vaapipostproc can possible handle video-direction, it
should also handle the image-orientation event from upstream if
video-direction property is set to auto.
Víctor Manuel Jáquez Leal [Fri, 26 Jul 2019 20:09:37 +0000 (22:09 +0200)]
vaapipostproc: add missing locks when adding flags
Víctor Manuel Jáquez Leal [Fri, 26 Jul 2019 20:05:29 +0000 (22:05 +0200)]
vaapipostproc: update filter before fixate caps
It is requiered to know if postproc is capable to change the video
direction before fixating the source caps.
In order to do it, it'ss required to know if there's a functional VPP,
but that's checked at create() vmethod, which occurs after caps
fixating.
This patch checks for a functional VPP at fixate caps and, if so,
checks for the enabled filtes and later do the caps fixations.
Víctor Manuel Jáquez Leal [Fri, 26 Jul 2019 17:46:09 +0000 (19:46 +0200)]
vaapipostproc: element warning if video direction is unsupported
If the video direction is unsupported by the driver, an element
warning is posted in the bus to notify the application.
gst_vaapi_enum_type_get_nick() was added in the library thus it can
be used elsewhere. It retrives the nick from an enum gtype.
Víctor Manuel Jáquez Leal [Fri, 26 Jul 2019 17:09:54 +0000 (19:09 +0200)]
libs: filter: check mirror and rotation caps only once
This patch locks the display before querying the pipeline caps and
stores the mirror and rotation capabilities, thus they are not queried
every time the video direction is set.
Víctor Manuel Jáquez Leal [Fri, 16 Aug 2019 17:51:29 +0000 (19:51 +0200)]
libs: encoder: vp9: set VP9_0 profile as default
Commit
0afc8131 introduced a regression and only NV12 format were
admitted, failing in any other valid color format.
This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
Víctor Manuel Jáquez Leal [Fri, 16 Aug 2019 11:25:06 +0000 (13:25 +0200)]
libs: filter: fail if first color balance value is invalid
Yan Wang [Tue, 6 Aug 2019 11:24:08 +0000 (19:24 +0800)]
libs: filter: set all color balance values
When set multiple settings of color balance like hue, saturation,
brightness and contrast for vaapipostproc, they should be set as
parameters of color balance filter, at the same color balance
filter calling.
Otherwise, multiple color balance filter calling will cause
previous setting get reset by the last calling with default value.
Fixes #182.
Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
Wangfei [Fri, 16 Aug 2019 03:02:08 +0000 (11:02 +0800)]
libs: h265dec: remove limitation of get iq matrix
According hevc spec, scaling_list_data is not related
to chroma_format_idc.
He Junyan [Thu, 30 May 2019 15:52:51 +0000 (23:52 +0800)]
libs: videopool: fix undocumented behavior and counting
gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
because it locks twice the same mutex.
Also, n had different meanings in the current code: as an increase
value and as a new total of allocated surfaces.
This patche removes the undocumented behavoir (usually a deadlock) and
fixes the meaning of n as the new total of allocated surfaces.
Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
He Junyan [Wed, 17 Jul 2019 03:56:45 +0000 (11:56 +0800)]
libs: utils: Add missing entries for string_of_VAEntrypoint.
He Junyan [Thu, 18 Jul 2019 14:01:01 +0000 (22:01 +0800)]
libs: encoder: Consider vp9 profiles based on input format.
Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
Fix: #184
Víctor Manuel Jáquez Leal [Mon, 12 Aug 2019 16:41:52 +0000 (18:41 +0200)]
vaapivideomemory: demote error message to info
The main reason to demote the message's level is because it is not an
error, it's a possible output of the trial and there's a code path
that handles it.
Secondly, it's very annoying when using gallium driver for radeon.
Wangfei [Thu, 18 Jul 2019 05:32:46 +0000 (13:32 +0800)]
libs: encoder: h264: support ICQ/QVBR bitrate control mode
ICQ is Intelligent Constant Quality. It will use the initial QP
vaule of icq-quality-factor to adjust QP at MB level intelligently
to improve subjective quality.
QVBR is Quality defined VBR. It will use qvbr-quality-factor to
adjust QP for each MB to get enough quality picture without waste
of bits.
Wangfei [Mon, 5 Aug 2019 02:51:24 +0000 (10:51 +0800)]
libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
The value return from GST_VAAPI_RATECONTROL_MASK will be used by
GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
deal with unsigned int. Otherwise there may be an error of out of
range of integer if we define few more rate-control mode.
Víctor Manuel Jáquez Leal [Fri, 7 Jun 2019 07:54:12 +0000 (09:54 +0200)]
vaapidecodebin: set queue's max size buffers to 1
Otherwise the queue will swallow all the available decoder's surfaces
reaching a dead-lock.
This setting might impact the bin's peformance, but it's a trade-off.
Víctor Manuel Jáquez Leal [Fri, 7 Jun 2019 07:53:08 +0000 (09:53 +0200)]
vaapidecodebin: set properties default values
Víctor Manuel Jáquez Leal [Fri, 31 May 2019 11:12:35 +0000 (13:12 +0200)]
vaapidecode: don't error if can't push buffers downtream
When the code path goes to push buffers downstream when no surface
available in decoder context, and it fails the code bails out with a
fatal error.
That behavior is wrong, since it shouldn't be fatal. The use case is
when the video stream is disabled.
This patch just ignores the errors in this situation and demotes the
level of a log message.
Wangfei [Sat, 18 May 2019 05:24:35 +0000 (13:24 +0800)]
libs: encoder: h264,h265: add new property "max-qp"
Add new property "max-qp" to allow set the maximum quantisation
parameter values.
Wangfei [Thu, 23 May 2019 14:18:52 +0000 (10:18 -0400)]
libs: encoder: vp9: add low power mode encode
By now, this feature only support by media-driver on Ice Lake
platform, more information you can reference:
https://github.com/intel/media-driver
U. Artie Eoff [Mon, 15 Jul 2019 22:33:07 +0000 (15:33 -0700)]
vaapipostproc: update PAR when rotating
When rotating, swap pixel-aspect-ratio during
negotiation.
Fixes #181
U. Artie Eoff [Mon, 1 Jul 2019 22:26:18 +0000 (15:26 -0700)]
vaapipostproc: add rotation support
Adds vpp rotation support to vaapipostproc. Uses
property video-direction. Default is identity (no
rotation).
Closes #104
Wangfei [Wed, 22 May 2019 14:47:30 +0000 (10:47 -0400)]
libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
Intel media-driver requires enablement of diff_cu_qp_delta_depth when
cu_qp_delta_enabled_flag enabled.
Fixes: #177
Wangfei [Mon, 1 Jul 2019 09:02:33 +0000 (17:02 +0800)]
libs: encoder: Add MB ratecontrol mode to get its string
Wangfei [Mon, 1 Jul 2019 08:52:00 +0000 (16:52 +0800)]
libs: encoder: refine guard of bitrate control mode
Remove useless guard of all bitrate control mode's guard except MB
which is define in VA-API version 0.39.1.
Jan Schmidt [Fri, 28 Jun 2019 14:08:40 +0000 (00:08 +1000)]
h264: Update for parse_vui_params parameter removal.
Update calls to the h264 parser lib for removal of the
parse_vui_params parameter.
Wang Zhanjun [Mon, 24 Jun 2019 20:26:56 +0000 (16:26 -0400)]
libs: dec: vp9: do not use display size as decoded size
If display size is smaller than current frame size, then the crop size
will be set as display size, which either crashes the pipeline or the
output MD5 does not match. Rather it should use the actual decoded size.
This patch removes the cropping set. For rendering we can use aspect
ratio to set display size.
Fixes #175
Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
Víctor Manuel Jáquez Leal [Fri, 28 Jun 2019 14:32:51 +0000 (16:32 +0200)]
Update README
He Junyan [Tue, 25 Jun 2019 11:11:12 +0000 (19:11 +0800)]
libs: dec: h265: Consider chroma_bit_depth to choose chrome type
For some main-10 stream, sometime the luma is 8 bits while chrome is more
than 8 bits, which cause using the wrong NV12 surface as the render target
and decoding error.
Fix #176
Wangfei [Tue, 25 Jun 2019 02:31:20 +0000 (10:31 +0800)]
vaapidecode: set initial decode format according surface chroma type
For surfaces with different chroma type, it is prefer to initialize
a format which chroma type should be same with surface chroma type
instead of using fixed NV12.
Wangfei [Thu, 30 May 2019 13:48:51 +0000 (09:48 -0400)]
libs: decoder: jpeg: add support 400/411/422/444 chroma type
When create vaapi surface, it is better to use the chroma type get
from jpeg file instead of using fixed 420 format. And the correct
chroma type can be determined by horizontal_factor/vertical_factor
flags that get from jpegparse.
He Junyan [Fri, 21 Jun 2019 16:05:24 +0000 (00:05 +0800)]
libs: dec: h265: Fix profile_idc mapping.
The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
happened to be the correct value.
We only support Annex A profile_idc (1-4).
U. Artie Eoff [Tue, 11 Jun 2019 03:46:30 +0000 (20:46 -0700)]
plugins: remove last negotiated video info if caps are same
If the allocation caps and negotiated caps are the same,
then ensure any previously negotiated video info is also
removed. This can occur when multi-resolution video
decoding returns to it's original resolution.
Fixes #170
U. Artie Eoff [Tue, 11 Jun 2019 03:39:28 +0000 (20:39 -0700)]
vaapivideomemory: allow negotiated info to be removed
Allow NULL negotiated_vinfo to be passed into
gst_allocator_set_vaapi_negotiated_video_info to allow
any previously set info to be removed.