[mythtv-commits] [MythTV/mythtv] 5049d4: Improve and fix decoder callbacks into the UI thread

Mark Kendall noreply at github.com
Sat Dec 14 09:22:53 UTC 2019


  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: 5049d4b81de5a461c82b28c6a66314d394fb18c5
      https://github.com/MythTV/mythtv/commit/5049d4b81de5a461c82b28c6a66314d394fb18c5
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-12-14 (Sat, 14 Dec 2019)

  Changed paths:
    M mythtv/libs/libmythbase/mythevent.cpp
    M mythtv/libs/libmythbase/mythevent.h
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp
    M mythtv/libs/libmythtv/decoders/mythcodeccontext.cpp
    M mythtv/libs/libmythtv/decoders/mythcodeccontext.h
    M mythtv/libs/libmythtv/decoders/mythdrmprimecontext.cpp
    M mythtv/libs/libmythtv/decoders/mythmediacodeccontext.cpp
    M mythtv/libs/libmythtv/decoders/mythmmalcontext.cpp
    M mythtv/libs/libmythtv/decoders/mythnvdeccontext.cpp
    M mythtv/libs/libmythtv/decoders/mythnvdeccontext.h
    M mythtv/libs/libmythtv/decoders/mythvaapicontext.cpp
    M mythtv/libs/libmythtv/decoders/mythvdpaucontext.cpp
    M mythtv/libs/libmythtv/decoders/mythvtbcontext.cpp
    M mythtv/libs/libmythtv/mythplayer.cpp
    M mythtv/libs/libmythtv/mythplayer.h
    M mythtv/libs/libmythtv/opengl/mythopenglinterop.cpp
    M mythtv/libs/libmythtv/opengl/mythopenglinterop.h
    M mythtv/libs/libmythui/mythmainwindow.cpp
    M mythtv/libs/libmythui/mythmainwindow.h

  Log Message:
  -----------
  Improve and fix decoder callbacks into the UI thread

- I could write a book on this one
- suffice it to say that using the MythMainWindow instance to process
decoder callbacks was a convenient sledgehammer when the more involved
use of MythPlayer itself gives the precision we need.
- fixes sundry decoder lockups caused by calling qProcessEvents when
trying to ensure the decoder callbacks are processed - qProcessEvents is
the aforementioned sledgehammer...
- forces a couple of capability checks to become UI thread only (which
is fine) because there is no player to access.
- otherwise we always need acccess to a MythPlayer instance - which for
the decode side is available from the decoder but must be added to the
interop side




More information about the mythtv-commits mailing list