[FFmpeg-trac] #7507(avfilter:new): hwupload: missing device platform

FFmpeg trac at avcodec.org
Sun Oct 28 18:51:35 EET 2018


#7507: hwupload: missing device platform
-------------------------------------+-------------------------------------
             Reporter:  msiders      |                    Owner:
                 Type:  enhancement  |                   Status:  new
             Priority:  normal       |                Component:  avfilter
              Version:  git-master   |               Resolution:
             Keywords:  hwupload,    |               Blocked By:
  hwaccel                            |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by jkqxz):

 Replying to [comment:6 msiders]:
 > {{{
 > ffmpeg \
 >  -init_hw_device qsv=qsv -init_hw_device cuda=cuda \
 >  -hwaccel cuda -hwaccel_device cuda \
 >  -c:v h264_cuvid -i input.ts \
 >  -filter_hw_device qsv -filter_complex
 "[v:0]split=1[out0];[out0]hwdownload,format=nv12[out1];[out1]hwupload,deinterlace_qsv[out2]"
 \
 >  -map [out2] \
 >  -c:v:0 h264_qsv \
 >  -f mpegts output.ts
 > )
 > }}}
 >
 > ...
 >
 > {{{
 > [format @ 0000020ae7026c80] Setting 'pix_fmts' to value 'nv12|qsv'
 > [auto_scaler_0 @ 0000020ae7027880] w:iw h:ih flags:'bilinear' interl:0
 > [Parsed_hwdownload_1 @ 0000020ae7026a80] auto-inserting filter
 'auto_scaler_0' between the filter 'Parsed_split_0' and t
 > he filter 'Parsed_hwdownload_1'
 > Impossible to convert between the formats supported by the filter
 'Parsed_split_0' and the filter 'auto_scaler_0'
 > }}}

 Looks like format autonegotiation didn't manage to match the formats
 correctly through the split filter?  Try putting a `format=cuda` instance
 between `split` and `hwdownload`.

 > Te problem is because the `-filter_hw_device qsv` is a '''GLOBAL
 setting'''. Then the `hwdownload` filter uses the GPU "B" as the source...
 and this is wrong.

 This is incorrect.  `hwdownload` uses the device connected to whatever
 frames it gets on its input; it doesn't touch
 `AVFilterContext.hw_device_ctx` at all.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/7507#comment:8>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list