[FFmpeg-devel] [PATCH v4 18/21] cbs_h265: Add functions to turn HDR metadata into SEI

Vittorio Giovara vittorio.giovara at gmail.com
Tue Feb 25 06:32:58 EET 2020


On Mon, Feb 24, 2020 at 5:18 PM Mark Thompson <sw at jkqxz.net> wrote:

> On 24/02/2020 21:28, Vittorio Giovara wrote:
> > On Sun, Feb 23, 2020 at 6:41 PM Mark Thompson <sw at jkqxz.net> wrote:
> >
> >> ---
> >>  libavcodec/Makefile   |  2 +-
> >>  libavcodec/cbs_h265.c | 99 +++++++++++++++++++++++++++++++++++++++++++
> >>  libavcodec/cbs_h265.h | 18 ++++++++
> >>  3 files changed, 118 insertions(+), 1 deletion(-)
> >>  create mode 100644 libavcodec/cbs_h265.c
> >>
> >> ...
> >> +void
> >>
> ff_cbs_h265_fill_sei_mastering_display(H265RawSEIMasteringDisplayColourVolume
> >> *mdcv,
> >> +                                            const
> >> AVMasteringDisplayMetadata *mdm)
> >> +{
> >> +    memset(mdcv, 0, sizeof(*mdcv));
> >> +
> >> +    if (mdm->has_primaries) {
> >> +        // The values in the metadata structure are fractions between 0
> >> and 1,
> >> +        // while the SEI message contains fixed-point values with an
> >> increment
> >> +        // of 0.00002.  So, scale up by 50000 to convert between them.
> >> +
> >> +        for (int a = 0; a < 3; a++) {
> >> +            // The metadata structure stores this in RGB order, but the
> >> SEI
> >> +            // wants it in GBR order.
> >> +            int b = (a + 1) % 3;
> >>
> >
> > this is a pretty minor comment, but do you think you could use the more
> > legible way present in other parts of the codebase?
> >         const int mapping[3] = {2, 0, 1};
> > rather than (a + 1) % 3;
>
> Ok.
>
> Is there a specific reason to make it on the stack rather than static?  I
> see it's there in hevcdec.
>

No particular reason, I just find it more readable, if you think it's a
really bad practice then you could keep the code as is.
Thanks
-- 
Vittorio


More information about the ffmpeg-devel mailing list