mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Fix edge emulation for bicubic MC in B frames
Originally committed as revision 6234 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
f9942ba94b
commit
b116cc7f95
@ -2028,7 +2028,8 @@ static void vc1_interp_mc(VC1Context *v)
|
|||||||
|| (unsigned)src_y > s->v_edge_pos - (my&3) - 16){
|
|| (unsigned)src_y > s->v_edge_pos - (my&3) - 16){
|
||||||
uint8_t *uvbuf= s->edge_emu_buffer + 19 * s->linesize;
|
uint8_t *uvbuf= s->edge_emu_buffer + 19 * s->linesize;
|
||||||
|
|
||||||
ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, 17, 17,
|
srcY -= s->mspel * (1 + s->linesize);
|
||||||
|
ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, 17+s->mspel*2, 17+s->mspel*2,
|
||||||
src_x - s->mspel, src_y - s->mspel, s->h_edge_pos, s->v_edge_pos);
|
src_x - s->mspel, src_y - s->mspel, s->h_edge_pos, s->v_edge_pos);
|
||||||
srcY = s->edge_emu_buffer;
|
srcY = s->edge_emu_buffer;
|
||||||
ff_emulated_edge_mc(uvbuf , srcU, s->uvlinesize, 8+1, 8+1,
|
ff_emulated_edge_mc(uvbuf , srcU, s->uvlinesize, 8+1, 8+1,
|
||||||
@ -2043,8 +2044,8 @@ static void vc1_interp_mc(VC1Context *v)
|
|||||||
uint8_t *src, *src2;
|
uint8_t *src, *src2;
|
||||||
|
|
||||||
src = srcY;
|
src = srcY;
|
||||||
for(j = 0; j < 17; j++) {
|
for(j = 0; j < 17 + s->mspel*2; j++) {
|
||||||
for(i = 0; i < 17; i++) src[i] = ((src[i] - 128) >> 1) + 128;
|
for(i = 0; i < 17 + s->mspel*2; i++) src[i] = ((src[i] - 128) >> 1) + 128;
|
||||||
src += s->linesize;
|
src += s->linesize;
|
||||||
}
|
}
|
||||||
src = srcU; src2 = srcV;
|
src = srcU; src2 = srcV;
|
||||||
@ -2057,6 +2058,7 @@ static void vc1_interp_mc(VC1Context *v)
|
|||||||
src2 += s->uvlinesize;
|
src2 += s->uvlinesize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
srcY += s->mspel * (1 + s->linesize);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(v->fastuvmc) {
|
if(v->fastuvmc) {
|
||||||
|
Loading…
Reference in New Issue
Block a user