qtmux: properly support initial caps nego failure
authorMatthew Waters <matthew@centricular.com>
Fri, 31 Jul 2020 06:47:37 +0000 (16:47 +1000)
committerMatthew Waters <matthew@centricular.com>
Mon, 28 Sep 2020 05:37:12 +0000 (15:37 +1000)
commite81ce6f2d722095b25d98a33de2d9431849b750c
tree0f3f85d0df2c91a75a5ae972f77a9815e0fffde3
parentb27dc540d0ee96f26469eeb6a98036c3b6ddb6e3
qtmux: properly support initial caps nego failure

Scenario:
- gap event causes h264parse to push made up caps that may fail checks
  inside qtmux (e.g missing codec_data).
- the caps event has already been marked as received and is sticky on
  the sink pad
- gst_qt_mux_pad_can_renegotiate() will retrieve the failed caps event
  using gst_pad_get_current_caps() and reject the correct updated caps
  with codec_data.
- Failure!

Keep track of the configured caps ourselves instead of relying on the
sticky event on the pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/732>
gst/isomp4/gstqtmux.c
gst/isomp4/gstqtmux.h
tests/check/elements/qtmux.c