mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-05 14:26:17 +00:00
swscale/utils: move handling of unscaled case to the end of init function
This way all context fields get initialized and can be used without needing to reinit the context Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
a2f088c0f9
commit
fa98885be4
@ -1334,20 +1334,6 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
|
|||||||
|
|
||||||
FF_ALLOC_OR_GOTO(c, c->formatConvBuffer, FFALIGN(srcW*2+78, 16) * 2, fail);
|
FF_ALLOC_OR_GOTO(c, c->formatConvBuffer, FFALIGN(srcW*2+78, 16) * 2, fail);
|
||||||
|
|
||||||
/* unscaled special cases */
|
|
||||||
if (unscaled && !usesHFilter && !usesVFilter &&
|
|
||||||
(c->srcRange == c->dstRange || isAnyRGB(dstFormat))) {
|
|
||||||
ff_get_unscaled_swscale(c);
|
|
||||||
|
|
||||||
if (c->swscale) {
|
|
||||||
if (flags & SWS_PRINT_INFO)
|
|
||||||
av_log(c, AV_LOG_INFO,
|
|
||||||
"using unscaled %s -> %s special converter\n",
|
|
||||||
av_get_pix_fmt_name(srcFormat), av_get_pix_fmt_name(dstFormat));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
c->srcBpc = 1 + desc_src->comp[0].depth_minus1;
|
c->srcBpc = 1 + desc_src->comp[0].depth_minus1;
|
||||||
if (c->srcBpc < 8)
|
if (c->srcBpc < 8)
|
||||||
c->srcBpc = 8;
|
c->srcBpc = 8;
|
||||||
@ -1643,6 +1629,20 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
|
|||||||
c->chrXInc, c->chrYInc);
|
c->chrXInc, c->chrYInc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* unscaled special cases */
|
||||||
|
if (unscaled && !usesHFilter && !usesVFilter &&
|
||||||
|
(c->srcRange == c->dstRange || isAnyRGB(dstFormat))) {
|
||||||
|
ff_get_unscaled_swscale(c);
|
||||||
|
|
||||||
|
if (c->swscale) {
|
||||||
|
if (flags & SWS_PRINT_INFO)
|
||||||
|
av_log(c, AV_LOG_INFO,
|
||||||
|
"using unscaled %s -> %s special converter\n",
|
||||||
|
av_get_pix_fmt_name(srcFormat), av_get_pix_fmt_name(dstFormat));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
c->swscale = ff_getSwsFunc(c);
|
c->swscale = ff_getSwsFunc(c);
|
||||||
return 0;
|
return 0;
|
||||||
fail: // FIXME replace things by appropriate error codes
|
fail: // FIXME replace things by appropriate error codes
|
||||||
|
Loading…
Reference in New Issue
Block a user