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

FFmpeg trac at avcodec.org
Wed Nov 7 18:55:25 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 msiders):

 Replying to [comment:8 jkqxz]:
 > 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`.
 > 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.


 At time, using only 2 different hw_accelerators (qsv and cuda) I have
 success with spliting in first GPU, and downloading/uploading to the
 second GPU. The "hack" basis is to use as `-hwaccel` the first platform,
 then add the `-filter_hw_device` with the second platform before the
 `-filter_complex`. Then the `hwdownload` reads from the first GPU, and the
 `hwupload` writes in the second one.

 However, I need to do a test with 3 different platforms. I don't know how
 multiple `hwupload` in a `-filter_complex` can distinguish between
 different platforms... as just only one `-filter_hw_device` can be

 For example, how to resolve?

 ffmpeg \
  -init_hw_device qsv=qsv -init_hw_device cuda=cuda -init_hw_device
 opencl=opencl \
  -hwaccel cuda -hwaccel_device cuda \
  -c:v h264_cuvid -i input.ts \
  -filter_hw_device opencl -filter_complex
  -map [target] \
  -c:v:0 h264_qsv \
  -f mpegts output.ts

 In this case the path is:

 So, how the ''second'' hwupload identifies the QSV target?
 Any idea?

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

More information about the FFmpeg-trac mailing list