sws: do not use av_pix_fmt_descriptors directly.
This commit is contained in:
@@ -168,8 +168,9 @@ extern const int32_t ff_yuv2rgb_coeffs[8][4];
|
||||
|
||||
const char *sws_format_name(enum AVPixelFormat format)
|
||||
{
|
||||
if ((unsigned)format < AV_PIX_FMT_NB && av_pix_fmt_descriptors[format].name)
|
||||
return av_pix_fmt_descriptors[format].name;
|
||||
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(format);
|
||||
if (desc)
|
||||
return desc->name;
|
||||
else
|
||||
return "Unknown format";
|
||||
}
|
||||
@@ -745,14 +746,17 @@ static int initMMX2HScaler(int dstW, int xInc, uint8_t *filterCode,
|
||||
|
||||
static void getSubSampleFactors(int *h, int *v, enum AVPixelFormat format)
|
||||
{
|
||||
*h = av_pix_fmt_descriptors[format].log2_chroma_w;
|
||||
*v = av_pix_fmt_descriptors[format].log2_chroma_h;
|
||||
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(format);
|
||||
*h = desc->log2_chroma_w;
|
||||
*v = desc->log2_chroma_h;
|
||||
}
|
||||
|
||||
int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
|
||||
int srcRange, const int table[4], int dstRange,
|
||||
int brightness, int contrast, int saturation)
|
||||
{
|
||||
const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->dstFormat);
|
||||
const AVPixFmtDescriptor *desc_src = av_pix_fmt_desc_get(c->srcFormat);
|
||||
memcpy(c->srcColorspaceTable, inv_table, sizeof(int) * 4);
|
||||
memcpy(c->dstColorspaceTable, table, sizeof(int) * 4);
|
||||
|
||||
@@ -764,8 +768,8 @@ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
|
||||
if (isYUV(c->dstFormat) || isGray(c->dstFormat))
|
||||
return -1;
|
||||
|
||||
c->dstFormatBpp = av_get_bits_per_pixel(&av_pix_fmt_descriptors[c->dstFormat]);
|
||||
c->srcFormatBpp = av_get_bits_per_pixel(&av_pix_fmt_descriptors[c->srcFormat]);
|
||||
c->dstFormatBpp = av_get_bits_per_pixel(desc_dst);
|
||||
c->srcFormatBpp = av_get_bits_per_pixel(desc_src);
|
||||
|
||||
ff_yuv2rgb_c_init_tables(c, inv_table, srcRange, brightness,
|
||||
contrast, saturation);
|
||||
@@ -841,6 +845,8 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
|
||||
int flags, cpu_flags;
|
||||
enum AVPixelFormat srcFormat = c->srcFormat;
|
||||
enum AVPixelFormat dstFormat = c->dstFormat;
|
||||
const AVPixFmtDescriptor *desc_src = av_pix_fmt_desc_get(srcFormat);
|
||||
const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(dstFormat);
|
||||
|
||||
cpu_flags = av_get_cpu_flags();
|
||||
flags = c->flags;
|
||||
@@ -893,8 +899,8 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
|
||||
|
||||
c->lumXInc = (((int64_t)srcW << 16) + (dstW >> 1)) / dstW;
|
||||
c->lumYInc = (((int64_t)srcH << 16) + (dstH >> 1)) / dstH;
|
||||
c->dstFormatBpp = av_get_bits_per_pixel(&av_pix_fmt_descriptors[dstFormat]);
|
||||
c->srcFormatBpp = av_get_bits_per_pixel(&av_pix_fmt_descriptors[srcFormat]);
|
||||
c->dstFormatBpp = av_get_bits_per_pixel(desc_dst);
|
||||
c->srcFormatBpp = av_get_bits_per_pixel(desc_src);
|
||||
c->vRounder = 4 * 0x0001000100010001ULL;
|
||||
|
||||
usesVFilter = (srcFilter->lumV && srcFilter->lumV->length > 1) ||
|
||||
@@ -963,10 +969,10 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
|
||||
}
|
||||
}
|
||||
|
||||
c->srcBpc = 1 + av_pix_fmt_descriptors[srcFormat].comp[0].depth_minus1;
|
||||
c->srcBpc = 1 + desc_src->comp[0].depth_minus1;
|
||||
if (c->srcBpc < 8)
|
||||
c->srcBpc = 8;
|
||||
c->dstBpc = 1 + av_pix_fmt_descriptors[dstFormat].comp[0].depth_minus1;
|
||||
c->dstBpc = 1 + desc_dst->comp[0].depth_minus1;
|
||||
if (c->dstBpc < 8)
|
||||
c->dstBpc = 8;
|
||||
if (c->dstBpc == 16)
|
||||
|
||||
Reference in New Issue
Block a user