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)
39 for (
i = 0;
i <
pkt.nb_nals;
i++) {
80 HEVCSEI *
sei,
int *is_nalff,
int *nal_length_size,
81 int err_recognition,
int apply_defdispwin,
void *logctx)
95 int i, j, num_arrays, nal_len_size;
100 nal_len_size = (bytestream2_get_byte(&gb) & 3) + 1;
101 num_arrays = bytestream2_get_byte(&gb);
105 *nal_length_size = 2;
108 for (
i = 0;
i < num_arrays;
i++) {
109 int type = bytestream2_get_byte(&gb) & 0x3f;
110 int cnt = bytestream2_get_be16(&gb);
112 for (j = 0; j < cnt; j++) {
114 int nalsize = bytestream2_peek_be16(&gb) + 2;
117 "Invalid NAL unit size in extradata.\n");
122 *nal_length_size, err_recognition, apply_defdispwin,
126 "Decoding nal unit %d %d from hvcC failed\n",
136 *nal_length_size = nal_len_size;
140 err_recognition, apply_defdispwin, logctx);
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
@ H2645_FLAG_SMALL_PADDING
void ff_h2645_packet_uninit(H2645Packet *pkt)
Free all the allocated memory in the packet.
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)
#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
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
int ff_hevc_decode_nal_vps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps)
int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps)
static int FUNC() sei(CodedBitstreamContext *ctx, RWContext *rw, H264RawSEI *current)
static av_always_inline int bytestream2_get_bytes_left(GetByteContext *g)
#define i(width, name, range_min, range_max)
int ff_hevc_decode_nal_sps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps, unsigned nuh_layer_id, int apply_defdispwin)
static av_always_inline void bytestream2_init(GetByteContext *g, const uint8_t *buf, int buf_size)
#define flags(name, subs,...)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, void *logctx, int nal_length_size, enum AVCodecID codec_id, int flags)
Split an input packet into NAL units.
int ff_hevc_decode_nal_sei(GetBitContext *gb, void *logctx, HEVCSEI *s, const HEVCParamSets *ps, enum HEVCNALUnitType type)