FFmpeg
libavutil
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
24
AVDOVIDecoderConfigurationRecord
*
av_dovi_alloc
(
size_t
*
size
)
25
{
26
AVDOVIDecoderConfigurationRecord
*dovi =
27
av_mallocz
(
sizeof
(
AVDOVIDecoderConfigurationRecord
));
28
if
(!dovi)
29
return
NULL
;
30
31
if
(
size
)
32
*
size
=
sizeof
(*dovi);
33
34
return
dovi;
35
}
36
37
typedef
struct
AVDOVIMetadataInternal
{
38
AVDOVIMetadata
metadata
;
39
AVDOVIRpuDataHeader
header
;
40
AVDOVIDataMapping
mapping
;
41
AVDOVIColorMetadata
color
;
42
}
AVDOVIMetadataInternal
;
43
44
AVDOVIMetadata
*
av_dovi_metadata_alloc
(
size_t
*
size
)
45
{
46
AVDOVIMetadataInternal
*dovi =
av_mallocz
(
sizeof
(
AVDOVIMetadataInternal
));
47
if
(!dovi)
48
return
NULL
;
49
50
if
(
size
)
51
*
size
=
sizeof
(*dovi);
52
53
dovi->
metadata
= (
struct
AVDOVIMetadata
) {
54
.
header_offset
= offsetof(
AVDOVIMetadataInternal
,
header
),
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:509
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:254
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
Generated on Tue Feb 28 2023 21:34:12 for FFmpeg by
1.8.17