[FFmpeg-trac] #3495(swscale:new): Call to sws_getCachedContext() with SWS_BICUBLIN will always raise an assert exception
FFmpeg
trac at avcodec.org
Mon Mar 24 22:20:38 CET 2014
#3495: Call to sws_getCachedContext() with SWS_BICUBLIN will always raise an
assert exception
---------------------------------+--------------------------------------
Reporter: cyril | Type: defect
Status: new | Priority: important
Component: swscale | Version: git-master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
---------------------------------+--------------------------------------
Summary of the bug: A call to {{{sws_getCachedContext()}}} with
SWS_BICUBLIN as the flag will always raise the assert exception at line
377 of libswscale/util.c {{{av_assert0(sizeFactor > 0)}}}.
How to reproduce:
In a dummy program, make this call:
{{{
SwsContext *pSwsContext = NULL;
sws_getCachedContext(pSwsContext,
720, 406,AV_PIX_FMT_YUV420P,
256, 144, AV_PIX_FMT_BGRA,
SWS_BICUBLIN, NULL, NULL, NULL
);
}}}
It will always raise the above assert exception.
This is a regression introduced by this commit:
{{{
2013-11-05 Stefano Sabatini lsws/utils: introduce
scale_algorithms array
}}}
Indeed, {{{sws_init_context()}}} is called, which in turn calls
{{{initFilter()}}} twice, first for the luma component then for the chroma
component. The assert is raised for the chroma component.
A possible fix is to reshuffle the {{{static const ScaleAlgorithm
scale_algorithms[]}}} rows so that SWS_BICUBLIN is set after SWS_BILINEAR
and not before.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3495>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list