[FFmpeg-trac] #7564(avfilter:new): hwdownload fails when size changes

FFmpeg trac at avcodec.org
Mon Nov 26 10:22:19 EET 2018

#7564: hwdownload fails when size changes
             Reporter:  msiders     |                    Owner:
                 Type:  defect      |                   Status:  new
             Priority:  normal      |                Component:  avfilter
              Version:  git-master  |               Resolution:
             Keywords:  hwdownload  |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |

Comment (by msiders):

 Replying to [comment:4 oromit]:
 > Hwdownload shouldn't need to catch anything, as you are changing the
 settings on the last scale filter in the chain, so nothing changes for any
 of the hw related filters, or am I missing something?
 Hi oromit,

 With all due respect... yes you missed all! ;-)

 Parsed_scale_2 is the '''first''' "scale" filter in the graph.

 This is what's happening:
 - The hw decoder (used only to enable the hwaccel) is decoding.
 - We do a hwdownload to move to RAM.
 - We do a software scale (aka Parsed_scale_2).
 - We upload to GPU.
 - We download from GPU.
 - Finally, only to maintain the resolution in the final output, we do a
 second reescale and encode.

 And all works as expected. As all filters catch the change in the size...
 except for the "hwdownload". Why I know it?
 - Because if we interpose another rescale (in this case in gpu, with
 "scale_cuda") in between the "hwupload" and the "hwdownload" then the
 output is correct. This happens because the "hwupload" catch the size
 change, and as the "hwdownload" doesn't see any size change, then nothing

 Please, don't focuse in this "example". I created it to demonstrate the
 bug! I see the problem when using a GPU reescaler chaging the size on-the-
 fly. It's an unobserved bug so far.

 To be more clear, I attach to images. The "before.png" is the output
 before the command. The second "after.png" is when the error appears after
 executing the command "Parsed_scale_2 -1 w 200".


Ticket URL: <https://trac.ffmpeg.org/ticket/7564#comment:5>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list