mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-16 21:36:35 +00:00
c36190cbda
Existing VP9 parser implementation doesn't provide information required by other stateless decoding APIs (i.e., DXVA and NVDEC), specifically loop filter and segmentation parameters might not exist current frame. So parser needs to fill the information by using previously parsed information. We can update the gstvp9parser implementation so that it can provide all information required by stateless decoding APIs with a huge API break, or adding more ugly struct in it. Instead doing as such, this commit introduce a new VP9 parser implementation. What is different from existing one? * All variables will follow the specification as much as possible: VP9 Bitstream & Decoding Process Specification - v0.6 31st March 2016 * Parser will fill all the required information for decoding frame to GstVp9FrameHeader struct. In case of old VP9 parser, user needs to read additional data from parser's member variables. * GstVp9StatefulParser object struct is completely completely opaque Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
74 lines
1.9 KiB
Meson
74 lines
1.9 KiB
Meson
codecs_sources = files([
|
|
'gsth264decoder.c',
|
|
'gsth264picture.c',
|
|
'gsth265decoder.c',
|
|
'gsth265picture.c',
|
|
'gstvp9decoder.c',
|
|
'gstvp9picture.c',
|
|
'gstvp8decoder.c',
|
|
'gstvp8picture.c',
|
|
'gstmpeg2decoder.c',
|
|
'gstmpeg2picture.c',
|
|
'gstav1decoder.c',
|
|
'gstav1picture.c',
|
|
'gstvp9statefulparser.c',
|
|
])
|
|
|
|
codecs_headers = [
|
|
'gsth264decoder.h',
|
|
'gsth264picture.h',
|
|
'gsth265decoder.h',
|
|
'gsth265picture.h',
|
|
'gstvp9decoder.h',
|
|
'gstvp9picture.h',
|
|
'gstvp8decoder.h',
|
|
'gstvp8picture.h',
|
|
'gstmpeg2decoder.h',
|
|
'gstmpeg2picture.h',
|
|
'gstav1decoder.h',
|
|
'gstav1picture.h',
|
|
'gstvp9statefulparser.h',
|
|
]
|
|
|
|
cp_args = [
|
|
'-DGST_USE_UNSTABLE_API',
|
|
'-DBUILDING_GST_CODECS',
|
|
]
|
|
|
|
gstcodecs = library('gstcodecs-' + api_version,
|
|
codecs_sources,
|
|
c_args : gst_plugins_bad_args + cp_args,
|
|
include_directories : [configinc, libsinc],
|
|
version : libversion,
|
|
soversion : soversion,
|
|
darwin_versions : osxversion,
|
|
install : true,
|
|
dependencies : [gstvideo_dep, gstcodecparsers_dep],
|
|
)
|
|
|
|
gen_sources = []
|
|
if build_gir
|
|
codecs_gir = gnome.generate_gir(gstcodecs,
|
|
sources : codecs_sources + codecs_headers,
|
|
namespace : 'GstCodecs',
|
|
nsversion : api_version,
|
|
identifier_prefix : 'Gst',
|
|
symbol_prefix : 'gst',
|
|
export_packages : 'gstreamer-codecs-1.0',
|
|
includes : ['Gst-1.0', 'GstVideo-1.0'],
|
|
install : true,
|
|
extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'] +
|
|
['--c-include=gst/codecs/gsth264decoder.h',
|
|
'--c-include=gst/codecs/gsth265decoder.h',
|
|
'--c-include=gst/codecs/gstvp9decoder.h',
|
|
'--c-include=gst/codecs/gstvp8decoder.h',
|
|
'--c-include=gst/codecs/gstmpeg2decoder.h',
|
|
],
|
|
dependencies : [gstvideo_dep, gstcodecparsers_dep]
|
|
)
|
|
endif
|
|
|
|
gstcodecs_dep = declare_dependency(link_with : gstcodecs,
|
|
include_directories : [libsinc],
|
|
sources: gen_sources,
|
|
dependencies : [gstvideo_dep, gstcodecparsers_dep])
|