• Bryan O'Donoghue's avatar
    media: venus: Fix NV12 decoder buffer discovery on HFI_VERSION_1XX · 7f77fa9f
    Bryan O'Donoghue authored
    HFI_VERSION_1XX uses HFI_BUFFER_OUTPUT not HFI_BUFFER_OUTPUT2 for decoder
    buffers.
    
    venus_helper_check_format() places a constraint on an output buffer to be
    of type HFI_BUFFER_OUTPUT2. HFI_1XX uses HFI_BUFFER_OUTPUT though.
    
    Switching to the logic used in venus_helper_get_out_fmts() first checking
    for HFI_BUFFER_OUTPUT and then HFI_BUFFER_OUTPUT2 resolves on HFI_1XX.
    
    db410c before:
    root@linaro-alip:~# v4l2-ctl  -d /dev/video0 --list-formats
    ioctl: VIDIOC_ENUM_FMT
            Type: Video Capture Multiplanar
    
            [0]: 'MPG4' (MPEG-4 Part 2 ES, compressed)
            [1]: 'H263' (H.263, compressed)
            [2]: 'H264' (H.264, compressed)
            [3]: 'VP80' (VP8, compressed)
    
    root@linaro-alip:~# v4l2-ctl  -d /dev/video1 --list-formats
    ioctl: VIDIOC_ENUM_FMT
            Type: Video Capture Multiplanar
    
    db410c after:
    root@linaro-alip:~# v4l2-ctl  -d /dev/video0 --list-formats
    ioctl: VIDIOC_ENUM_FMT
            Type: Video Capture Multiplanar
    
            [0]: 'MPG4' (MPEG-4 Part 2 ES, compressed)
            [1]: 'H263' (H.263, compressed)
            [2]: 'H264' (H.264, compressed)
            [3]: 'VP80' (VP8, compressed)
    
    root@linaro-alip:~# v4l2-ctl  -d /dev/video1 --list-formats
    ioctl: VIDIOC_ENUM_FMT
            Type: Video Capture Multiplanar
    
            [0]: 'NV12' (Y/CbCr 4:2:0)
    
    Validated playback with ffplay on db410c with h264 and vp8 decoding.
    
    Fixes: 9593126d ("media: venus: Add a handling of QC08C compressed format")
    Cc: stable@vger.kernel.org  # v5.19
    Signed-off-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
    Signed-off-by: default avatarStanimir Varbanov <stanimir.varbanov@linaro.org>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
    7f77fa9f
helpers.c 48.2 KB