Commit 5f59207d authored by Cédric Schieli's avatar Cédric Schieli

Fix avpicture_layout to not chroma shift the alpha plane when outputting YUVA420P

Originally committed as revision 17654 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 73914d56
...@@ -721,7 +721,7 @@ int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height, ...@@ -721,7 +721,7 @@ int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height,
unsigned char *dest, int dest_size) unsigned char *dest, int dest_size)
{ {
const PixFmtInfo* pf = &pix_fmt_info[pix_fmt]; const PixFmtInfo* pf = &pix_fmt_info[pix_fmt];
int i, j, w, h, data_planes; int i, j, w, ow, h, oh, data_planes;
const unsigned char* s; const unsigned char* s;
int size = avpicture_get_size(pix_fmt, width, height); int size = avpicture_get_size(pix_fmt, width, height);
...@@ -751,10 +751,16 @@ int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height, ...@@ -751,10 +751,16 @@ int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height,
h = height; h = height;
} }
ow = w;
oh = h;
for (i=0; i<data_planes; i++) { for (i=0; i<data_planes; i++) {
if (i == 1) { if (i == 1) {
w = width >> pf->x_chroma_shift; w = width >> pf->x_chroma_shift;
h = height >> pf->y_chroma_shift; h = height >> pf->y_chroma_shift;
} else if (i == 3) {
w = ow;
h = oh;
} }
s = src->data[i]; s = src->data[i];
for(j=0; j<h; j++) { for(j=0; j<h; j++) {
......
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