[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