mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-26 17:32:06 +00:00
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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
enum AVPixelFormat srcFormat = c->srcFormat;
|
||||
@ -731,27 +756,7 @@ static av_cold void sws_init_swscale(SwsContext *c)
|
||||
: hScale16To15_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;
|
||||
}
|
||||
}
|
||||
}
|
||||
ff_sws_init_range_convert(c);
|
||||
|
||||
if (!(isGray(srcFormat) || isGray(c->dstFormat) ||
|
||||
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,
|
||||
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_ppc(SwsContext *c);
|
||||
SwsFunc ff_yuv2rgb_init_bfin(SwsContext *c);
|
||||
|
Loading…
Reference in New Issue
Block a user