Commit 90de28be authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '1dd797e3'

* commit '1dd797e3':
  swscale: check memory allocations
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents b20e79db 1dd797e3
...@@ -827,9 +827,13 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], ...@@ -827,9 +827,13 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4],
av_freep(&c->yuvTable); av_freep(&c->yuvTable);
#define ALLOC_YUV_TABLE(x) \
c->yuvTable = av_malloc(x); \
if (!c->yuvTable) \
return AVERROR(ENOMEM);
switch (bpp) { switch (bpp) {
case 1: case 1:
c->yuvTable = av_malloc(1024); ALLOC_YUV_TABLE(1024);
y_table = c->yuvTable; y_table = c->yuvTable;
yb = -(384 << 16) - oy; yb = -(384 << 16) - oy;
for (i = 0; i < 1024 - 110; i++) { for (i = 0; i < 1024 - 110; i++) {
...@@ -844,7 +848,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], ...@@ -844,7 +848,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4],
rbase = isRgb ? 3 : 0; rbase = isRgb ? 3 : 0;
gbase = 1; gbase = 1;
bbase = isRgb ? 0 : 3; bbase = isRgb ? 0 : 3;
c->yuvTable = av_malloc(1024 * 3); ALLOC_YUV_TABLE(1024 * 3);
y_table = c->yuvTable; y_table = c->yuvTable;
yb = -(384 << 16) - oy; yb = -(384 << 16) - oy;
for (i = 0; i < 1024 - 110; i++) { for (i = 0; i < 1024 - 110; i++) {
...@@ -863,7 +867,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], ...@@ -863,7 +867,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4],
rbase = isRgb ? 5 : 0; rbase = isRgb ? 5 : 0;
gbase = isRgb ? 2 : 3; gbase = isRgb ? 2 : 3;
bbase = isRgb ? 0 : 6; bbase = isRgb ? 0 : 6;
c->yuvTable = av_malloc(1024 * 3); ALLOC_YUV_TABLE(1024 * 3);
y_table = c->yuvTable; y_table = c->yuvTable;
yb = -(384 << 16) - oy; yb = -(384 << 16) - oy;
for (i = 0; i < 1024 - 38; i++) { for (i = 0; i < 1024 - 38; i++) {
...@@ -882,7 +886,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], ...@@ -882,7 +886,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4],
rbase = isRgb ? 8 : 0; rbase = isRgb ? 8 : 0;
gbase = 4; gbase = 4;
bbase = isRgb ? 0 : 8; bbase = isRgb ? 0 : 8;
c->yuvTable = av_malloc(1024 * 3 * 2); ALLOC_YUV_TABLE(1024 * 3 * 2);
y_table16 = c->yuvTable; y_table16 = c->yuvTable;
yb = -(384 << 16) - oy; yb = -(384 << 16) - oy;
for (i = 0; i < 1024; i++) { for (i = 0; i < 1024; i++) {
...@@ -905,7 +909,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], ...@@ -905,7 +909,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4],
rbase = isRgb ? bpp - 5 : 0; rbase = isRgb ? bpp - 5 : 0;
gbase = 5; gbase = 5;
bbase = isRgb ? 0 : (bpp - 5); bbase = isRgb ? 0 : (bpp - 5);
c->yuvTable = av_malloc(1024 * 3 * 2); ALLOC_YUV_TABLE(1024 * 3 * 2);
y_table16 = c->yuvTable; y_table16 = c->yuvTable;
yb = -(384 << 16) - oy; yb = -(384 << 16) - oy;
for (i = 0; i < 1024; i++) { for (i = 0; i < 1024; i++) {
...@@ -925,7 +929,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], ...@@ -925,7 +929,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4],
break; break;
case 24: case 24:
case 48: case 48:
c->yuvTable = av_malloc(1024); ALLOC_YUV_TABLE(1024);
y_table = c->yuvTable; y_table = c->yuvTable;
yb = -(384 << 16) - oy; yb = -(384 << 16) - oy;
for (i = 0; i < 1024; i++) { for (i = 0; i < 1024; i++) {
...@@ -947,7 +951,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], ...@@ -947,7 +951,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4],
needAlpha = CONFIG_SWSCALE_ALPHA && isALPHA(c->srcFormat); needAlpha = CONFIG_SWSCALE_ALPHA && isALPHA(c->srcFormat);
if (!needAlpha) if (!needAlpha)
abase = (base + 24) & 31; abase = (base + 24) & 31;
c->yuvTable = av_malloc(1024 * 3 * 4); ALLOC_YUV_TABLE(1024 * 3 * 4);
y_table32 = c->yuvTable; y_table32 = c->yuvTable;
yb = -(384 << 16) - oy; yb = -(384 << 16) - oy;
for (i = 0; i < 1024; i++) { for (i = 0; i < 1024; i++) {
......
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