[mythtv-commits] [MythTV/mythtv] 6d33c0: VAAPI: Fix intermittent VPP deinterlacer crash

Mark Kendall noreply at github.com
Wed Mar 18 08:28:46 UTC 2020


  Branch: refs/heads/fixes/31
  Home:   https://github.com/MythTV/mythtv
  Commit: 6d33c0d175dc61d12c9f7cffcec5f6053fd83a00
      https://github.com/MythTV/mythtv/commit/6d33c0d175dc61d12c9f7cffcec5f6053fd83a00
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M mythtv/libs/libmythtv/opengl/mythvaapiinterop.cpp

  Log Message:
  -----------
  VAAPI: Fix intermittent VPP deinterlacer crash

(cherry picked from commit b214da2eafce91af01a6c6831d961fa3b2ca1717)


  Commit: fd6a8326f8bf3f9d3d065ce7f807144035dfb86d
      https://github.com/MythTV/mythtv/commit/fd6a8326f8bf3f9d3d065ce7f807144035dfb86d
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M mythtv/libs/libmythtv/mythplayer.cpp
    M mythtv/libs/libmythtv/mythplayer.h

  Log Message:
  -----------
  MythPlayer: Avoid waiting for a callback that has been processed

- add an additional parameter to the DecoderCallback class to mark the
callback as having been processed
- it was previously possible for MythPlayer to process the callback
before the callee started waiting for its completion, leading to a
deadlock (it is unsafe to timeout waiting for callbacks to be
completed).

(cherry picked from commit 6430256afcf90e88c321725da61f6169022cec3f)


  Commit: b9315d4de6e73790ee4725938b1e889d052da99a
      https://github.com/MythTV/mythtv/commit/b9315d4de6e73790ee4725938b1e889d052da99a
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M mythtv/libs/libmythtv/opengl/mythvideooutopengl.cpp
    M mythtv/libs/libmythtv/videobuffers.cpp
    M mythtv/libs/libmythtv/videobuffers.h

  Log Message:
  -----------
  VideoBuffers: Don't unref FFmpeg buffers while holding lock

- releasing FFmpeg AVBufferRef's will potentially lead to the release of
the parent buffer pool and with it the destruction of the OpenGL interop
class - which triggers a callback to the UI thread
- this is unsafe if the main thread is also performing VideoBuffer
operations that hold or require the lock - leading to deadlocks.
- always queue buffer refs for later release - once the main lock has
been released.

(cherry picked from commit 1324b785b36666b4e77ad394de165a8af4b1880f)


  Commit: bbc8afe8a35a03df4ba05b633329e1f2f7794d2c
      https://github.com/MythTV/mythtv/commit/bbc8afe8a35a03df4ba05b633329e1f2f7794d2c
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-03-18 (Wed, 18 Mar 2020)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/mythcodeccontext.cpp
    M mythtv/libs/libmythtv/mythplayer.cpp
    M mythtv/libs/libmythtv/mythplayer.h
    M mythtv/libs/libmythtv/opengl/mythopenglinterop.cpp

  Log Message:
  -----------
  MythPlayer: Don't use a static method for HandleDecoderCallback


Compare: https://github.com/MythTV/mythtv/compare/a92ef13eecd0...bbc8afe8a35a


More information about the mythtv-commits mailing list