[mythtv-commits] [MythTV/mythtv] 1de11b: MythCodecContext: Track the number of concurrent A...

Mark Kendall noreply at github.com
Thu Oct 3 12:49:07 UTC 2019


  Branch: refs/heads/devel/2019-render
  Home:   https://github.com/MythTV/mythtv
  Commit: 1de11b5e20ca15edfe4c9f7a7911db1d00c357d6
      https://github.com/MythTV/mythtv/commit/1de11b5e20ca15edfe4c9f7a7911db1d00c357d6
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/mythcodeccontext.cpp
    M mythtv/libs/libmythtv/decoders/mythcodeccontext.h
    M mythtv/libs/libmythtv/mythvaapicontext.cpp
    M mythtv/libs/libmythtv/mythvdpaucontext.cpp

  Log Message:
  -----------
  MythCodecContext: Track the number of concurrent AVHWFramesContext's


  Commit: 33b109b106eb4a6f0445820941281e0e5ec83ed7
      https://github.com/MythTV/mythtv/commit/33b109b106eb4a6f0445820941281e0e5ec83ed7
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  AvFormatDecoder: Use a single FFmpeg thread for hardware decoding

- also use asynchronous callbacks for software decoding. All of our
get_formant and get_buffer calls shouls be thread safe and per the FFmpeg
documentation, this should improve concurrency.

- the single thread for hardware decoding is needed as using
asynchronous callbacks means we can get callbacks later than needed.
When using AVHWFramesContext (VDPAU and VAAPI) with H264 in particular,
the decoder resets the hardware context when seeking - but the callback
to release our context is not received until after we have created the
new context; which leads to large spikes in memory consumption and
potential playback errors.


Compare: https://github.com/MythTV/mythtv/compare/b449f5e3d66d...33b109b106eb


More information about the mythtv-commits mailing list