duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

ambient_viewing_environment.h (2585B)


      1 /*
      2  * Copyright (c) 2023 Jan Ekström <jeebjp@gmail.com>
      3  *
      4  * This file is part of FFmpeg.
      5  *
      6  * FFmpeg is free software; you can redistribute it and/or
      7  * modify it under the terms of the GNU Lesser General Public
      8  * License as published by the Free Software Foundation; either
      9  * version 2.1 of the License, or (at your option) any later version.
     10  *
     11  * FFmpeg is distributed in the hope that it will be useful,
     12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     14  * Lesser General Public License for more details.
     15  *
     16  * You should have received a copy of the GNU Lesser General Public
     17  * License along with FFmpeg; if not, write to the Free Software
     18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     19  */
     20 
     21 #ifndef AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H
     22 #define AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H
     23 
     24 #include <stddef.h>
     25 #include "frame.h"
     26 #include "rational.h"
     27 
     28 /**
     29  * Ambient viewing environment metadata as defined by H.274. The values are
     30  * saved in AVRationals so that they keep their exactness, while allowing for
     31  * easy access to a double value with f.ex. av_q2d.
     32  *
     33  * @note sizeof(AVAmbientViewingEnvironment) is not part of the public ABI, and
     34  *       it must be allocated using av_ambient_viewing_environment_alloc.
     35  */
     36 typedef struct AVAmbientViewingEnvironment {
     37     /**
     38      * Environmental illuminance of the ambient viewing environment in lux.
     39      */
     40     AVRational ambient_illuminance;
     41 
     42     /**
     43      * Normalized x chromaticity coordinate of the environmental ambient light
     44      * in the nominal viewing environment according to the CIE 1931 definition
     45      * of x and y as specified in ISO/CIE 11664-1.
     46      */
     47     AVRational ambient_light_x;
     48 
     49     /**
     50      * Normalized y chromaticity coordinate of the environmental ambient light
     51      * in the nominal viewing environment according to the CIE 1931 definition
     52      * of x and y as specified in ISO/CIE 11664-1.
     53      */
     54     AVRational ambient_light_y;
     55 } AVAmbientViewingEnvironment;
     56 
     57 /**
     58  * Allocate an AVAmbientViewingEnvironment structure.
     59  *
     60  * @return the newly allocated struct or NULL on failure
     61  */
     62 AVAmbientViewingEnvironment *av_ambient_viewing_environment_alloc(size_t *size);
     63 
     64 /**
     65  * Allocate and add an AVAmbientViewingEnvironment structure to an existing
     66  * AVFrame as side data.
     67  *
     68  * @return the newly allocated struct, or NULL on failure
     69  */
     70 AVAmbientViewingEnvironment *av_ambient_viewing_environment_create_side_data(AVFrame *frame);
     71 
     72 #endif /* AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H */