Skip to content

codecs: Keep track of non-decoding-essential input state change

Seungha Yang requested to merge seungha.yang/gstreamer:codecs-state-update into main
    nvdecoder: Handle input caps change

    Update output caps if it's notified by baseclass
    nvdecoder: Don't hold decoder output state

    It's not referenced by this implementation
    examples: Add test code to verify decoder caps update

    Sample command lines
    * Configures pipeline with video encoder
    decoder-caps-update \
      --encoder="video/x-raw,format=NV12 ! qsvh264enc" \
      --decoder=d3d11h264dec \
      --videosink=d3d11videosink

    * Playing exisiting file
    decoder-caps-update \
      --location=test_file.mp4 \
      --decoder=d3d11h264dec \
      --videosink=d3d11videosink
    d3d11decoder: Handle input caps change

    Update output caps if it's notified by baseclass
    codecs: Keep track of non-decoding-essential input state change

    In theory, input caps can be updated anytime at non-keyframe or
    sequence boundary, such as HDR10 metadata, framerate, aspect-ratio
    or so. Those information update might not trigger ::new_sequence()
    or subclass may ignore the changes.

    By this commit, input state change will be tracked by baseclass
    and subclass will be able to know the non-decoding-essential
    update by checking the codec specific picture struct
    on ::output_picture()

cc @ndufresne @vjaquez @He_Junyan

Edited by Seungha Yang

Merge request reports