25 HEVCSEI *
sei,
int is_nalff,
int nal_length_size,
26 int err_recognition,
int apply_defdispwin,
void *logctx)
37 for (i = 0; i < pkt.
nb_nals; i++) {
78 HEVCSEI *
sei,
int *is_nalff,
int *nal_length_size,
79 int err_recognition,
int apply_defdispwin,
void *logctx)
86 if (size > 3 && (data[0] || data[1] || data[2] > 1)) {
91 int i, j, num_arrays, nal_len_size;
96 nal_len_size = (bytestream2_get_byte(&gb) & 3) + 1;
97 num_arrays = bytestream2_get_byte(&gb);
101 *nal_length_size = 2;
104 for (i = 0; i < num_arrays; i++) {
105 int type = bytestream2_get_byte(&gb) & 0x3f;
106 int cnt = bytestream2_get_be16(&gb);
108 for (j = 0; j < cnt; j++) {
110 int nalsize = bytestream2_peek_be16(&gb) + 2;
113 "Invalid NAL unit size in extradata.\n");
118 *nal_length_size, err_recognition, apply_defdispwin,
122 "Decoding nal unit %d %d from hvcC failed\n",
132 *nal_length_size = nal_len_size;
136 err_recognition, apply_defdispwin, logctx);
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_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)
Split an input packet into NAL units.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
ptrdiff_t const GLvoid * data
static av_always_inline void bytestream2_init(GetByteContext *g, const uint8_t *buf, int buf_size)
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)
void ff_h2645_packet_uninit(H2645Packet *pkt)
Free all the allocated memory in the packet.
#define AV_LOG_VERBOSE
Detailed information.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
int ff_hevc_decode_nal_vps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps)
static av_always_inline void bytestream2_skip(GetByteContext *g, unsigned int size)
static av_always_inline unsigned int bytestream2_get_bytes_left(GetByteContext *g)
#define AV_EF_EXPLODE
abort decoding on minor error detection
int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps)
int ff_hevc_decode_nal_sps(GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps, int apply_defdispwin)
static int FUNC() sei(CodedBitstreamContext *ctx, RWContext *rw, H264RawSEI *current)
int ff_hevc_decode_nal_sei(GetBitContext *gb, void *logctx, HEVCSEI *s, const HEVCParamSets *ps, int type)