swscale: factor ff_sws_init_range_convert() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
3751e5a821
commit
a2f088c0f9
@ -705,6 +705,31 @@ static int swscale(SwsContext *c, const uint8_t *src[],
|
|||||||
return dstY - lastDstY;
|
return dstY - lastDstY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
av_cold void ff_sws_init_range_convert(SwsContext *c)
|
||||||
|
{
|
||||||
|
c->lumConvertRange = NULL;
|
||||||
|
c->chrConvertRange = NULL;
|
||||||
|
if (c->srcRange != c->dstRange && !isAnyRGB(c->dstFormat)) {
|
||||||
|
if (c->dstBpc <= 14) {
|
||||||
|
if (c->srcRange) {
|
||||||
|
c->lumConvertRange = lumRangeFromJpeg_c;
|
||||||
|
c->chrConvertRange = chrRangeFromJpeg_c;
|
||||||
|
} else {
|
||||||
|
c->lumConvertRange = lumRangeToJpeg_c;
|
||||||
|
c->chrConvertRange = chrRangeToJpeg_c;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (c->srcRange) {
|
||||||
|
c->lumConvertRange = lumRangeFromJpeg16_c;
|
||||||
|
c->chrConvertRange = chrRangeFromJpeg16_c;
|
||||||
|
} else {
|
||||||
|
c->lumConvertRange = lumRangeToJpeg16_c;
|
||||||
|
c->chrConvertRange = chrRangeToJpeg16_c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static av_cold void sws_init_swscale(SwsContext *c)
|
static av_cold void sws_init_swscale(SwsContext *c)
|
||||||
{
|
{
|
||||||
enum AVPixelFormat srcFormat = c->srcFormat;
|
enum AVPixelFormat srcFormat = c->srcFormat;
|
||||||
@ -731,27 +756,7 @@ static av_cold void sws_init_swscale(SwsContext *c)
|
|||||||
: hScale16To15_c;
|
: hScale16To15_c;
|
||||||
}
|
}
|
||||||
|
|
||||||
c->lumConvertRange = NULL;
|
ff_sws_init_range_convert(c);
|
||||||
c->chrConvertRange = NULL;
|
|
||||||
if (c->srcRange != c->dstRange && !isAnyRGB(c->dstFormat)) {
|
|
||||||
if (c->dstBpc <= 14) {
|
|
||||||
if (c->srcRange) {
|
|
||||||
c->lumConvertRange = lumRangeFromJpeg_c;
|
|
||||||
c->chrConvertRange = chrRangeFromJpeg_c;
|
|
||||||
} else {
|
|
||||||
c->lumConvertRange = lumRangeToJpeg_c;
|
|
||||||
c->chrConvertRange = chrRangeToJpeg_c;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (c->srcRange) {
|
|
||||||
c->lumConvertRange = lumRangeFromJpeg16_c;
|
|
||||||
c->chrConvertRange = chrRangeFromJpeg16_c;
|
|
||||||
} else {
|
|
||||||
c->lumConvertRange = lumRangeToJpeg16_c;
|
|
||||||
c->chrConvertRange = chrRangeToJpeg16_c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(isGray(srcFormat) || isGray(c->dstFormat) ||
|
if (!(isGray(srcFormat) || isGray(c->dstFormat) ||
|
||||||
srcFormat == AV_PIX_FMT_MONOBLACK || srcFormat == AV_PIX_FMT_MONOWHITE))
|
srcFormat == AV_PIX_FMT_MONOBLACK || srcFormat == AV_PIX_FMT_MONOWHITE))
|
||||||
|
@ -617,6 +617,8 @@ void ff_yuv2rgb_init_tables_ppc(SwsContext *c, const int inv_table[4],
|
|||||||
void updateMMXDitherTables(SwsContext *c, int dstY, int lumBufIndex, int chrBufIndex,
|
void updateMMXDitherTables(SwsContext *c, int dstY, int lumBufIndex, int chrBufIndex,
|
||||||
int lastInLumBuf, int lastInChrBuf);
|
int lastInLumBuf, int lastInChrBuf);
|
||||||
|
|
||||||
|
av_cold void ff_sws_init_range_convert(SwsContext *c);
|
||||||
|
|
||||||
SwsFunc ff_yuv2rgb_init_x86(SwsContext *c);
|
SwsFunc ff_yuv2rgb_init_x86(SwsContext *c);
|
||||||
SwsFunc ff_yuv2rgb_init_ppc(SwsContext *c);
|
SwsFunc ff_yuv2rgb_init_ppc(SwsContext *c);
|
||||||
SwsFunc ff_yuv2rgb_init_bfin(SwsContext *c);
|
SwsFunc ff_yuv2rgb_init_bfin(SwsContext *c);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user