[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