mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/h263dec: Avoid copying data when flipping image
Also remove an unchecked av_frame_make_writable(). Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
70a1024290
commit
3ca347900e
@ -703,17 +703,11 @@ frame_end:
|
||||
if (s->last_picture_ptr || s->low_delay) {
|
||||
if ( pict->format == AV_PIX_FMT_YUV420P
|
||||
&& (s->codec_tag == AV_RL32("GEOV") || s->codec_tag == AV_RL32("GEOX"))) {
|
||||
int x, y, p;
|
||||
av_frame_make_writable(pict);
|
||||
for (p=0; p<3; p++) {
|
||||
int w = AV_CEIL_RSHIFT(pict-> width, !!p);
|
||||
for (int p = 0; p < 3; p++) {
|
||||
int h = AV_CEIL_RSHIFT(pict->height, !!p);
|
||||
int linesize = pict->linesize[p];
|
||||
for (y=0; y<(h>>1); y++)
|
||||
for (x=0; x<w; x++)
|
||||
FFSWAP(int,
|
||||
pict->data[p][x + y*linesize],
|
||||
pict->data[p][x + (h-1-y)*linesize]);
|
||||
|
||||
pict->data[p] += (h - 1) * pict->linesize[p];
|
||||
pict->linesize[p] *= -1;
|
||||
}
|
||||
}
|
||||
*got_frame = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user