/* [DIRAC_STD] 10.3.2 Frame size. frame_size(video_params) */
/* [DIRAC_STD] custom_dimensions_flag */
if (get_bits1(gb)) {
- dsh->width = svq3_get_ue_golomb(gb); /* [DIRAC_STD] FRAME_WIDTH */
- dsh->height = svq3_get_ue_golomb(gb); /* [DIRAC_STD] FRAME_HEIGHT */
+ dsh->width = get_interleaved_ue_golomb(gb); /* [DIRAC_STD] FRAME_WIDTH */
+ dsh->height = get_interleaved_ue_golomb(gb); /* [DIRAC_STD] FRAME_HEIGHT */
}
/* [DIRAC_STD] 10.3.3 Chroma Sampling Format.
/* [DIRAC_STD] custom_chroma_format_flag */
if (get_bits1(gb))
/* [DIRAC_STD] CHROMA_FORMAT_INDEX */
- dsh->chroma_format = svq3_get_ue_golomb(gb);
+ dsh->chroma_format = get_interleaved_ue_golomb(gb);
if (dsh->chroma_format > 2) {
if (log_ctx)
av_log(log_ctx, AV_LOG_ERROR, "Unknown chroma format %d\n",
/* [DIRAC_STD] custom_scan_format_flag */
if (get_bits1(gb))
/* [DIRAC_STD] SOURCE_SAMPLING */
- dsh->interlaced = svq3_get_ue_golomb(gb);
+ dsh->interlaced = get_interleaved_ue_golomb(gb);
if (dsh->interlaced > 1)
return AVERROR_INVALIDDATA;
/* [DIRAC_STD] 10.3.5 Frame Rate. frame_rate(video_params) */
if (get_bits1(gb)) { /* [DIRAC_STD] custom_frame_rate_flag */
- dsh->frame_rate_index = svq3_get_ue_golomb(gb);
+ dsh->frame_rate_index = get_interleaved_ue_golomb(gb);
if (dsh->frame_rate_index > 10)
return AVERROR_INVALIDDATA;
if (!dsh->frame_rate_index) {
/* [DIRAC_STD] FRAME_RATE_NUMER */
- frame_rate.num = svq3_get_ue_golomb(gb);
+ frame_rate.num = get_interleaved_ue_golomb(gb);
/* [DIRAC_STD] FRAME_RATE_DENOM */
- frame_rate.den = svq3_get_ue_golomb(gb);
+ frame_rate.den = get_interleaved_ue_golomb(gb);
}
}
/* [DIRAC_STD] preset_frame_rate(video_params, index) */
* pixel_aspect_ratio(video_params) */
if (get_bits1(gb)) { /* [DIRAC_STD] custom_pixel_aspect_ratio_flag */
/* [DIRAC_STD] index */
- dsh->aspect_ratio_index = svq3_get_ue_golomb(gb);
+ dsh->aspect_ratio_index = get_interleaved_ue_golomb(gb);
if (dsh->aspect_ratio_index > 6)
return AVERROR_INVALIDDATA;
if (!dsh->aspect_ratio_index) {
- dsh->sample_aspect_ratio.num = svq3_get_ue_golomb(gb);
- dsh->sample_aspect_ratio.den = svq3_get_ue_golomb(gb);
+ dsh->sample_aspect_ratio.num = get_interleaved_ue_golomb(gb);
+ dsh->sample_aspect_ratio.den = get_interleaved_ue_golomb(gb);
}
}
/* [DIRAC_STD] Take value from Table 10.4 Available preset pixel
/* [DIRAC_STD] 10.3.7 Clean area. clean_area(video_params) */
if (get_bits1(gb)) { /* [DIRAC_STD] custom_clean_area_flag */
/* [DIRAC_STD] CLEAN_WIDTH */
- dsh->clean_width = svq3_get_ue_golomb(gb);
+ dsh->clean_width = get_interleaved_ue_golomb(gb);
/* [DIRAC_STD] CLEAN_HEIGHT */
- dsh->clean_height = svq3_get_ue_golomb(gb);
+ dsh->clean_height = get_interleaved_ue_golomb(gb);
/* [DIRAC_STD] CLEAN_LEFT_OFFSET */
- dsh->clean_left_offset = svq3_get_ue_golomb(gb);
+ dsh->clean_left_offset = get_interleaved_ue_golomb(gb);
/* [DIRAC_STD] CLEAN_RIGHT_OFFSET */
- dsh->clean_right_offset = svq3_get_ue_golomb(gb);
+ dsh->clean_right_offset = get_interleaved_ue_golomb(gb);
}
/* [DIRAC_STD] 10.3.8 Signal range. signal_range(video_params)
* AVCOL_RANGE_MPEG/JPEG values */
if (get_bits1(gb)) { /* [DIRAC_STD] custom_signal_range_flag */
/* [DIRAC_STD] index */
- dsh->pixel_range_index = svq3_get_ue_golomb(gb);
+ dsh->pixel_range_index = get_interleaved_ue_golomb(gb);
if (dsh->pixel_range_index > 4)
return AVERROR_INVALIDDATA;
// This assumes either fullrange or MPEG levels only
if (!dsh->pixel_range_index) {
- luma_offset = svq3_get_ue_golomb(gb);
- luma_depth = av_log2(svq3_get_ue_golomb(gb)) + 1;
- svq3_get_ue_golomb(gb); /* chroma offset */
- svq3_get_ue_golomb(gb); /* chroma excursion */
+ luma_offset = get_interleaved_ue_golomb(gb);
+ luma_depth = av_log2(get_interleaved_ue_golomb(gb)) + 1;
+ get_interleaved_ue_golomb(gb); /* chroma offset */
+ get_interleaved_ue_golomb(gb); /* chroma excursion */
dsh->color_range = luma_offset ? AVCOL_RANGE_MPEG
: AVCOL_RANGE_JPEG;
}
/* [DIRAC_STD] 10.3.9 Colour specification. colour_spec(video_params) */
if (get_bits1(gb)) { /* [DIRAC_STD] custom_colour_spec_flag */
/* [DIRAC_STD] index */
- idx = dsh->color_spec_index = svq3_get_ue_golomb(gb);
+ idx = dsh->color_spec_index = get_interleaved_ue_golomb(gb);
if (dsh->color_spec_index > 4)
return AVERROR_INVALIDDATA;
if (!dsh->color_spec_index) {
/* [DIRAC_STD] 10.3.9.1 Colour primaries */
if (get_bits1(gb)) {
- idx = svq3_get_ue_golomb(gb);
+ idx = get_interleaved_ue_golomb(gb);
if (idx < 3)
dsh->color_primaries = dirac_primaries[idx];
}
/* [DIRAC_STD] 10.3.9.2 Colour matrix */
if (get_bits1(gb)) {
- idx = svq3_get_ue_golomb(gb);
+ idx = get_interleaved_ue_golomb(gb);
if (!idx)
dsh->colorspace = AVCOL_SPC_BT709;
else if (idx == 1)
dsh->colorspace = AVCOL_SPC_BT470BG;
}
/* [DIRAC_STD] 10.3.9.3 Transfer function */
- if (get_bits1(gb) && !svq3_get_ue_golomb(gb))
+ if (get_bits1(gb) && !get_interleaved_ue_golomb(gb))
dsh->color_trc = AVCOL_TRC_BT709;
}
} else {
goto fail;
/* [DIRAC_SPEC] 10.1 Parse Parameters. parse_parameters() */
- version_major = svq3_get_ue_golomb(&gb);
- svq3_get_ue_golomb(&gb); /* version_minor */
- dsh->profile = svq3_get_ue_golomb(&gb);
- dsh->level = svq3_get_ue_golomb(&gb);
+ version_major = get_interleaved_ue_golomb(&gb);
+ get_interleaved_ue_golomb(&gb); /* version_minor */
+ dsh->profile = get_interleaved_ue_golomb(&gb);
+ dsh->level = get_interleaved_ue_golomb(&gb);
/* [DIRAC_SPEC] sequence_header() -> base_video_format as defined in
* 10.2 Base Video Format, table 10.1 Dirac predefined video formats */
- video_format = svq3_get_ue_golomb(&gb);
+ video_format = get_interleaved_ue_golomb(&gb);
if (log_ctx) {
if (version_major < 2)
/* [DIRAC_STD] picture_coding_mode shall be 0 for fields and 1 for frames
* currently only used to signal field coding */
- picture_coding_mode = svq3_get_ue_golomb(&gb);
+ picture_coding_mode = get_interleaved_ue_golomb(&gb);
if (picture_coding_mode != 0) {
if (log_ctx) {
av_log(log_ctx, AV_LOG_ERROR, "Unsupported picture coding mode %d",
const uint8_t *const scan = scan_patterns[type];
for (limit = (16 >> intra); index < 16; index = limit, limit += 8) {
- for (; (vlc = svq3_get_ue_golomb(gb)) != 0; index++) {
+ for (; (vlc = get_interleaved_ue_golomb(gb)) != 0; index++) {
int sign = (vlc & 1) ? 0 : -1;
vlc = vlc + 1 >> 1;
if (mode == PREDICT_MODE) {
dx = dy = 0;
} else {
- dy = svq3_get_se_golomb(&s->gb_slice);
- dx = svq3_get_se_golomb(&s->gb_slice);
+ dy = get_interleaved_se_golomb(&s->gb_slice);
+ dx = get_interleaved_se_golomb(&s->gb_slice);
if (dx == INVALID_VLC || dy == INVALID_VLC) {
av_log(s->avctx, AV_LOG_ERROR, "invalid MV vlc\n");
/* decode prediction codes for luma blocks */
for (i = 0; i < 16; i += 2) {
- vlc = svq3_get_ue_golomb(&s->gb_slice);
+ vlc = get_interleaved_ue_golomb(&s->gb_slice);
if (vlc >= 25) {
av_log(s->avctx, AV_LOG_ERROR,
if (!IS_INTRA16x16(mb_type) &&
(!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B)) {
- if ((vlc = svq3_get_ue_golomb(&s->gb_slice)) >= 48) {
+ if ((vlc = get_interleaved_ue_golomb(&s->gb_slice)) >= 48) {
av_log(s->avctx, AV_LOG_ERROR, "cbp_vlc=%"PRIu32"\n", vlc);
return -1;
}
}
if (IS_INTRA16x16(mb_type) ||
(s->pict_type != AV_PICTURE_TYPE_I && s->adaptive_quant && cbp)) {
- s->qscale += svq3_get_se_golomb(&s->gb_slice);
+ s->qscale += get_interleaved_se_golomb(&s->gb_slice);
if (s->qscale > 31u) {
av_log(s->avctx, AV_LOG_ERROR, "qscale:%d\n", s->qscale);
skip_bits_long(&s->gb, slice_bytes * 8);
}
- if ((slice_id = svq3_get_ue_golomb(&s->gb_slice)) >= 3) {
+ if ((slice_id = get_interleaved_ue_golomb(&s->gb_slice)) >= 3) {
av_log(s->avctx, AV_LOG_ERROR, "illegal slice type %u \n", slice_id);
return -1;
}
avctx->has_b_frames = !s->low_delay;
if (s->unknown_flag) {
#if CONFIG_ZLIB
- unsigned watermark_width = svq3_get_ue_golomb(&gb);
- unsigned watermark_height = svq3_get_ue_golomb(&gb);
- int u1 = svq3_get_ue_golomb(&gb);
+ unsigned watermark_width = get_interleaved_ue_golomb(&gb);
+ unsigned watermark_height = get_interleaved_ue_golomb(&gb);
+ int u1 = get_interleaved_ue_golomb(&gb);
int u2 = get_bits(&gb, 8);
int u3 = get_bits(&gb, 2);
- int u4 = svq3_get_ue_golomb(&gb);
+ int u4 = get_interleaved_ue_golomb(&gb);
unsigned long buf_len = watermark_width *
watermark_height * 4;
int offset = get_bits_count(&gb) + 7 >> 3;
/* TODO: support s->mb_skip_run */
}
- mb_type = svq3_get_ue_golomb(&s->gb_slice);
+ mb_type = get_interleaved_ue_golomb(&s->gb_slice);
if (s->pict_type == AV_PICTURE_TYPE_I)
mb_type += 8;