vp8enc: finish support for temporally scaled encoding
authorJohn-Mark Bell <jmb@pexip.com>
Fri, 8 Sep 2017 07:19:20 +0000 (08:19 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 16 Oct 2020 09:25:10 +0000 (09:25 +0000)
commitd9cedee042f9edd81d3ee8c2ec4f17f503a24979
tree99b919395a780b59f6321c51a4a29ac5c3fb1776
parent0429c24637f72eaa6b98c06f090d603f298e0f6a
vp8enc: finish support for temporally scaled encoding

  - introduce two new properties:

    * temporal-scalability-layer-flags:

      Provide fine-grained control of layer encoding to the
      outside world. The flags sequence should be a multiple of
      the periodicity and is indexed by a running count of encoded
      frames modulo the sequence length.

    * temporal-scalability-layer-sync-flags:

      Specify the pattern of inter-layer synchronisation (i.e.
      which of the frames generated by the layer encoding
      specification represent an inter-layer synchronisation).
      There must be one entry per entry in
      temporal-scalability-layer-flags.

  - apply temporal scalability settings and expose as buffer
    metadata.

    This allows the codec to allocate a given frame to the correct
    internal bitrate allocator. Additionally, all the
    non-bitstream metadata needed to payload a temporally scaled
    stream is now attached to each output buffer as a
    GstVideoVP8Meta.

  - add unit test for temporally scaled encoding.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
docs/gst_plugins_cache.json
ext/vpx/gstvp8enc.c
ext/vpx/gstvpxenc.c
ext/vpx/gstvpxenc.h
ext/vpx/plugin.c
tests/check/elements/vp8enc.c