You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
avcodec/mpegvideo: Only keep MpegEncContext.dc_val[0]
The chroma dc_val pointers are mostly unused (accesses use dc_val[0] and block_index), so remove them. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@ -450,7 +450,7 @@ static void h263_pred_acdc(MpegEncContext * s, int16_t *block, int n)
|
|||||||
{
|
{
|
||||||
int wrap, a, c, pred_dc, scale;
|
int wrap, a, c, pred_dc, scale;
|
||||||
const int xy = s->block_index[n];
|
const int xy = s->block_index[n];
|
||||||
int16_t *const dc_val = s->dc_val[0] + xy;
|
int16_t *const dc_val = s->dc_val + xy;
|
||||||
int16_t *const ac_val = (s->ac_val + xy)[0];
|
int16_t *const ac_val = (s->ac_val + xy)[0];
|
||||||
|
|
||||||
/* find prediction */
|
/* find prediction */
|
||||||
|
@ -596,7 +596,7 @@ static int h263_pred_dc(MPVEncContext *const s, int n, int16_t **dc_val_ptr)
|
|||||||
{
|
{
|
||||||
const int wrap = s->c.block_wrap[n];
|
const int wrap = s->c.block_wrap[n];
|
||||||
const int xy = s->c.block_index[n];
|
const int xy = s->c.block_index[n];
|
||||||
int16_t *const dc_val = s->c.dc_val[0] + xy;
|
int16_t *const dc_val = s->c.dc_val + xy;
|
||||||
int pred_dc;
|
int pred_dc;
|
||||||
|
|
||||||
/* find prediction */
|
/* find prediction */
|
||||||
|
@ -45,12 +45,11 @@ int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my);
|
|||||||
static inline int ff_mpeg4_pred_dc(MpegEncContext *s, int n, int *dir_ptr)
|
static inline int ff_mpeg4_pred_dc(MpegEncContext *s, int n, int *dir_ptr)
|
||||||
{
|
{
|
||||||
int a, b, c, wrap, pred;
|
int a, b, c, wrap, pred;
|
||||||
const int16_t *dc_val;
|
const int16_t *const dc_val = s->dc_val + s->block_index[n];
|
||||||
|
|
||||||
/* find prediction */
|
/* find prediction */
|
||||||
|
|
||||||
wrap = s->block_wrap[n];
|
wrap = s->block_wrap[n];
|
||||||
dc_val = s->dc_val[0] + s->block_index[n];
|
|
||||||
|
|
||||||
/* B C
|
/* B C
|
||||||
* A X
|
* A X
|
||||||
|
@ -920,7 +920,7 @@ static inline int mpeg4_get_level_dc(MpegEncContext *s, int n, int pred, int lev
|
|||||||
else if (!(s->workaround_bugs & FF_BUG_DC_CLIP))
|
else if (!(s->workaround_bugs & FF_BUG_DC_CLIP))
|
||||||
level = 2047;
|
level = 2047;
|
||||||
}
|
}
|
||||||
s->dc_val[0][s->block_index[n]] = level;
|
s->dc_val[s->block_index[n]] = level;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1347,7 +1347,7 @@ static inline int mpeg4_decode_block(Mpeg4DecContext *ctx, int16_t *block,
|
|||||||
if (use_intra_dc_vlc) {
|
if (use_intra_dc_vlc) {
|
||||||
/* DC coef */
|
/* DC coef */
|
||||||
if (s->partitioned_frame) {
|
if (s->partitioned_frame) {
|
||||||
level = s->dc_val[0][s->block_index[n]];
|
level = s->dc_val[s->block_index[n]];
|
||||||
if (n < 4)
|
if (n < 4)
|
||||||
level = FASTDIV((level + (s->y_dc_scale >> 1)), s->y_dc_scale);
|
level = FASTDIV((level + (s->y_dc_scale >> 1)), s->y_dc_scale);
|
||||||
else
|
else
|
||||||
|
@ -742,7 +742,7 @@ static void mpeg4_encode_mb(MPVEncContext *const s, int16_t block[][64],
|
|||||||
|
|
||||||
pred = FASTDIV((pred + (scale >> 1)), scale);
|
pred = FASTDIV((pred + (scale >> 1)), scale);
|
||||||
dc_diff[i] = block[i][0] - pred;
|
dc_diff[i] = block[i][0] - pred;
|
||||||
s->c.dc_val[0][s->c.block_index[i]] = av_clip_uintp2(block[i][0] * scale, 11);
|
s->c.dc_val[s->c.block_index[i]] = av_clip_uintp2(block[i][0] * scale, 11);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->c.avctx->flags & AV_CODEC_FLAG_AC_PRED) {
|
if (s->c.avctx->flags & AV_CODEC_FLAG_AC_PRED) {
|
||||||
|
@ -100,7 +100,6 @@ av_cold int ff_mpeg_er_init(MpegEncContext *s)
|
|||||||
{
|
{
|
||||||
ERContext *er = &s->er;
|
ERContext *er = &s->er;
|
||||||
int mb_array_size = s->mb_height * s->mb_stride;
|
int mb_array_size = s->mb_height * s->mb_stride;
|
||||||
int i;
|
|
||||||
|
|
||||||
er->avctx = s->avctx;
|
er->avctx = s->avctx;
|
||||||
|
|
||||||
@ -111,6 +110,10 @@ av_cold int ff_mpeg_er_init(MpegEncContext *s)
|
|||||||
er->mb_stride = s->mb_stride;
|
er->mb_stride = s->mb_stride;
|
||||||
er->b8_stride = s->b8_stride;
|
er->b8_stride = s->b8_stride;
|
||||||
|
|
||||||
|
er->dc_val[0] = s->dc_val;
|
||||||
|
er->dc_val[1] = er->dc_val[0] + s->b8_stride * 2 * s->buffer_pools.alloc_mb_height + s->mb_stride;
|
||||||
|
er->dc_val[2] = er->dc_val[1] + s->mb_stride * (s->buffer_pools.alloc_mb_height + 1);
|
||||||
|
|
||||||
er->er_temp_buffer = av_malloc(s->mb_height * s->mb_stride * (4*sizeof(int) + 1));
|
er->er_temp_buffer = av_malloc(s->mb_height * s->mb_stride * (4*sizeof(int) + 1));
|
||||||
er->error_status_table = av_mallocz(mb_array_size);
|
er->error_status_table = av_mallocz(mb_array_size);
|
||||||
if (!er->er_temp_buffer || !er->error_status_table)
|
if (!er->er_temp_buffer || !er->error_status_table)
|
||||||
@ -119,9 +122,6 @@ av_cold int ff_mpeg_er_init(MpegEncContext *s)
|
|||||||
er->mbskip_table = s->mbskip_table;
|
er->mbskip_table = s->mbskip_table;
|
||||||
er->mbintra_table = s->mbintra_table;
|
er->mbintra_table = s->mbintra_table;
|
||||||
|
|
||||||
for (i = 0; i < FF_ARRAY_ELEMS(s->dc_val); i++)
|
|
||||||
er->dc_val[i] = s->dc_val[i];
|
|
||||||
|
|
||||||
er->decode_mb = mpeg_er_decode_mb;
|
er->decode_mb = mpeg_er_decode_mb;
|
||||||
er->opaque = s;
|
er->opaque = s;
|
||||||
|
|
||||||
|
@ -351,9 +351,7 @@ av_cold int ff_mpv_init_context_frame(MpegEncContext *s)
|
|||||||
// that we don't need to reinitialize when e.g. h263_aic changes.
|
// that we don't need to reinitialize when e.g. h263_aic changes.
|
||||||
if (!FF_ALLOC_TYPED_ARRAY(s->dc_val_base, yc_size))
|
if (!FF_ALLOC_TYPED_ARRAY(s->dc_val_base, yc_size))
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
s->dc_val[0] = s->dc_val_base + s->b8_stride + 1;
|
s->dc_val = s->dc_val_base + s->b8_stride + 1;
|
||||||
s->dc_val[1] = s->dc_val_base + y_size + s->mb_stride + 1;
|
|
||||||
s->dc_val[2] = s->dc_val[1] + c_size;
|
|
||||||
for (i = 0; i < yc_size; i++)
|
for (i = 0; i < yc_size; i++)
|
||||||
s->dc_val_base[i] = 1024;
|
s->dc_val_base[i] = 1024;
|
||||||
}
|
}
|
||||||
@ -486,7 +484,7 @@ void ff_clean_intra_table_entries(MpegEncContext *s)
|
|||||||
/* chroma */
|
/* chroma */
|
||||||
unsigned uxy = s->block_index[4];
|
unsigned uxy = s->block_index[4];
|
||||||
unsigned vxy = s->block_index[5];
|
unsigned vxy = s->block_index[5];
|
||||||
int16_t *dc_val = s->dc_val[0];
|
int16_t *dc_val = s->dc_val;
|
||||||
|
|
||||||
AV_WN32A(dc_val + xy, 1024 << 16 | 1024);
|
AV_WN32A(dc_val + xy, 1024 << 16 | 1024);
|
||||||
AV_WN32 (dc_val + xy + wrap, 1024 << 16 | 1024);
|
AV_WN32 (dc_val + xy + wrap, 1024 << 16 | 1024);
|
||||||
|
@ -141,13 +141,13 @@ typedef struct MpegEncContext {
|
|||||||
int skipped_last_frame;
|
int skipped_last_frame;
|
||||||
int last_dc[3]; ///< last DC values for MPEG-1
|
int last_dc[3]; ///< last DC values for MPEG-1
|
||||||
int16_t *dc_val_base;
|
int16_t *dc_val_base;
|
||||||
int16_t *dc_val[3]; ///< used for MPEG-4 DC prediction, all 3 arrays must be continuous
|
|
||||||
const uint8_t *y_dc_scale_table; ///< qscale -> y_dc_scale table
|
const uint8_t *y_dc_scale_table; ///< qscale -> y_dc_scale table
|
||||||
const uint8_t *c_dc_scale_table; ///< qscale -> c_dc_scale table
|
const uint8_t *c_dc_scale_table; ///< qscale -> c_dc_scale table
|
||||||
const uint8_t *chroma_qscale_table; ///< qscale -> chroma_qscale (H.263)
|
const uint8_t *chroma_qscale_table; ///< qscale -> chroma_qscale (H.263)
|
||||||
uint8_t *coded_block_base;
|
uint8_t *coded_block_base;
|
||||||
uint8_t *coded_block; ///< used for coded block pattern prediction (msmpeg4v3, wmv1)
|
uint8_t *coded_block; ///< used for coded block pattern prediction (msmpeg4v3, wmv1)
|
||||||
int16_t (*ac_val_base)[16];
|
int16_t (*ac_val_base)[16];
|
||||||
|
int16_t *dc_val; ///< used for H.263 AIC/MPEG-4 DC prediction and ER
|
||||||
int16_t (*ac_val)[16]; ///< used for H.263 AIC, MPEG-4 AC prediction
|
int16_t (*ac_val)[16]; ///< used for H.263 AIC, MPEG-4 AC prediction
|
||||||
int mb_skipped; ///< MUST BE SET only during DECODING
|
int mb_skipped; ///< MUST BE SET only during DECODING
|
||||||
uint8_t *mbskip_table; /**< used to avoid copy if macroblock skipped (for black regions for example)
|
uint8_t *mbskip_table; /**< used to avoid copy if macroblock skipped (for black regions for example)
|
||||||
|
@ -3316,7 +3316,7 @@ static int encode_thread(AVCodecContext *c, void *arg){
|
|||||||
int16_t ac[6][16];
|
int16_t ac[6][16];
|
||||||
const int mvdir = (best_s.c.mv_dir & MV_DIR_BACKWARD) ? 1 : 0;
|
const int mvdir = (best_s.c.mv_dir & MV_DIR_BACKWARD) ? 1 : 0;
|
||||||
static const int dquant_tab[4]={-1,1,-2,2};
|
static const int dquant_tab[4]={-1,1,-2,2};
|
||||||
int storecoefs = s->c.mb_intra && s->c.dc_val[0];
|
int storecoefs = s->c.mb_intra && s->c.dc_val;
|
||||||
|
|
||||||
av_assert2(backup_s.dquant == 0);
|
av_assert2(backup_s.dquant == 0);
|
||||||
|
|
||||||
@ -3338,7 +3338,7 @@ static int encode_thread(AVCodecContext *c, void *arg){
|
|||||||
backup_s.dquant= dquant;
|
backup_s.dquant= dquant;
|
||||||
if(storecoefs){
|
if(storecoefs){
|
||||||
for(i=0; i<6; i++){
|
for(i=0; i<6; i++){
|
||||||
dc[i] = s->c.dc_val[0][s->c.block_index[i]];
|
dc[i] = s->c.dc_val[s->c.block_index[i]];
|
||||||
memcpy(ac[i], s->c.ac_val[s->c.block_index[i]], sizeof(*s->c.ac_val));
|
memcpy(ac[i], s->c.ac_val[s->c.block_index[i]], sizeof(*s->c.ac_val));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3348,7 +3348,7 @@ static int encode_thread(AVCodecContext *c, void *arg){
|
|||||||
if (best_s.c.qscale != qp) {
|
if (best_s.c.qscale != qp) {
|
||||||
if(storecoefs){
|
if(storecoefs){
|
||||||
for(i=0; i<6; i++){
|
for(i=0; i<6; i++){
|
||||||
s->c.dc_val[0][s->c.block_index[i]] = dc[i];
|
s->c.dc_val[s->c.block_index[i]] = dc[i];
|
||||||
memcpy(s->c.ac_val[s->c.block_index[i]], ac[i], sizeof(*s->c.ac_val));
|
memcpy(s->c.ac_val[s->c.block_index[i]], ac[i], sizeof(*s->c.ac_val));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -197,7 +197,7 @@ int ff_msmpeg4_pred_dc(MpegEncContext *s, int n,
|
|||||||
int16_t **dc_val_ptr, int *dir_ptr)
|
int16_t **dc_val_ptr, int *dir_ptr)
|
||||||
{
|
{
|
||||||
int a, b, c, wrap, pred, scale;
|
int a, b, c, wrap, pred, scale;
|
||||||
int16_t *dc_val;
|
int16_t *const dc_val = s->dc_val + s->block_index[n];
|
||||||
|
|
||||||
/* find prediction */
|
/* find prediction */
|
||||||
if (n < 4) {
|
if (n < 4) {
|
||||||
@ -207,7 +207,6 @@ int ff_msmpeg4_pred_dc(MpegEncContext *s, int n,
|
|||||||
}
|
}
|
||||||
|
|
||||||
wrap = s->block_wrap[n];
|
wrap = s->block_wrap[n];
|
||||||
dc_val= s->dc_val[0] + s->block_index[n];
|
|
||||||
|
|
||||||
/* B C
|
/* B C
|
||||||
* A X
|
* A X
|
||||||
|
@ -357,7 +357,7 @@ static inline int vc1_i_pred_dc(MpegEncContext *s, int overlap, int pq, int n,
|
|||||||
scale = s->y_dc_scale;
|
scale = s->y_dc_scale;
|
||||||
|
|
||||||
wrap = s->block_wrap[n];
|
wrap = s->block_wrap[n];
|
||||||
dc_val = s->dc_val[0] + s->block_index[n];
|
dc_val = s->dc_val + s->block_index[n];
|
||||||
|
|
||||||
/* B A
|
/* B A
|
||||||
* C X
|
* C X
|
||||||
@ -422,7 +422,7 @@ static inline int ff_vc1_pred_dc(MpegEncContext *s, int overlap, int pq, int n,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
wrap = s->block_wrap[n];
|
wrap = s->block_wrap[n];
|
||||||
dc_val = s->dc_val[0] + s->block_index[n];
|
dc_val = s->dc_val + s->block_index[n];
|
||||||
|
|
||||||
/* B A
|
/* B A
|
||||||
* C X
|
* C X
|
||||||
@ -1314,7 +1314,7 @@ static int vc1_decode_p_mb(VC1Context *v)
|
|||||||
if (!s->mb_intra) ff_vc1_mc_1mv(v, 0);
|
if (!s->mb_intra) ff_vc1_mc_1mv(v, 0);
|
||||||
dst_idx = 0;
|
dst_idx = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize);
|
off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize);
|
||||||
@ -1355,7 +1355,7 @@ static int vc1_decode_p_mb(VC1Context *v)
|
|||||||
s->mb_intra = 0;
|
s->mb_intra = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->mb_type[0][s->block_index[i]] = 0;
|
v->mb_type[0][s->block_index[i]] = 0;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
}
|
}
|
||||||
s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP;
|
s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP;
|
||||||
s->cur_pic.qscale_table[mb_pos] = 0;
|
s->cur_pic.qscale_table[mb_pos] = 0;
|
||||||
@ -1370,7 +1370,7 @@ static int vc1_decode_p_mb(VC1Context *v)
|
|||||||
cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc, VC1_CBPCY_P_VLC_BITS, 2);
|
cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc, VC1_CBPCY_P_VLC_BITS, 2);
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
s->mb_intra = 0;
|
s->mb_intra = 0;
|
||||||
if (i < 4) {
|
if (i < 4) {
|
||||||
dmv_x = dmv_y = 0;
|
dmv_x = dmv_y = 0;
|
||||||
@ -1463,7 +1463,7 @@ static int vc1_decode_p_mb(VC1Context *v)
|
|||||||
s->cur_pic.qscale_table[mb_pos] = 0;
|
s->cur_pic.qscale_table[mb_pos] = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->mb_type[0][s->block_index[i]] = 0;
|
v->mb_type[0][s->block_index[i]] = 0;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
}
|
}
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
ff_vc1_pred_mv(v, i, 0, 0, 0, v->range_x, v->range_y, v->mb_type[0], 0, 0);
|
ff_vc1_pred_mv(v, i, 0, 0, 0, v->range_x, v->range_y, v->mb_type[0], 0, 0);
|
||||||
@ -1570,7 +1570,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
|
|||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->a_avail = v->c_avail = 0;
|
v->a_avail = v->c_avail = 0;
|
||||||
v->mb_type[0][s->block_index[i]] = 1;
|
v->mb_type[0][s->block_index[i]] = 1;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
if (i == 2 || i == 3 || !s->first_slice_line)
|
if (i == 2 || i == 3 || !s->first_slice_line)
|
||||||
@ -1648,7 +1648,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
|
|||||||
if (!v->ttmbf && cbp)
|
if (!v->ttmbf && cbp)
|
||||||
ttmb = get_vlc2(gb, ff_vc1_ttmb_vlc[v->tt_index], VC1_TTMB_VLC_BITS, 2);
|
ttmb = get_vlc2(gb, ff_vc1_ttmb_vlc[v->tt_index], VC1_TTMB_VLC_BITS, 2);
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
if (!fieldtx)
|
if (!fieldtx)
|
||||||
@ -1673,7 +1673,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
|
|||||||
s->mb_intra = v->is_intra[s->mb_x] = 0;
|
s->mb_intra = v->is_intra[s->mb_x] = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->mb_type[0][s->block_index[i]] = 0;
|
v->mb_type[0][s->block_index[i]] = 0;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
}
|
}
|
||||||
s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP;
|
s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP;
|
||||||
s->cur_pic.qscale_table[mb_pos] = 0;
|
s->cur_pic.qscale_table[mb_pos] = 0;
|
||||||
@ -1736,7 +1736,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v)
|
|||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->a_avail = v->c_avail = 0;
|
v->a_avail = v->c_avail = 0;
|
||||||
v->mb_type[0][s->block_index[i]] = 1;
|
v->mb_type[0][s->block_index[i]] = 1;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
if (i == 2 || i == 3 || !s->first_slice_line)
|
if (i == 2 || i == 3 || !s->first_slice_line)
|
||||||
@ -1789,7 +1789,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v)
|
|||||||
}
|
}
|
||||||
dst_idx = 0;
|
dst_idx = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize;
|
off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize;
|
||||||
@ -1854,7 +1854,7 @@ static int vc1_decode_b_mb(VC1Context *v)
|
|||||||
dmv_x[0] = dmv_x[1] = dmv_y[0] = dmv_y[1] = 0;
|
dmv_x[0] = dmv_x[1] = dmv_y[0] = dmv_y[1] = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->mb_type[0][s->block_index[i]] = 0;
|
v->mb_type[0][s->block_index[i]] = 0;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
}
|
}
|
||||||
s->cur_pic.qscale_table[mb_pos] = 0;
|
s->cur_pic.qscale_table[mb_pos] = 0;
|
||||||
|
|
||||||
@ -1937,7 +1937,7 @@ static int vc1_decode_b_mb(VC1Context *v)
|
|||||||
}
|
}
|
||||||
dst_idx = 0;
|
dst_idx = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize);
|
off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize);
|
||||||
@ -2023,7 +2023,7 @@ static int vc1_decode_b_mb_intfi(VC1Context *v)
|
|||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->a_avail = v->c_avail = 0;
|
v->a_avail = v->c_avail = 0;
|
||||||
v->mb_type[0][s->block_index[i]] = 1;
|
v->mb_type[0][s->block_index[i]] = 1;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
if (i == 2 || i == 3 || !s->first_slice_line)
|
if (i == 2 || i == 3 || !s->first_slice_line)
|
||||||
@ -2124,7 +2124,7 @@ static int vc1_decode_b_mb_intfi(VC1Context *v)
|
|||||||
}
|
}
|
||||||
dst_idx = 0;
|
dst_idx = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize;
|
off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize;
|
||||||
@ -2219,7 +2219,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v)
|
|||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->a_avail = v->c_avail = 0;
|
v->a_avail = v->c_avail = 0;
|
||||||
v->mb_type[0][s->block_index[i]] = 1;
|
v->mb_type[0][s->block_index[i]] = 1;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
if (i == 2 || i == 3 || !s->first_slice_line)
|
if (i == 2 || i == 3 || !s->first_slice_line)
|
||||||
@ -2422,7 +2422,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v)
|
|||||||
if (!v->ttmbf && cbp)
|
if (!v->ttmbf && cbp)
|
||||||
ttmb = get_vlc2(gb, ff_vc1_ttmb_vlc[v->tt_index], VC1_TTMB_VLC_BITS, 2);
|
ttmb = get_vlc2(gb, ff_vc1_ttmb_vlc[v->tt_index], VC1_TTMB_VLC_BITS, 2);
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
dst_idx += i >> 2;
|
dst_idx += i >> 2;
|
||||||
val = ((cbp >> (5 - i)) & 1);
|
val = ((cbp >> (5 - i)) & 1);
|
||||||
if (!fieldtx)
|
if (!fieldtx)
|
||||||
@ -2447,7 +2447,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v)
|
|||||||
dir = 0;
|
dir = 0;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
v->mb_type[0][s->block_index[i]] = 0;
|
v->mb_type[0][s->block_index[i]] = 0;
|
||||||
s->dc_val[0][s->block_index[i]] = 0;
|
s->dc_val[s->block_index[i]] = 0;
|
||||||
}
|
}
|
||||||
s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP;
|
s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP;
|
||||||
s->cur_pic.qscale_table[mb_pos] = 0;
|
s->cur_pic.qscale_table[mb_pos] = 0;
|
||||||
|
Reference in New Issue
Block a user