Go to the documentation of this file.
25 HEVCSEI *
sei,
int is_nalff,
int nal_length_size,
26 int err_recognition,
int apply_defdispwin,
void *logctx)
38 for (
i = 0;
i <
pkt.nb_nals;
i++) {
81 HEVCSEI *
sei,
int *is_nalff,
int *nal_length_size,
82 int err_recognition,
int apply_defdispwin,
void *logctx)
94 int i, j, num_arrays, nal_len_size;
99 nal_len_size = (bytestream2_get_byte(&gb) & 3) + 1;
100 num_arrays = bytestream2_get_byte(&gb);
104 *nal_length_size = 2;
107 for (
i = 0;
i < num_arrays;
i++) {
108 int type = bytestream2_get_byte(&gb) & 0x3f;
109 int cnt = bytestream2_get_be16(&gb);
111 for (j = 0; j < cnt; j++) {
113 int nalsize = bytestream2_peek_be16(&gb) + 2;
116 "Invalid NAL unit size in extradata.\n");
121 *nal_length_size, err_recognition, apply_defdispwin,
125 "Decoding nal unit %d %d from hvcC failed\n",
135 *nal_length_size = nal_len_size;
139 err_recognition, apply_defdispwin, logctx);
void ff_h2645_packet_uninit(H2645Packet *pkt)
Free all the allocated memory in the packet.
#define AV_LOG_VERBOSE
Detailed information.
static av_always_inline void bytestream2_skip(GetByteContext *g, unsigned int size)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
static int hevc_decode_nal_units(const uint8_t *buf, int buf_size, HEVCParamSets *ps, HEVCSEI *sei, int is_nalff, int nal_length_size, int err_recognition, int apply_defdispwin, void *logctx)
int ff_hevc_decode_nal_sei(GetBitContext *gb, void *logctx, HEVCSEI *s, const HEVCParamSets *ps, enum HEVCNALUnitType type)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
int ff_hevc_decode_extradata(const uint8_t *data, int size, HEVCParamSets *ps, HEVCSEI *sei, int *is_nalff, int *nal_length_size, int err_recognition, int apply_defdispwin, void *logctx)
#define AV_EF_EXPLODE
abort decoding on minor error detection
static int FUNC() sei(CodedBitstreamContext *ctx, RWContext *rw, H264RawSEI *current)
static av_always_inline int bytestream2_get_bytes_left(GetByteContext *g)
int ff_hevc_decode_nal_sps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps, int apply_defdispwin)
int ff_hevc_decode_nal_vps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps)
int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, void *logctx, int is_nalff, int nal_length_size, enum AVCodecID codec_id, int small_padding, int use_ref)
Split an input packet into NAL units.
#define i(width, name, range_min, range_max)
static av_always_inline void bytestream2_init(GetByteContext *g, const uint8_t *buf, int buf_size)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps)