summaryrefslogtreecommitdiff
path: root/libswscale/utils.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-10-06 13:29:37 +0200
committerAnton Khirnov <anton@khirnov.net>2012-10-12 12:45:38 +0200
commit0a7068fa5ddaa708d26c27eb17347985d6f1b36d (patch)
treee528b7a36cd24761b71094864262195a1e11a8b5 /libswscale/utils.c
parentb7f1010c8fce09096057528f7cd29589ea1ae7df (diff)
sws: do not use av_pix_fmt_descriptors directly.
Diffstat (limited to 'libswscale/utils.c')
-rw-r--r--libswscale/utils.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/libswscale/utils.c b/libswscale/utils.c
index fcdd04a118..440cce7a09 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -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)