FFmpeg
Loading...
Searching...
No Matches
sei.h
Go to the documentation of this file.
1/*
2 * HEVC Supplementary Enhancement Information messages
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 AVCODEC_HEVC_SEI_H
22#define AVCODEC_HEVC_SEI_H
23
24#include <stdint.h>
25
26#include "libavutil/buffer.h"
27
28#include "libavcodec/get_bits.h"
30#include "libavcodec/sei.h"
31
32#include "hevc.h"
33
34
39
40typedef struct HEVCSEIPictureHash {
41 uint8_t md5[3][16];
42 uint8_t is_md5;
44
52
56
61
62typedef struct HEVCSEITimeCode {
64 uint8_t num_clock_ts;
67 uint8_t counting_type[3];
70 uint8_t cnt_dropped_flag[3];
71 uint16_t n_frames[3];
72 uint8_t seconds_value[3];
73 uint8_t minutes_value[3];
74 uint8_t hours_value[3];
75 uint8_t seconds_flag[3];
76 uint8_t minutes_flag[3];
77 uint8_t hours_flag[3];
81
98
105
115
116struct HEVCParamSets;
117
119 const struct HEVCParamSets *ps, enum HEVCNALUnitType type);
120
121/**
122 * Reset SEI values that are stored on the Context.
123 * e.g. Caption data that was extracted during NAL
124 * parsing.
125 *
126 * @param sei HEVCSEI.
127 */
128static inline void ff_hevc_reset_sei(HEVCSEI *sei)
129{
130 sei->timecode.present = 0;
131 sei->tdrdi.present = 0;
132 ff_h2645_sei_reset(&sei->common);
133}
134
135#endif /* AVCODEC_HEVC_SEI_H */
int32_t
refcounted data buffer API
static int FUNC sei(CodedBitstreamContext *ctx, RWContext *rw, H264RawSEI *current)
#define s(width, name)
Definition cbs_vp9.c:198
bitstream reader API header.
void ff_h2645_sei_reset(H2645SEI *s)
Definition h2645_sei.c:703
int ff_hevc_decode_nal_sei(GetBitContext *gb, void *logctx, HEVCSEI *s, const struct HEVCParamSets *ps, enum HEVCNALUnitType type)
static void ff_hevc_reset_sei(HEVCSEI *sei)
Reset SEI values that are stored on the Context.
Definition sei.h:128
HEVC_SEI_PicStructType
Definition sei.h:35
@ HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING
Definition sei.h:36
@ HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING
Definition sei.h:37
cl_device_type type
HEVCNALUnitType
Table 7-1 – NAL unit type codes and NAL unit type classes in T-REC-H.265-201802.
Definition hevc.h:28
int preferred_transfer_characteristics
Definition sei.h:59
int quincunx_subsampling
Definition sei.h:49
int arrangement_type
Definition sei.h:47
int current_frame_is_frame0_flag
Definition sei.h:50
int content_interpretation_type
Definition sei.h:48
uint8_t md5[3][16]
Definition sei.h:41
uint8_t is_md5
Definition sei.h:42
uint8_t has_recovery_poc
Definition sei.h:103
uint8_t broken_link_flag
Definition sei.h:102
int16_t recovery_poc_cnt
Definition sei.h:100
uint8_t exact_match_flag
Definition sei.h:101
uint8_t num_ref_displays
Definition sei.h:86
uint8_t exponent_ref_display_width[32]
Definition sei.h:89
uint8_t prec_ref_display_width
Definition sei.h:83
int present
Definition sei.h:96
uint8_t prec_ref_viewing_dist
Definition sei.h:85
uint16_t left_view_id[32]
Definition sei.h:87
uint8_t exponent_ref_viewing_distance[32]
Definition sei.h:91
uint8_t three_dimensional_reference_displays_extension_flag
Definition sei.h:95
int16_t num_sample_shift[32]
Definition sei.h:94
uint64_t mantissa_ref_display_width[32]
Definition sei.h:90
uint64_t mantissa_ref_viewing_distance[32]
Definition sei.h:92
uint8_t ref_viewing_distance_flag
Definition sei.h:84
uint16_t right_view_id[32]
Definition sei.h:88
uint8_t additional_shift_present_flag[32]
Definition sei.h:93
uint8_t full_timestamp_flag[3]
Definition sei.h:68
uint8_t clock_timestamp_flag[3]
Definition sei.h:65
uint8_t hours_flag[3]
Definition sei.h:77
uint8_t seconds_flag[3]
Definition sei.h:75
uint8_t num_clock_ts
Definition sei.h:64
uint8_t time_offset_length[3]
Definition sei.h:78
uint8_t counting_type[3]
Definition sei.h:67
int present
Definition sei.h:63
uint8_t hours_value[3]
Definition sei.h:74
uint8_t seconds_value[3]
Definition sei.h:72
uint8_t minutes_value[3]
Definition sei.h:73
int32_t time_offset_value[3]
Definition sei.h:79
uint8_t minutes_flag[3]
Definition sei.h:76
uint16_t n_frames[3]
Definition sei.h:71
uint8_t discontinuity_flag[3]
Definition sei.h:69
uint8_t units_field_based_flag[3]
Definition sei.h:66
uint8_t cnt_dropped_flag[3]
Definition sei.h:70
Definition sei.h:106
HEVCSEIPictureTiming picture_timing
Definition sei.h:109
HEVCSEIRecoveryPoint recovery_point
Definition sei.h:113
H2645SEI common
Definition sei.h:107
HEVCSEITDRDI tdrdi
Definition sei.h:112
HEVCSEIPictureHash picture_hash
Definition sei.h:108
int active_seq_parameter_set_id
Definition sei.h:110
HEVCSEITimeCode timecode
Definition sei.h:111