FFmpeg
4.2.3
libavformat
av1.h
Go to the documentation of this file.
1
/*
2
* AV1 helper functions for muxers
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 AVFORMAT_AV1_H
22
#define AVFORMAT_AV1_H
23
24
#include <stdint.h>
25
26
#include "
avio.h
"
27
28
typedef
struct
AV1SequenceParameters
{
29
uint8_t
profile
;
30
uint8_t
level
;
31
uint8_t
tier
;
32
uint8_t
bitdepth
;
33
uint8_t
monochrome
;
34
uint8_t
chroma_subsampling_x
;
35
uint8_t
chroma_subsampling_y
;
36
uint8_t
chroma_sample_position
;
37
uint8_t
color_description_present_flag
;
38
uint8_t
color_primaries
;
39
uint8_t
transfer_characteristics
;
40
uint8_t
matrix_coefficients
;
41
uint8_t
color_range
;
42
}
AV1SequenceParameters
;
43
44
/**
45
* Filter out AV1 OBUs not meant to be present in ISOBMFF sample data and write
46
* the resulting bitstream to the provided AVIOContext.
47
*
48
* @param pb pointer to the AVIOContext where the filtered bitstream shall be
49
* written
50
* @param buf input data buffer
51
* @param size size of the input data buffer
52
*
53
* @return the amount of bytes written in case of success, a negative AVERROR
54
* code in case of failure
55
*/
56
int
ff_av1_filter_obus
(
AVIOContext
*pb,
const
uint8_t
*
buf
,
int
size
);
57
58
/**
59
* Filter out AV1 OBUs not meant to be present in ISOBMFF sample data and write
60
* the resulting bitstream to a newly allocated data buffer.
61
*
62
* @param pb pointer to the AVIOContext where the filtered bitstream shall be
63
* written
64
* @param buf input data buffer
65
* @param out pointer to pointer that will hold the allocated data buffer
66
* @param size size of the input data buffer. The size of the resulting output
67
data buffer will be written here
68
*
69
* @return the amount of bytes written in case of success, a negative AVERROR
70
* code in case of failure. On failure, out and size are unchanged
71
*/
72
int
ff_av1_filter_obus_buf
(
const
uint8_t
*
buf
,
uint8_t
**
out
,
int
*
size
);
73
74
/**
75
* Parses a Sequence Header from the the provided buffer.
76
*
77
* @param seq pointer to the AV1SequenceParameters where the parsed values will
78
* be written
79
* @param buf input data buffer
80
* @param size size in bytes of the input data buffer
81
*
82
* @return >= 0 in case of success, a negative AVERROR code in case of failure
83
*/
84
int
ff_av1_parse_seq_header
(
AV1SequenceParameters
*seq,
const
uint8_t
*
buf
,
int
size
);
85
86
/**
87
* Writes AV1 extradata (Sequence Header and Metadata OBUs) to the provided
88
* AVIOContext.
89
*
90
* @param pb pointer to the AVIOContext where the hvcC shall be written
91
* @param buf input data buffer
92
* @param size size in bytes of the input data buffer
93
*
94
* @return >= 0 in case of success, a negative AVERROR code in case of failure
95
*/
96
int
ff_isom_write_av1c
(
AVIOContext
*pb,
const
uint8_t
*
buf
,
int
size
);
97
98
#endif
/* AVFORMAT_AV1_H */
AVIOContext
Bytestream IO Context.
Definition:
avio.h:161
avio.h
Buffered I/O operations.
size
int size
Definition:
twinvq_data.h:11134
AV1SequenceParameters
Definition:
av1.h:28
ff_isom_write_av1c
int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size)
Writes AV1 extradata (Sequence Header and Metadata OBUs) to the provided AVIOContext.
Definition:
av1.c:323
AV1SequenceParameters::transfer_characteristics
uint8_t transfer_characteristics
Definition:
av1.h:39
AV1SequenceParameters::chroma_sample_position
uint8_t chroma_sample_position
Definition:
av1.h:36
AV1SequenceParameters::monochrome
uint8_t monochrome
Definition:
av1.h:33
AV1SequenceParameters::chroma_subsampling_x
uint8_t chroma_subsampling_x
Definition:
av1.h:34
uint8_t
uint8_t
Definition:
audio_convert.c:194
ff_av1_filter_obus
int ff_av1_filter_obus(AVIOContext *pb, const uint8_t *buf, int size)
Filter out AV1 OBUs not meant to be present in ISOBMFF sample data and write the resulting bitstream ...
Definition:
av1.c:31
AV1SequenceParameters::color_range
uint8_t color_range
Definition:
av1.h:41
AV1SequenceParameters::color_description_present_flag
uint8_t color_description_present_flag
Definition:
av1.h:37
ff_av1_filter_obus_buf
int ff_av1_filter_obus_buf(const uint8_t *buf, uint8_t **out, int *size)
Filter out AV1 OBUs not meant to be present in ISOBMFF sample data and write the resulting bitstream ...
Definition:
av1.c:61
buf
void * buf
Definition:
avisynth_c.h:766
ff_av1_parse_seq_header
int ff_av1_parse_seq_header(AV1SequenceParameters *seq, const uint8_t *buf, int size)
Parses a Sequence Header from the the provided buffer.
Definition:
av1.c:293
AV1SequenceParameters::color_primaries
uint8_t color_primaries
Definition:
av1.h:38
AV1SequenceParameters::chroma_subsampling_y
uint8_t chroma_subsampling_y
Definition:
av1.h:35
AV1SequenceParameters::level
uint8_t level
Definition:
av1.h:30
AV1SequenceParameters::tier
uint8_t tier
Definition:
av1.h:31
out
FILE * out
Definition:
movenc.c:54
AV1SequenceParameters::matrix_coefficients
uint8_t matrix_coefficients
Definition:
av1.h:40
AV1SequenceParameters::bitdepth
uint8_t bitdepth
Definition:
av1.h:32
AV1SequenceParameters::profile
uint8_t profile
Definition:
av1.h:29
Generated on Fri May 22 2020 08:56:04 for FFmpeg by
1.8.13