mirror of https://git.ffmpeg.org/ffmpeg.git
parent
90bfd511c4
commit
88bbabcc00
|
@ -231,6 +231,29 @@ static int decode_frame(AVCodecContext *avctx,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(flags & 0x10){ // right-to-left, needs horizontal flip
|
||||||
|
int x;
|
||||||
|
for(y = 0; y < s->height; y++){
|
||||||
|
void *line = &p->data[0][y * p->linesize[0]];
|
||||||
|
for(x = 0; x < s->width >> 1; x++){
|
||||||
|
switch(s->bpp){
|
||||||
|
case 32:
|
||||||
|
FFSWAP(uint32_t, ((uint32_t *)line)[x], ((uint32_t *)line)[s->width - x]);
|
||||||
|
break;
|
||||||
|
case 24:
|
||||||
|
FFSWAP(uint8_t, ((uint8_t *)line)[3 * x ], ((uint8_t *)line)[3 * s->width - 3 * x ]);
|
||||||
|
FFSWAP(uint8_t, ((uint8_t *)line)[3 * x + 1], ((uint8_t *)line)[3 * s->width - 3 * x + 1]);
|
||||||
|
FFSWAP(uint8_t, ((uint8_t *)line)[3 * x + 2], ((uint8_t *)line)[3 * s->width - 3 * x + 2]);
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
FFSWAP(uint16_t, ((uint16_t *)line)[x], ((uint16_t *)line)[s->width - x]);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
FFSWAP(uint8_t, ((uint8_t *)line)[x], ((uint8_t *)line)[s->width - x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*picture= *(AVFrame*)&s->picture;
|
*picture= *(AVFrame*)&s->picture;
|
||||||
*data_size = sizeof(AVPicture);
|
*data_size = sizeof(AVPicture);
|
||||||
|
|
Loading…
Reference in New Issue