90 else if (
data[0] == 0x01)
105 char constraints[8] =
"";
119 uint32_t profile_compatibility_flags = 0;
120 uint8_t high_nibble = 0;
128 if (rbsp_size < 13) {
139 tier = (rbsp_buf[1] & 0x20) == 0 ?
'L' :
'H';
144 profile_compatibility_flags =
AV_RB32(rbsp_buf + 2);
146 profile_compatibility_flags = ((profile_compatibility_flags & 0x55555555U) << 1) | ((profile_compatibility_flags >> 1) & 0x55555555U);
147 profile_compatibility_flags = ((profile_compatibility_flags & 0x33333333U) << 2) | ((profile_compatibility_flags >> 2) & 0x33333333U);
148 profile_compatibility_flags = ((profile_compatibility_flags & 0x0F0F0F0FU) << 4) | ((profile_compatibility_flags >> 4) & 0x0F0F0F0FU);
149 profile_compatibility_flags = ((profile_compatibility_flags & 0x00FF00FFU) << 8) | ((profile_compatibility_flags >> 8) & 0x00FF00FFU);
150 profile_compatibility = (profile_compatibility_flags << 16) | (profile_compatibility_flags >> 16);
156 high_nibble = rbsp_buf[7] >> 4;
157 snprintf(constraints,
sizeof(constraints),
158 high_nibble ?
"%02x.%x" :
"%02x",
159 rbsp_buf[6], high_nibble);
161 level = rbsp_buf[12];
172 constraints[0] !=
'\0') {
175 profile_compatibility,
tier,
level, constraints);
int ff_av1_parse_seq_header(AV1SequenceParameters *seq, const uint8_t *buf, int size)
Parses a Sequence Header from the the provided buffer.
void av_bprintf(AVBPrint *buf, const char *fmt,...)
#define i(width, name, range_min, range_max)
static const struct codec_string codecs[]
int ff_make_codec_str(void *logctx, const AVCodecParameters *par, const AVRational *frame_rate, struct AVBPrint *out)
Make a RFC 4281/6381 like string describing a codec.
static void set_vp9_codec_str(void *logctx, const AVCodecParameters *par, const AVRational *frame_rate, AVBPrint *out)
#define AV_PROFILE_UNKNOWN
AVCodecID
Identify the syntax and semantics of the bitstream.
@ AV_CODEC_ID_MP3
preferred ID for decoding MPEG audio layer 1, 2 or 3
int av_mime_codec_str(const AVCodecParameters *par, AVRational frame_rate, struct AVBPrint *out)
Make a RFC 4281/6381 like string describing a codec for MIME types.
#define AV_LOG_WARNING
Something somehow does not look correct.
#define av_fourcc2str(fourcc)
int ff_lcvec_parse_config_record(LCEVCDecoderConfigurationRecord *lvcc, const uint8_t *buf, int size, void *logctx)
#define MKTAG(a, b, c, d)
Memory handling functions.
uint8_t * ff_nal_unit_extract_rbsp(const uint8_t *src, uint32_t src_len, uint32_t *dst_len, int header_len)
Utilities for rational number calculation.
uint8_t color_description_present_flag
uint8_t chroma_sample_position
uint8_t transfer_characteristics
uint8_t chroma_subsampling_x
uint8_t chroma_subsampling_y
uint8_t matrix_coefficients
This struct describes the properties of an encoded stream.
int extradata_size
Size of the extradata content in bytes.
int profile
Codec-specific bitstream restrictions that the stream conforms to.
uint32_t codec_tag
Additional information about the codec (corresponds to the AVI FOURCC).
uint8_t * extradata
Extra binary data needed for initializing the decoder, codec-dependent.
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
Rational number (pair of numerator and denominator).
int ff_isom_get_vpcc_features(void *logctx, const AVCodecParameters *par, const uint8_t *data, int len, const AVRational *frame_rate, VPCC *vpcc)
internal header for VPx codec configuration utilities.