gstreamer/gst-libs/gst/codecs/meson.build
Seungha Yang c36190cbda codecparsers: Reimplement VP9 parser
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>
2021-04-07 19:32:29 +00:00

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])