#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. Hi, 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 interposed. 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 "[v:0]split=1[out1];[out1]hwdownload,format=nv12[out2];[out2]hwupload,unsharp_opencl[out3];[out3]hwdownload,format=nv12[out4];[out4]hwupload,deinterlace_qsv[target]" \ -map [target] \ -c:v:0 h264_qsv \ -f mpegts output.ts }}} In this case the path is: `CUDA(decode)-->RAM-->OPENCL(unsharp)-->RAM-->QSV(deinterlace)-->QSV(encode)` 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 _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac