Commits on Source (8)
-
We store the ICC profile as part of the (ancillary) data allocation, using a trailing unsized array. This is because we need to copy it in and out of various libraries anyway, to avoid having to expose things like AVBufferRef. The (as of writing) current ICC specification can be found at https://www.color.org/specification/ICC.1-2022-05.pdf
ea89d080 -
d986d36b
-
This implementation relies on the helper function jpeg_read_icc_profile which was introduced in libjpeg-turbo v1.5.90. Its absence from other versions of libjpeg means we may wish to copy this helper function into our own code in the future. But for now, keep it simple and avoid unnecessary bloat.
954c1125 -
Current libpng always has, and hopefully, always will return uncompressed ICC profiles, denoted with PNG_COMPRESSION_TYPE_BASE.
7669876f -
It might be cleaner to somehow enumerate all ancillaries and forward them to the block. But for now, just do it for ICC profiles specifically.
c4ae02f6 -
This is mainly designed to enable the use case brought forth by demux/image.c, which forwards this metadata to the decoded blocks, which in turn get forwarded through the rawvideo decoder.
ac861b47 -
Straightforward. Since pl_icc_profile_compute_signature is fast, we can call it on every frame without real worry. This is usually only relevant for still images anyways.
489f7045 -
This refernces uint32_t without include, breaking this header if included before others.
77bf795c
Showing
- include/vlc_ancillary.h 2 additions, 0 deletionsinclude/vlc_ancillary.h
- include/vlc_es.h 12 additions, 0 deletionsinclude/vlc_es.h
- modules/codec/avcodec/video.c 11 additions, 0 deletionsmodules/codec/avcodec/video.c
- modules/codec/jpeg.c 23 additions, 0 deletionsmodules/codec/jpeg.c
- modules/codec/png.c 27 additions, 0 deletionsmodules/codec/png.c
- modules/codec/rawvideo.c 5 additions, 0 deletionsmodules/codec/rawvideo.c
- modules/demux/image.c 6 additions, 0 deletionsmodules/demux/image.c
- modules/video_output/libplacebo/display.c 11 additions, 0 deletionsmodules/video_output/libplacebo/display.c