FFmpeg
|
#include "avassert.h"
#include "hdr_dynamic_metadata.h"
#include "mem.h"
#include "libavcodec/defs.h"
#include "libavcodec/get_bits.h"
#include "libavcodec/put_bits.h"
Go to the source code of this file.
Functions | |
AVDynamicHDRPlus * | av_dynamic_hdr_plus_alloc (size_t *size) |
Allocate an AVDynamicHDRPlus structure and set its fields to default values. More... | |
AVDynamicHDRPlus * | av_dynamic_hdr_plus_create_side_data (AVFrame *frame) |
Allocate a complete AVDynamicHDRPlus and add it to the frame. More... | |
int | av_dynamic_hdr_plus_from_t35 (AVDynamicHDRPlus *s, const uint8_t *data, size_t size) |
Parse the user data registered ITU-T T.35 to AVbuffer (AVDynamicHDRPlus). More... | |
int | av_dynamic_hdr_plus_to_t35 (const AVDynamicHDRPlus *s, uint8_t **data, size_t *size) |
Serialize dynamic HDR10+ metadata to a user data registered ITU-T T.35 buffer, excluding the first 48 bytes of the header, and beginning with the application mode. More... | |
Variables | |
static const int64_t | luminance_den = 1 |
Copyright (c) 2018 Mohammad Izadi <moh.izadi at gmail.com> More... | |
static const int32_t | peak_luminance_den = 15 |
static const int64_t | rgb_den = 100000 |
static const int32_t | fraction_pixel_den = 1000 |
static const int32_t | knee_point_den = 4095 |
static const int32_t | bezier_anchor_den = 1023 |
static const int32_t | saturation_weight_den = 8 |
AVDynamicHDRPlus* av_dynamic_hdr_plus_alloc | ( | size_t * | size | ) |
Allocate an AVDynamicHDRPlus structure and set its fields to default values.
The resulting struct can be freed using av_freep().
Definition at line 36 of file hdr_dynamic_metadata.c.
AVDynamicHDRPlus* av_dynamic_hdr_plus_create_side_data | ( | AVFrame * | frame | ) |
Allocate a complete AVDynamicHDRPlus and add it to the frame.
frame | The frame which side data is added to. |
Definition at line 48 of file hdr_dynamic_metadata.c.
Referenced by export_itut_t35(), and libdav1d_receive_frame().
int av_dynamic_hdr_plus_from_t35 | ( | AVDynamicHDRPlus * | s, |
const uint8_t * | data, | ||
size_t | size | ||
) |
Parse the user data registered ITU-T T.35 to AVbuffer (AVDynamicHDRPlus).
The T.35 buffer must begin with the application mode, skipping the country code, terminal provider codes, and application identifier.
s | A pointer containing the decoded AVDynamicHDRPlus structure. |
data | The byte array containing the raw ITU-T T.35 data. |
size | Size of the data array in bytes. |
Definition at line 61 of file hdr_dynamic_metadata.c.
Referenced by export_itut_t35(), and libdav1d_receive_frame().
int av_dynamic_hdr_plus_to_t35 | ( | const AVDynamicHDRPlus * | s, |
uint8_t ** | data, | ||
size_t * | size | ||
) |
Serialize dynamic HDR10+ metadata to a user data registered ITU-T T.35 buffer, excluding the first 48 bytes of the header, and beginning with the application mode.
s | A pointer containing the decoded AVDynamicHDRPlus structure. |
data[in,out] | A pointer to pointer to a byte buffer to be filled with the serialized metadata. If *data is NULL, a buffer be will be allocated and a pointer to it stored in its place. The caller assumes ownership of the buffer. May be NULL, in which case the function will only store the required buffer size in *size. |
size[in,out] | A pointer to a size to be set to the returned buffer's size. If *data is not NULL, *size must contain the size of the input buffer. May be NULL only if *data is NULL. |
Buffer size per CTA-861-H p.253-254: 48 header bits (excluded from the serialized payload) 8 bits for application_mode 2 bits for num_windows 153 bits for window geometry, for each window above 1 27 bits for targeted_system_display_maximum_luminance 1-2511 bits for targeted system display peak luminance information 82-442 bits per window for pixel distribution information 1-2511 bits for mastering display peak luminance information 1-179 bits per window for tonemapping information 1-7 bits per window for color saturation mapping information Total: 123-7249 bits, excluding trimmed header bits
Definition at line 239 of file hdr_dynamic_metadata.c.
Referenced by mkv_write_block().
|
static |
Copyright (c) 2018 Mohammad Izadi <moh.izadi at gmail.com>
This file is part of FFmpeg.
FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
FFmpeg is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Definition at line 28 of file hdr_dynamic_metadata.c.
Referenced by av_dynamic_hdr_plus_from_t35(), and av_dynamic_hdr_plus_to_t35().
|
static |
Definition at line 29 of file hdr_dynamic_metadata.c.
Referenced by av_dynamic_hdr_plus_from_t35(), and av_dynamic_hdr_plus_to_t35().
|
static |
Definition at line 30 of file hdr_dynamic_metadata.c.
Referenced by av_dynamic_hdr_plus_from_t35(), and av_dynamic_hdr_plus_to_t35().
|
static |
Definition at line 31 of file hdr_dynamic_metadata.c.
Referenced by av_dynamic_hdr_plus_from_t35(), and av_dynamic_hdr_plus_to_t35().
|
static |
Definition at line 32 of file hdr_dynamic_metadata.c.
Referenced by av_dynamic_hdr_plus_from_t35(), and av_dynamic_hdr_plus_to_t35().
|
static |
Definition at line 33 of file hdr_dynamic_metadata.c.
Referenced by av_dynamic_hdr_plus_from_t35(), and av_dynamic_hdr_plus_to_t35().
|
static |
Definition at line 34 of file hdr_dynamic_metadata.c.
Referenced by av_dynamic_hdr_plus_from_t35(), and av_dynamic_hdr_plus_to_t35().