Commit 83356cf6 authored by Carl Eugen Hoyos's avatar Carl Eugen Hoyos

lavc/vc1: Never decode vc1 as gray if gray decoding was not enabled.

parent ee8c1838
...@@ -1327,7 +1327,7 @@ static int vc1_decode_p_mb(VC1Context *v) ...@@ -1327,7 +1327,7 @@ static int vc1_decode_p_mb(VC1Context *v)
vc1_decode_intra_block(v, s->block[i], i, val, mquant, vc1_decode_intra_block(v, s->block[i], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset); (i & 4) ? v->codingset2 : v->codingset);
if ((i>3) && (s->flags & CODEC_FLAG_GRAY)) if (CONFIG_GRAY && (i>3) && (s->flags & CODEC_FLAG_GRAY))
continue; continue;
v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); v->vc1dsp.vc1_inv_trans_8x8(s->block[i]);
if (v->rangeredfrm) if (v->rangeredfrm)
...@@ -1348,7 +1348,7 @@ static int vc1_decode_p_mb(VC1Context *v) ...@@ -1348,7 +1348,7 @@ static int vc1_decode_p_mb(VC1Context *v)
} else if (val) { } else if (val) {
pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, first_block, pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, first_block,
s->dest[dst_idx] + off, (i & 4) ? s->uvlinesize : s->linesize, s->dest[dst_idx] + off, (i & 4) ? s->uvlinesize : s->linesize,
(i & 4) && (s->flags & CODEC_FLAG_GRAY), &block_tt); CONFIG_GRAY && (i & 4) && (s->flags & CODEC_FLAG_GRAY), &block_tt);
block_cbp |= pat << (i << 2); block_cbp |= pat << (i << 2);
if (!v->ttmbf && ttmb < 8) if (!v->ttmbf && ttmb < 8)
ttmb = -1; ttmb = -1;
...@@ -1438,7 +1438,7 @@ static int vc1_decode_p_mb(VC1Context *v) ...@@ -1438,7 +1438,7 @@ static int vc1_decode_p_mb(VC1Context *v)
vc1_decode_intra_block(v, s->block[i], i, is_coded[i], mquant, vc1_decode_intra_block(v, s->block[i], i, is_coded[i], mquant,
(i & 4) ? v->codingset2 : v->codingset); (i & 4) ? v->codingset2 : v->codingset);
if ((i>3) && (s->flags & CODEC_FLAG_GRAY)) if (CONFIG_GRAY && (i>3) && (s->flags & CODEC_FLAG_GRAY))
continue; continue;
v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); v->vc1dsp.vc1_inv_trans_8x8(s->block[i]);
if (v->rangeredfrm) if (v->rangeredfrm)
...@@ -1460,7 +1460,7 @@ static int vc1_decode_p_mb(VC1Context *v) ...@@ -1460,7 +1460,7 @@ static int vc1_decode_p_mb(VC1Context *v)
pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off, first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : s->linesize, (i & 4) ? s->uvlinesize : s->linesize,
(i & 4) && (s->flags & CODEC_FLAG_GRAY), CONFIG_GRAY && (i & 4) && (s->flags & CODEC_FLAG_GRAY),
&block_tt); &block_tt);
block_cbp |= pat << (i << 2); block_cbp |= pat << (i << 2);
if (!v->ttmbf && ttmb < 8) if (!v->ttmbf && ttmb < 8)
...@@ -1586,7 +1586,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v) ...@@ -1586,7 +1586,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
vc1_decode_intra_block(v, s->block[i], i, val, mquant, vc1_decode_intra_block(v, s->block[i], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset); (i & 4) ? v->codingset2 : v->codingset);
if ((i>3) && (s->flags & CODEC_FLAG_GRAY)) continue; if (CONFIG_GRAY && (i>3) && (s->flags & CODEC_FLAG_GRAY)) continue;
v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); v->vc1dsp.vc1_inv_trans_8x8(s->block[i]);
if (i < 4) { if (i < 4) {
stride_y = s->linesize << fieldtx; stride_y = s->linesize << fieldtx;
...@@ -1672,7 +1672,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v) ...@@ -1672,7 +1672,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off, first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : (s->linesize << fieldtx), (i & 4) ? s->uvlinesize : (s->linesize << fieldtx),
(i & 4) && (s->flags & CODEC_FLAG_GRAY), &block_tt); CONFIG_GRAY && (i & 4) && (s->flags & CODEC_FLAG_GRAY), &block_tt);
block_cbp |= pat << (i << 2); block_cbp |= pat << (i << 2);
if (!v->ttmbf && ttmb < 8) if (!v->ttmbf && ttmb < 8)
ttmb = -1; ttmb = -1;
...@@ -1751,7 +1751,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v) ...@@ -1751,7 +1751,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v)
vc1_decode_intra_block(v, s->block[i], i, val, mquant, vc1_decode_intra_block(v, s->block[i], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset); (i & 4) ? v->codingset2 : v->codingset);
if ((i>3) && (s->flags & CODEC_FLAG_GRAY)) if (CONFIG_GRAY && (i>3) && (s->flags & CODEC_FLAG_GRAY))
continue; continue;
v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); v->vc1dsp.vc1_inv_trans_8x8(s->block[i]);
off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize);
...@@ -1805,7 +1805,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v) ...@@ -1805,7 +1805,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v)
pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off, first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : s->linesize, (i & 4) ? s->uvlinesize : s->linesize,
(i & 4) && (s->flags & CODEC_FLAG_GRAY), CONFIG_GRAY && (i & 4) && (s->flags & CODEC_FLAG_GRAY),
&block_tt); &block_tt);
block_cbp |= pat << (i << 2); block_cbp |= pat << (i << 2);
if (!v->ttmbf && ttmb < 8) if (!v->ttmbf && ttmb < 8)
...@@ -1952,7 +1952,7 @@ static void vc1_decode_b_mb(VC1Context *v) ...@@ -1952,7 +1952,7 @@ static void vc1_decode_b_mb(VC1Context *v)
vc1_decode_intra_block(v, s->block[i], i, val, mquant, vc1_decode_intra_block(v, s->block[i], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset); (i & 4) ? v->codingset2 : v->codingset);
if ((i>3) && (s->flags & CODEC_FLAG_GRAY)) if (CONFIG_GRAY && (i>3) && (s->flags & CODEC_FLAG_GRAY))
continue; continue;
v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); v->vc1dsp.vc1_inv_trans_8x8(s->block[i]);
if (v->rangeredfrm) if (v->rangeredfrm)
...@@ -1966,7 +1966,7 @@ static void vc1_decode_b_mb(VC1Context *v) ...@@ -1966,7 +1966,7 @@ static void vc1_decode_b_mb(VC1Context *v)
vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, vc1_decode_p_block(v, s->block[i], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off, first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : s->linesize, (i & 4) ? s->uvlinesize : s->linesize,
(i & 4) && (s->flags & CODEC_FLAG_GRAY), NULL); CONFIG_GRAY && (i & 4) && (s->flags & CODEC_FLAG_GRAY), NULL);
if (!v->ttmbf && ttmb < 8) if (!v->ttmbf && ttmb < 8)
ttmb = -1; ttmb = -1;
first_block = 0; first_block = 0;
...@@ -2027,7 +2027,7 @@ static void vc1_decode_b_mb_intfi(VC1Context *v) ...@@ -2027,7 +2027,7 @@ static void vc1_decode_b_mb_intfi(VC1Context *v)
vc1_decode_intra_block(v, s->block[i], i, val, mquant, vc1_decode_intra_block(v, s->block[i], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset); (i & 4) ? v->codingset2 : v->codingset);
if ((i>3) && (s->flags & CODEC_FLAG_GRAY)) if (CONFIG_GRAY && (i>3) && (s->flags & CODEC_FLAG_GRAY))
continue; continue;
v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); v->vc1dsp.vc1_inv_trans_8x8(s->block[i]);
if (v->rangeredfrm) if (v->rangeredfrm)
...@@ -2125,7 +2125,7 @@ static void vc1_decode_b_mb_intfi(VC1Context *v) ...@@ -2125,7 +2125,7 @@ static void vc1_decode_b_mb_intfi(VC1Context *v)
vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, vc1_decode_p_block(v, s->block[i], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off, first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : s->linesize, (i & 4) ? s->uvlinesize : s->linesize,
(i & 4) && (s->flags & CODEC_FLAG_GRAY), NULL); CONFIG_GRAY && (i & 4) && (s->flags & CODEC_FLAG_GRAY), NULL);
if (!v->ttmbf && ttmb < 8) if (!v->ttmbf && ttmb < 8)
ttmb = -1; ttmb = -1;
first_block = 0; first_block = 0;
...@@ -2250,7 +2250,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) ...@@ -2250,7 +2250,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v)
vc1_decode_intra_block(v, s->block[i], i, val, mquant, vc1_decode_intra_block(v, s->block[i], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset); (i & 4) ? v->codingset2 : v->codingset);
if (i > 3 && (s->flags & CODEC_FLAG_GRAY)) if (CONFIG_GRAY && i > 3 && (s->flags & CODEC_FLAG_GRAY))
continue; continue;
v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); v->vc1dsp.vc1_inv_trans_8x8(s->block[i]);
if (i < 4) { if (i < 4) {
...@@ -2416,7 +2416,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) ...@@ -2416,7 +2416,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v)
pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off, first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : (s->linesize << fieldtx), (i & 4) ? s->uvlinesize : (s->linesize << fieldtx),
(i & 4) && (s->flags & CODEC_FLAG_GRAY), &block_tt); CONFIG_GRAY && (i & 4) && (s->flags & CODEC_FLAG_GRAY), &block_tt);
block_cbp |= pat << (i << 2); block_cbp |= pat << (i << 2);
if (!v->ttmbf && ttmb < 8) if (!v->ttmbf && ttmb < 8)
ttmb = -1; ttmb = -1;
...@@ -2559,7 +2559,7 @@ static void vc1_decode_i_blocks(VC1Context *v) ...@@ -2559,7 +2559,7 @@ static void vc1_decode_i_blocks(VC1Context *v)
vc1_decode_i_block(v, s->block[k], k, val, (k < 4) ? v->codingset : v->codingset2); vc1_decode_i_block(v, s->block[k], k, val, (k < 4) ? v->codingset : v->codingset2);
if (k > 3 && (s->flags & CODEC_FLAG_GRAY)) if (CONFIG_GRAY && k > 3 && (s->flags & CODEC_FLAG_GRAY))
continue; continue;
v->vc1dsp.vc1_inv_trans_8x8(s->block[k]); v->vc1dsp.vc1_inv_trans_8x8(s->block[k]);
if (v->pq >= 9 && v->overlap) { if (v->pq >= 9 && v->overlap) {
...@@ -2583,7 +2583,7 @@ static void vc1_decode_i_blocks(VC1Context *v) ...@@ -2583,7 +2583,7 @@ static void vc1_decode_i_blocks(VC1Context *v)
if (s->mb_x) { if (s->mb_x) {
v->vc1dsp.vc1_h_overlap(s->dest[0], s->linesize); v->vc1dsp.vc1_h_overlap(s->dest[0], s->linesize);
v->vc1dsp.vc1_h_overlap(s->dest[0] + 8 * s->linesize, s->linesize); v->vc1dsp.vc1_h_overlap(s->dest[0] + 8 * s->linesize, s->linesize);
if (!(s->flags & CODEC_FLAG_GRAY)) { if (!CONFIG_GRAY || !(s->flags & CODEC_FLAG_GRAY)) {
v->vc1dsp.vc1_h_overlap(s->dest[1], s->uvlinesize); v->vc1dsp.vc1_h_overlap(s->dest[1], s->uvlinesize);
v->vc1dsp.vc1_h_overlap(s->dest[2], s->uvlinesize); v->vc1dsp.vc1_h_overlap(s->dest[2], s->uvlinesize);
} }
...@@ -2593,7 +2593,7 @@ static void vc1_decode_i_blocks(VC1Context *v) ...@@ -2593,7 +2593,7 @@ static void vc1_decode_i_blocks(VC1Context *v)
if (!s->first_slice_line) { if (!s->first_slice_line) {
v->vc1dsp.vc1_v_overlap(s->dest[0], s->linesize); v->vc1dsp.vc1_v_overlap(s->dest[0], s->linesize);
v->vc1dsp.vc1_v_overlap(s->dest[0] + 8, s->linesize); v->vc1dsp.vc1_v_overlap(s->dest[0] + 8, s->linesize);
if (!(s->flags & CODEC_FLAG_GRAY)) { if (!CONFIG_GRAY || !(s->flags & CODEC_FLAG_GRAY)) {
v->vc1dsp.vc1_v_overlap(s->dest[1], s->uvlinesize); v->vc1dsp.vc1_v_overlap(s->dest[1], s->uvlinesize);
v->vc1dsp.vc1_v_overlap(s->dest[2], s->uvlinesize); v->vc1dsp.vc1_v_overlap(s->dest[2], s->uvlinesize);
} }
...@@ -2722,7 +2722,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v) ...@@ -2722,7 +2722,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v)
vc1_decode_i_block_adv(v, block[k], k, val, vc1_decode_i_block_adv(v, block[k], k, val,
(k < 4) ? v->codingset : v->codingset2, mquant); (k < 4) ? v->codingset : v->codingset2, mquant);
if (k > 3 && (s->flags & CODEC_FLAG_GRAY)) if (CONFIG_GRAY && k > 3 && (s->flags & CODEC_FLAG_GRAY))
continue; continue;
v->vc1dsp.vc1_inv_trans_8x8(block[k]); v->vc1dsp.vc1_inv_trans_8x8(block[k]);
} }
......
...@@ -110,7 +110,7 @@ void ff_vc1_loop_filter_iblk_delayed(VC1Context *v, int pq) ...@@ -110,7 +110,7 @@ void ff_vc1_loop_filter_iblk_delayed(VC1Context *v, int pq)
if (s->mb_x >= 2) if (s->mb_x >= 2)
v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize - 16, s->linesize, pq); v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize - 16, s->linesize, pq);
v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize - 8, s->linesize, pq); v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize - 8, s->linesize, pq);
if (s->mb_x >= 2 && !(s->flags & CODEC_FLAG_GRAY)) { if (s->mb_x >= 2 && (!CONFIG_GRAY || !(s->flags & CODEC_FLAG_GRAY))) {
for (j = 0; j < 2; j++) { for (j = 0; j < 2; j++) {
v->vc1dsp.vc1_h_loop_filter8(s->dest[j + 1] - 8 * s->uvlinesize - 8, s->uvlinesize, pq); v->vc1dsp.vc1_h_loop_filter8(s->dest[j + 1] - 8 * s->uvlinesize - 8, s->uvlinesize, pq);
} }
...@@ -121,7 +121,7 @@ void ff_vc1_loop_filter_iblk_delayed(VC1Context *v, int pq) ...@@ -121,7 +121,7 @@ void ff_vc1_loop_filter_iblk_delayed(VC1Context *v, int pq)
if (s->mb_x) if (s->mb_x)
v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize, s->linesize, pq); v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize, s->linesize, pq);
v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize + 8, s->linesize, pq); v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize + 8, s->linesize, pq);
if (s->mb_x && !(s->flags & CODEC_FLAG_GRAY)) { if (s->mb_x && (!CONFIG_GRAY || !(s->flags & CODEC_FLAG_GRAY))) {
for (j = 0; j < 2; j++) { for (j = 0; j < 2; j++) {
v->vc1dsp.vc1_h_loop_filter8(s->dest[j + 1] - 8 * s->uvlinesize, s->uvlinesize, pq); v->vc1dsp.vc1_h_loop_filter8(s->dest[j + 1] - 8 * s->uvlinesize, s->uvlinesize, pq);
} }
......
...@@ -270,7 +270,7 @@ void ff_vc1_mc_1mv(VC1Context *v, int dir) ...@@ -270,7 +270,7 @@ void ff_vc1_mc_1mv(VC1Context *v, int dir)
} }
/* for grayscale we should not try to read from unknown area */ /* for grayscale we should not try to read from unknown area */
if (s->flags & CODEC_FLAG_GRAY) { if (CONFIG_GRAY && s->flags & CODEC_FLAG_GRAY) {
srcU = s->edge_emu_buffer + 18 * s->linesize; srcU = s->edge_emu_buffer + 18 * s->linesize;
srcV = s->edge_emu_buffer + 18 * s->linesize; srcV = s->edge_emu_buffer + 18 * s->linesize;
} }
...@@ -332,7 +332,7 @@ void ff_vc1_mc_1mv(VC1Context *v, int dir) ...@@ -332,7 +332,7 @@ void ff_vc1_mc_1mv(VC1Context *v, int dir)
s->hdsp.put_no_rnd_pixels_tab[0][dxy](s->dest[0], srcY, s->linesize, 16); s->hdsp.put_no_rnd_pixels_tab[0][dxy](s->dest[0], srcY, s->linesize, 16);
} }
if (s->flags & CODEC_FLAG_GRAY) return; if (CONFIG_GRAY && s->flags & CODEC_FLAG_GRAY) return;
/* Chroma MC always uses qpel bilinear */ /* Chroma MC always uses qpel bilinear */
uvmx = (uvmx & 3) << 1; uvmx = (uvmx & 3) << 1;
uvmy = (uvmy & 3) << 1; uvmy = (uvmy & 3) << 1;
...@@ -517,7 +517,7 @@ void ff_vc1_mc_4mv_chroma(VC1Context *v, int dir) ...@@ -517,7 +517,7 @@ void ff_vc1_mc_4mv_chroma(VC1Context *v, int dir)
if (!v->field_mode && !v->s.last_picture.f->data[0]) if (!v->field_mode && !v->s.last_picture.f->data[0])
return; return;
if (s->flags & CODEC_FLAG_GRAY) if (CONFIG_GRAY && s->flags & CODEC_FLAG_GRAY)
return; return;
/* calculate chroma MV vector from four luma MVs */ /* calculate chroma MV vector from four luma MVs */
...@@ -654,7 +654,7 @@ void ff_vc1_mc_4mv_chroma4(VC1Context *v, int dir, int dir2, int avg) ...@@ -654,7 +654,7 @@ void ff_vc1_mc_4mv_chroma4(VC1Context *v, int dir, int dir2, int avg)
int use_ic; int use_ic;
uint8_t (*lutuv)[256]; uint8_t (*lutuv)[256];
if (s->flags & CODEC_FLAG_GRAY) if (CONFIG_GRAY && s->flags & CODEC_FLAG_GRAY)
return; return;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
...@@ -800,7 +800,7 @@ void ff_vc1_interp_mc(VC1Context *v) ...@@ -800,7 +800,7 @@ void ff_vc1_interp_mc(VC1Context *v)
} }
/* for grayscale we should not try to read from unknown area */ /* for grayscale we should not try to read from unknown area */
if (s->flags & CODEC_FLAG_GRAY) { if (CONFIG_GRAY && s->flags & CODEC_FLAG_GRAY) {
srcU = s->edge_emu_buffer + 18 * s->linesize; srcU = s->edge_emu_buffer + 18 * s->linesize;
srcV = s->edge_emu_buffer + 18 * s->linesize; srcV = s->edge_emu_buffer + 18 * s->linesize;
} }
...@@ -864,7 +864,7 @@ void ff_vc1_interp_mc(VC1Context *v) ...@@ -864,7 +864,7 @@ void ff_vc1_interp_mc(VC1Context *v)
s->hdsp.avg_no_rnd_pixels_tab[dxy](s->dest[0], srcY, s->linesize, 16); s->hdsp.avg_no_rnd_pixels_tab[dxy](s->dest[0], srcY, s->linesize, 16);
} }
if (s->flags & CODEC_FLAG_GRAY) return; if (CONFIG_GRAY && s->flags & CODEC_FLAG_GRAY) return;
/* Chroma MC always uses qpel blilinear */ /* Chroma MC always uses qpel blilinear */
uvmx = (uvmx & 3) << 1; uvmx = (uvmx & 3) << 1;
uvmy = (uvmy & 3) << 1; uvmy = (uvmy & 3) << 1;
......
...@@ -190,7 +190,7 @@ static void vc1_draw_sprites(VC1Context *v, SpriteData* sd) ...@@ -190,7 +190,7 @@ static void vc1_draw_sprites(VC1Context *v, SpriteData* sd)
} }
alpha = av_clip_uint16(sd->coefs[1][6]); alpha = av_clip_uint16(sd->coefs[1][6]);
for (plane = 0; plane < (s->flags&CODEC_FLAG_GRAY ? 1 : 3); plane++) { for (plane = 0; plane < (CONFIG_GRAY && s->flags&CODEC_FLAG_GRAY ? 1 : 3); plane++) {
int width = v->output_width>>!!plane; int width = v->output_width>>!!plane;
for (row = 0; row < v->output_height>>!!plane; row++) { for (row = 0; row < v->output_height>>!!plane; row++) {
...@@ -311,7 +311,7 @@ static void vc1_sprite_flush(AVCodecContext *avctx) ...@@ -311,7 +311,7 @@ static void vc1_sprite_flush(AVCodecContext *avctx)
wrong but it looks better than doing nothing. */ wrong but it looks better than doing nothing. */
if (f && f->data[0]) if (f && f->data[0])
for (plane = 0; plane < (s->flags&CODEC_FLAG_GRAY ? 1 : 3); plane++) for (plane = 0; plane < (CONFIG_GRAY && s->flags&CODEC_FLAG_GRAY ? 1 : 3); plane++)
for (i = 0; i < v->sprite_height>>!!plane; i++) for (i = 0; i < v->sprite_height>>!!plane; i++)
memset(f->data[plane] + i * f->linesize[plane], memset(f->data[plane] + i * f->linesize[plane],
plane ? 128 : 0, f->linesize[plane]); plane ? 128 : 0, f->linesize[plane]);
...@@ -427,7 +427,7 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx) ...@@ -427,7 +427,7 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
if (!avctx->extradata_size || !avctx->extradata) if (!avctx->extradata_size || !avctx->extradata)
return -1; return -1;
if (!(avctx->flags & CODEC_FLAG_GRAY)) if (!CONFIG_GRAY || !(avctx->flags & CODEC_FLAG_GRAY))
avctx->pix_fmt = ff_get_format(avctx, avctx->codec->pix_fmts); avctx->pix_fmt = ff_get_format(avctx, avctx->codec->pix_fmts);
else { else {
avctx->pix_fmt = AV_PIX_FMT_GRAY8; avctx->pix_fmt = AV_PIX_FMT_GRAY8;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment