|
|
|
@@ -689,7 +689,7 @@ int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width) |
|
|
|
case PIX_FMT_NV21: |
|
|
|
w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift; |
|
|
|
picture->linesize[0] = width; |
|
|
|
picture->linesize[1] = w2; |
|
|
|
picture->linesize[1] = 2 * w2; |
|
|
|
break; |
|
|
|
case PIX_FMT_RGB24: |
|
|
|
case PIX_FMT_BGR24: |
|
|
|
@@ -789,12 +789,12 @@ int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt, |
|
|
|
case PIX_FMT_NV12: |
|
|
|
case PIX_FMT_NV21: |
|
|
|
h2 = (height + (1 << pinfo->y_chroma_shift) - 1) >> pinfo->y_chroma_shift; |
|
|
|
size2 = picture->linesize[1] * h2 * 2; |
|
|
|
size2 = picture->linesize[1] * h2; |
|
|
|
picture->data[0] = ptr; |
|
|
|
picture->data[1] = picture->data[0] + size; |
|
|
|
picture->data[2] = NULL; |
|
|
|
picture->data[3] = NULL; |
|
|
|
return size + 2 * size2; |
|
|
|
return size + size2; |
|
|
|
case PIX_FMT_RGB24: |
|
|
|
case PIX_FMT_BGR24: |
|
|
|
case PIX_FMT_ARGB: |
|
|
|
@@ -904,6 +904,8 @@ int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width, |
|
|
|
if (i == 1) { |
|
|
|
w = ((width >> pf->x_chroma_shift) * pf->depth + 7) / 8; |
|
|
|
h = height >> pf->y_chroma_shift; |
|
|
|
if (pix_fmt == PIX_FMT_NV12 || pix_fmt == PIX_FMT_NV21) |
|
|
|
w <<= 1; |
|
|
|
} else if (i == 3) { |
|
|
|
w = ow; |
|
|
|
h = oh; |
|
|
|
|