FFmpeg
dovi_meta.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Jun Zhao<barryjzhao@tencent.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 #include "dovi_meta.h"
22 #include "mem.h"
23 
25 {
28  if (!dovi)
29  return NULL;
30 
31  if (size)
32  *size = sizeof(*dovi);
33 
34  return dovi;
35 }
36 
37 typedef struct AVDOVIMetadataInternal {
43 
45 {
47  if (!dovi)
48  return NULL;
49 
50  if (size)
51  *size = sizeof(*dovi);
52 
53  dovi->metadata = (struct AVDOVIMetadata) {
55  .mapping_offset = offsetof(AVDOVIMetadataInternal, mapping),
56  .color_offset = offsetof(AVDOVIMetadataInternal, color),
57  };
58 
59  return &dovi->metadata;
60 }
AVDOVIMetadataInternal
Definition: dovi_meta.c:37
color
Definition: vf_paletteuse.c:601
AVDOVIMetadataInternal::color
AVDOVIColorMetadata color
Definition: dovi_meta.c:41
AVDOVIRpuDataHeader
Dolby Vision RPU data header.
Definition: dovi_meta.h:76
av_dovi_alloc
AVDOVIDecoderConfigurationRecord * av_dovi_alloc(size_t *size)
Allocate a AVDOVIDecoderConfigurationRecord structure and initialize its fields to default values.
Definition: dovi_meta.c:24
AVDOVIMetadataInternal::mapping
AVDOVIDataMapping mapping
Definition: dovi_meta.c:40
AVDOVIMetadata
Combined struct representing a combination of header, mapping and color metadata, for attaching to fr...
Definition: dovi_meta.h:197
NULL
#define NULL
Definition: coverity.c:32
AVDOVIMetadataInternal::metadata
AVDOVIMetadata metadata
Definition: dovi_meta.c:38
AVDOVIMetadata::header_offset
size_t header_offset
Offset in bytes from the beginning of this structure at which the respective structs start.
Definition: dovi_meta.h:202
size
int size
Definition: twinvq_data.h:10344
av_dovi_metadata_alloc
AVDOVIMetadata * av_dovi_metadata_alloc(size_t *size)
Allocate an AVDOVIMetadata structure and initialize its fields to default values.
Definition: dovi_meta.c:44
AVDOVIMetadataInternal::header
AVDOVIRpuDataHeader header
Definition: dovi_meta.c:39
header
static const uint8_t header[24]
Definition: sdr2.c:67
av_mallocz
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
Definition: mem.c:264
dovi_meta.h
AVDOVIColorMetadata
Dolby Vision RPU colorspace metadata parameters.
Definition: dovi_meta.h:157
mem.h
AVDOVIDataMapping
Dolby Vision RPU data mapping parameters.
Definition: dovi_meta.h:139
AVDOVIDecoderConfigurationRecord
Definition: dovi_meta.h:52