The tests are not run and are only compiled to object, without linkage.
It's pretty fast, and would help noticing when a forward declaration or
an include is missing from one of the files.
If the mask corresponds exactly, we have an exact match. If the RGB source
has a mask but none of the RGB mapping uses the same mask, we map to
a close RGB format with a different mask.
It's better than using the first VLC_CODEC_RGBxx in the list if there's
one corresponding to the exact match.
Another option would be to move the VLC_RGB_ES() calls at the end of the
list.
Currently emscripten builds all its libraris statically. This commit
will make necessary changes to the build script to make it possible.
The shared module based building can be triggered with the parameter
--enable-emscripten
Currently libtool.m4 does not have information about
wasm32-unknown-emscripten in host_os. Which causes failure in
enabling shared libraries.
This patch will create a new host_os case named emscripten in
libtool.m4 to allow us to enable shared library compilation
and add emscripten specific shared library building flags.
This patch will also add some shared library configuration in
libtool for emscripten host.
We can't handle rotation, so we should tell the core to do it for us.
We control the width/height locally so we don't need to rotate the source.
And we don't use vd->source, so we won't get side effects.
We can't handle rotation, so we should tell the core to do it for us.
We control the width/height locally so we don't need to rotate the source.
And we don't use vd->source, so we won't get side effects.
We can't handle rotation, so we should tell the core to do it for us.
And we need to use the dimensions after the rotation. We can't use
vd->source for that.
We should not rebuild a lot of Qt files when changing the subpictures.
It's still included in vlc_codec.h so all encoders/decoders are still
impacted by such changes.
The builder wasn't releasing the helper's internal leading to several
leaks. This was likely forgotten.
Caught with ASAN:
```
Direct leak of 516 byte(s) in 1 object(s) allocated from:
#0 0x7fa012fddcd7 in calloc (/lib64/libasan.so.8+0xd8cd7)
#1 0x7f9fe032dd15 in hevc_decode_sps modules/packetizer/hevc_nal.c:929
#2 0x7f9fe0371883 in hevc_helper_parse_nal modules/codec/hxxx_helper.c:315
#3 0x7f9fe0374131 in hxxx_helper_process_nal modules/codec/hxxx_helper.c:516
#4 0x7f9fe0374532 in hxxx_helper_process_buffer modules/codec/hxxx_helper.c:535
#5 0x7f9fe0354661 in hxxx_extradata_builder_Feed modules/mux/extradata.c:174
#6 0x7f9fe0355701 in mux_extradata_builder_Feed modules/mux/extradata.c:263
#7 0x7f9fe02ed827 in BlockDequeue modules/mux/mp4/mp4.c:616
#8 0x7f9fe02fbe7f in MuxFrag modules/mux/mp4/mp4.c:1458
```
We also don't allocate the converter pool if we don't need to.
Now osys->converters can be NULL. In that case vout_ConvertForDisplay()
is just a pass through, and doesn't need to call an empty filter chain
for nothing.
Since we reserved pictures, the bigger size of the pool is not a benefit.
It was necessary in 3.0 where the pool was coming from the display module.
We can split them since they always worked on different pictures.
vd->source is the same video format as osys->display_fmt used for the
display pool in this case since there is no converter.