[vlc-commits] [Git][videolan/vlc][master] 12 commits: fourcc: specify chroma subtypes
Thomas Guillem (@tguillem)
gitlab at videolan.org
Thu Feb 6 05:53:15 UTC 2025
Thomas Guillem pushed to branch master at VideoLAN / VLC
Commits:
9525f270 by Thomas Guillem at 2025-02-06T05:38:08+00:00
fourcc: specify chroma subtypes
In order to identify different YUV sub samplings from planar to packed.
This will be used to calculate a possible color loss when converting
between 2 chromas.
- - - - -
bc66f244 by Thomas Guillem at 2025-02-06T05:38:08+00:00
fourcc: add vlc_chroma_description_IsYUV() helper
- - - - -
6697f564 by Thomas Guillem at 2025-02-06T05:38:08+00:00
fourcc: implement vlc_fourcc_IsYUV with subtype
- - - - -
34ef6133 by Thomas Guillem at 2025-02-06T05:38:08+00:00
fourcc: move vlc_fourcc_IsYUV() to static inline helper
- - - - -
4c3db623 by Thomas Guillem at 2025-02-06T05:38:08+00:00
fourcc: specify color_bits
This will be used with subtype to calculate a possible color loss when
converting between 2 chromas.
It's needed for GPU chromas and the few chromas where the pixel_size and
plane description are not enough to calculate the bits per color.
Example:
{ VLC_CODEC_ABGR, PACKED_FMT(RGB, 4, 32, 8) },
{ VLC_CODEC_RGBA10LE, PACKED_FMT(RGB, 4, 32, 10) },
{ VLC_CODEC_VUYA, PACKED_FMT(YUV444, 4, 32, 8) },
{ VLC_CODEC_Y210, PACKED_FMT(YUV422, 4, 32, 10) },
Same buffer size but different color size.
It's an average for the few chromas with different color size, like
RGB565. In that case, color_bits = (5 + 6 + 5) / 3. It is also possible
to add a new color description array in the vlc_chroma_description_t for
a more precis color size definition.
- - - - -
2b898bb5 by Thomas Guillem at 2025-02-06T05:38:08+00:00
core: add chroma_probe API
The module API allows all "video converter" modules to list their chroma
conversions.
The user API allows to get a full list of all possibles chromas
conversion from an input chroma.
- - - - -
f8a267d7 by Thomas Guillem at 2025-02-06T05:38:08+00:00
modules: build chroma conversion table
- - - - -
7d9e993e by Thomas Guillem at 2025-02-06T05:38:08+00:00
avcodec: chroma: add a function to expose the table
- - - - -
546b809a by Thomas Guillem at 2025-02-06T05:38:08+00:00
swscale: build chroma conversion table
Using the avcodec/chroma.c table.
- - - - -
8bad0200 by Thomas Guillem at 2025-02-06T05:38:08+00:00
opengl: interop_sw: fetch fallback when needed
- - - - -
3cebf54e by Thomas Guillem at 2025-02-06T05:38:08+00:00
fourcc: use chroma_probe from vlc_fourcc_Get*Fallback()
Remove the not up to date chroma fallback list. Use directly the
vlc_chroma_probe.h API to get the list of chroma fallbacks.
The downside is that vlc_fourcc_Get*Fallback() return now an allocated
array that should be checked and freed.
- - - - -
3a325614 by Thomas Guillem at 2025-02-06T05:38:08+00:00
chroma: chain: use chroma_probe
Remove the not up to date pi_allowed_chromas. Use directly the
vlc_chroma_probe.h API to get the list of chroma fallbacks.
Remove recursivity handling:
Before, the chain module could load an other chain module for
conversions requiring an extra step (OPAQUE -> I420 -> RV24 for
example).
Now that the conversion list is acquired from start, we can add each
converter filters in an iterative loop.
- - - - -
30 changed files:
- include/meson.build
- + include/vlc_chroma_probe.h
- include/vlc_fourcc.h
- modules/codec/avcodec/chroma.c
- modules/codec/avcodec/chroma.h
- modules/hw/d3d11/d3d11_filters.c
- modules/hw/d3d9/d3d9_filters.c
- modules/hw/mmal/converter.c
- modules/hw/nvdec/chroma.c
- modules/hw/vaapi/filters.c
- modules/hw/vdpau/chroma.c
- modules/isa/arm/neon/chroma_yuv.c
- modules/isa/arm/neon/yuv_rgb.c
- modules/video_chroma/chain.c
- modules/video_chroma/copy.h
- modules/video_chroma/cvpx.c
- modules/video_chroma/grey_yuv.c
- modules/video_chroma/gst_mem.c
- modules/video_chroma/i420_nv12.c
- modules/video_chroma/i420_rgb.c
- modules/video_chroma/i420_yuy2.c
- modules/video_chroma/i422_i420.c
- modules/video_chroma/i422_yuy2.c
- modules/video_chroma/rv32.c
- modules/video_chroma/swscale.c
- modules/video_chroma/yuvp.c
- modules/video_chroma/yuy2_i420.c
- modules/video_chroma/yuy2_i422.c
- modules/video_output/drm/planes.c
- modules/video_output/kva.c
The diff was not included because it is too large.
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/687f208072a75658d32fe0a7539c4785aa7e6cd0...3a325614232ee6605513519ad9242bd219f4282e
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/687f208072a75658d32fe0a7539c4785aa7e6cd0...3a325614232ee6605513519ad9242bd219f4282e
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list