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

Mark Kendall noreply at github.com
Tue Mar 17 14:05:17 UTC 2020


  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: b214da2eafce91af01a6c6831d961fa3b2ca1717
      https://github.com/MythTV/mythtv/commit/b214da2eafce91af01a6c6831d961fa3b2ca1717
  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


  Commit: 6430256afcf90e88c321725da61f6169022cec3f
      https://github.com/MythTV/mythtv/commit/6430256afcf90e88c321725da61f6169022cec3f
  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).


  Commit: 1324b785b36666b4e77ad394de165a8af4b1880f
      https://github.com/MythTV/mythtv/commit/1324b785b36666b4e77ad394de165a8af4b1880f
  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.


Compare: https://github.com/MythTV/mythtv/compare/a74700c34657...1324b785b366


More information about the mythtv-commits mailing list