[mythtv-commits] [MythTV/mythtv] 03938c: libmythtv: Remove current Picture-in-Picture imple...

Mark Kendall noreply at github.com
Tue Sep 29 10:35:28 UTC 2020


  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: 03938c57de2cc9f0cdbd9e8e18126105df94091b
      https://github.com/MythTV/mythtv/commit/03938c57de2cc9f0cdbd9e8e18126105df94091b
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/mythplayer.cpp
    M mythtv/libs/libmythtv/mythplayer.h
    M mythtv/libs/libmythtv/mythvideobounds.cpp
    M mythtv/libs/libmythtv/mythvideobounds.h
    M mythtv/libs/libmythtv/mythvideogpu.cpp
    M mythtv/libs/libmythtv/mythvideogpu.h
    M mythtv/libs/libmythtv/mythvideoout.cpp
    M mythtv/libs/libmythtv/mythvideoout.h
    M mythtv/libs/libmythtv/mythvideooutgpu.cpp
    M mythtv/libs/libmythtv/mythvideooutgpu.h
    M mythtv/libs/libmythtv/mythvideooutnull.cpp
    M mythtv/libs/libmythtv/mythvideooutnull.h
    M mythtv/libs/libmythtv/opengl/mythopenglvideo.cpp
    M mythtv/libs/libmythtv/opengl/mythopenglvideo.h
    M mythtv/libs/libmythtv/opengl/mythvideooutopengl.cpp
    M mythtv/libs/libmythtv/opengl/mythvideooutopengl.h
    M mythtv/libs/libmythtv/playercontext.cpp
    M mythtv/libs/libmythtv/playercontext.h
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/libs/libmythtv/videoouttypes.h
    M mythtv/libs/libmythtv/vulkan/mythvideooutputvulkan.cpp
    M mythtv/libs/libmythtv/vulkan/mythvideooutputvulkan.h
    M mythtv/libs/libmythtv/vulkan/mythvideovulkan.cpp
    M mythtv/libs/libmythtv/vulkan/mythvideovulkan.h
    M mythtv/programs/mythavtest/main.cpp
    M mythtv/programs/mythfrontend/globalsettings.cpp

  Log Message:
  -----------
  libmythtv: Remove current Picture-in-Picture implementation

- NB the intention is to add back Picture-in-Picture support when the
folowing refactor has been completed.
- the current PiP code adds considerable complexity to the player code -
and the design was largely driven by the historic constraint of having a
single TV context that displayed media content - with multiple players
within that context to handle additionl PiPs
- going forward we will have multiple TV contexts - each rendering
separately - with some synchronisation/coordination.
- this is the first of what will be many commits to refactor how the
player works and integrates with the main UI.
- this initial commit simply removes all direct PiP/PBP code.
- further changes are required to remove the support for multiple player
contexts in the TV class - which is no longer required
- subsequent commits will (hopefully) begin to remove the PlayerContext
code - which currently adds significant confusion around the player
state (this is however complicated as ever by the use of MythPlayer for
non-ui tasks e.g. transcode, commflag etc). If nothing else
PlayerContext will be greatly simplified.


  Commit: a0652dbcae3ecfa2a9caf0e412b8cfa8565ff50b
      https://github.com/MythTV/mythtv/commit/a0652dbcae3ecfa2a9caf0e412b8cfa8565ff50b
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/libs/libmythtv/tvbrowsehelper.cpp

  Log Message:
  -----------
  TV: Remove support for multiple player contexts

- there are still many functions that are unnecessarily passing around
PlayerContext objects - which will be cleaned up next


  Commit: 85be5f31330457173bde3f6665828c5d16de7745
      https://github.com/MythTV/mythtv/commit/85be5f31330457173bde3f6665828c5d16de7745
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/libs/libmythtv/tvbrowsehelper.cpp
    M mythtv/programs/mythfrontend/guidegrid.cpp
    M mythtv/programs/mythfrontend/playbackbox.cpp

  Log Message:
  -----------
  TV: Don't pass around PlayerContext objects

- we only have one now.
- still needs cleanup in various functions that use GetPlayerReadLock to
retrieve a PlayerContext
- sundry coding standards fixes


  Commit: 976989051502f54abb7173f9e9127f25f8fd6c13
      https://github.com/MythTV/mythtv/commit/976989051502f54abb7173f9e9127f25f8fd6c13
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TV: Sundry minor cleanup

- mostly casts and a little coding standards


  Commit: cbd6d47bff234e4a2878667c5a6ce9d6b58dc487
      https://github.com/MythTV/mythtv/commit/cbd6d47bff234e4a2878667c5a6ce9d6b58dc487
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TV: Use a lambda for handling state changes


  Commit: 6f5317645c38bb4a27225bbef03a0f6657d0c895
      https://github.com/MythTV/mythtv/commit/6f5317645c38bb4a27225bbef03a0f6657d0c895
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TV: Use a lambda for jump to program action


  Commit: 11b6a248256653af02b11418a43c6ab522fad509
      https://github.com/MythTV/mythtv/commit/11b6a248256653af02b11418a43c6ab522fad509
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp

  Log Message:
  -----------
  TV: Add a comment on PlaybackBox functionality not working


  Commit: ede27c0d4236f3fcab9e8887f61076f37e1aaa78
      https://github.com/MythTV/mythtv/commit/ede27c0d4236f3fcab9e8887f61076f37e1aaa78
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.h

  Log Message:
  -----------
  TV: No need for TVPlayWindow to be a friend class


  Commit: 8ca8a214ab2cd56c0f60ad489904d5a24b6099e4
      https://github.com/MythTV/mythtv/commit/8ca8a214ab2cd56c0f60ad489904d5a24b6099e4
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TVBrowseHelper: Sundry minor cleanup


  Commit: 40d8d9e2afbe6a0bfb4beca9a4a13bff8e50cdd6
      https://github.com/MythTV/mythtv/commit/40d8d9e2afbe6a0bfb4beca9a4a13bff8e50cdd6
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/programs/mythfrontend/guidegrid.cpp

  Log Message:
  -----------
  TV: Cleanup last of multi PlayerContext handling

- don't return a PlayerContext pointer from GetPlayerReadLock
- add a GetPlayerContext method. As noted, this should be handled with
care (lock and release, UI thread only) and may change and/or be removed


  Commit: 489ea4de50afffb26b288a4b452c1a66c2aa5d3d
      https://github.com/MythTV/mythtv/commit/489ea4de50afffb26b288a4b452c1a66c2aa5d3d
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TV: Move input switching to a lambda

- as for other converted methods, this encapsulates the code and does
not require a specific timer id


  Commit: 970e9ee8d54541570eb087702c958195096380bb
      https://github.com/MythTV/mythtv/commit/970e9ee8d54541570eb087702c958195096380bb
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TVBrowseHelper: Rename member variables in advance of refactor


  Commit: 8734a5338ad710b2ad9bb3a407ecf471160c862a
      https://github.com/MythTV/mythtv/commit/8734a5338ad710b2ad9bb3a407ecf471160c862a
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tvbrowsehelper.cpp
    M mythtv/libs/libmythtv/tvbrowsehelper.h

  Log Message:
  -----------
  TVBrowseHelper: Rename some methods in advance of refactor


  Commit: 242b5bd5e7af562bd432e6c05307d8d2b5b39aae
      https://github.com/MythTV/mythtv/commit/242b5bd5e7af562bd432e6c05307d8d2b5b39aae
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/libs/libmythtv/tvbrowsehelper.cpp
    M mythtv/libs/libmythtv/tvbrowsehelper.h

  Log Message:
  -----------
  TV: Inherit directly from TVBrowseHelper

- this is the first of a number of commits trying to improve thread
safety (and public API access) for the TV class.


  Commit: f36cc77e20acbd2ba51a604366420f569ae79cbd
      https://github.com/MythTV/mythtv/commit/f36cc77e20acbd2ba51a604366420f569ae79cbd
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/programs/mythfrontend/guidegrid.cpp
    M mythtv/programs/mythfrontend/guidegrid.h

  Log Message:
  -----------
  GuideGrid: Remove support for null video rendering

- this is not supported - for some time I think


  Commit: a5439d6d79db15fe40eecf40d83f7baa8a61780d
      https://github.com/MythTV/mythtv/commit/a5439d6d79db15fe40eecf40d83f7baa8a61780d
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/programs/mythfrontend/guidegrid.cpp
    M mythtv/programs/mythfrontend/progfind.cpp
    M mythtv/programs/mythfrontend/scheduleeditor.cpp
    M mythtv/programs/mythfrontend/viewscheduled.cpp

  Log Message:
  -----------
  TV: Use signals/slots for embedding functionality

- this allows us to remove 3 UI elements as friend classes of TV as they
no longer require direct access to the underlying object
- note - StopEmbedding is not yet hooked up


  Commit: 64c0f687bf736ac4dee20c73a771e490729adcb1
      https://github.com/MythTV/mythtv/commit/64c0f687bf736ac4dee20c73a771e490729adcb1
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/mythvideobounds.cpp

  Log Message:
  -----------
  MythVideoBounds: Minor log typo


  Commit: 6fadac125eaea04581d05d22c7487a8e60325216
      https://github.com/MythTV/mythtv/commit/6fadac125eaea04581d05d22c7487a8e60325216
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/programs/mythfrontend/guidegrid.cpp
    M mythtv/programs/mythfrontend/playbackbox.cpp
    M mythtv/programs/mythfrontend/progfind.cpp
    M mythtv/programs/mythfrontend/scheduleeditor.cpp
    M mythtv/programs/mythfrontend/viewscheduled.cpp

  Log Message:
  -----------
  TV: Use RequestStopEmbedding slot


  Commit: a2492b7d5c309e914d711f7be87d20da8464b61e
      https://github.com/MythTV/mythtv/commit/a2492b7d5c309e914d711f7be87d20da8464b61e
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  MythOpenGLVideo: A new frame format is 'info' not 'warning'


  Commit: 5ba0032b61412e0049ed3397353eaee3bbd7700b
      https://github.com/MythTV/mythtv/commit/5ba0032b61412e0049ed3397353eaee3bbd7700b
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/libs/libmythtv/tvbrowsehelper.cpp

  Log Message:
  -----------
  TV: Remove timer lock

- timers should always be created and started in the same thread
- furthermore TV should be running entirely in the main thread
- so there is no need to lock


  Commit: a90e5c72b4cb8ae93fa20514b46409a42b58cd20
      https://github.com/MythTV/mythtv/commit/a90e5c72b4cb8ae93fa20514b46409a42b58cd20
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.h

  Log Message:
  -----------
  TV: Remove unused variable


  Commit: e261f7296536bdc54c356cfbf2ce395639bd7dd0
      https://github.com/MythTV/mythtv/commit/e261f7296536bdc54c356cfbf2ce395639bd7dd0
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp
    M mythtv/libs/libmythtv/tv_play.h
    M mythtv/programs/mythfrontend/guidegrid.cpp
    M mythtv/programs/mythfrontend/playbackbox.cpp
    M mythtv/programs/mythfrontend/progfind.cpp
    M mythtv/programs/mythfrontend/progfind.h
    M mythtv/programs/mythfrontend/scheduleeditor.cpp
    M mythtv/programs/mythfrontend/viewscheduled.cpp

  Log Message:
  -----------
  TV: Make reference counted

- and refactor creation and static methods to use a single static
AcquireRelease method
- reference counting in the various embedding classes ensures the TV
object is not deleted whilst in use
- AcquireRelease method avoids the need for static global singletons for
both TV and its associated mutex.


  Commit: 6b9f6300d5c1b943f1f0d5d10bc6bcf8dd311359
      https://github.com/MythTV/mythtv/commit/6b9f6300d5c1b943f1f0d5d10bc6bcf8dd311359
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TV: Use a static vector for sleep times


  Commit: 84f95b10db45b5b2a4d4a3132662779ea81b7b8f
      https://github.com/MythTV/mythtv/commit/84f95b10db45b5b2a4d4a3132662779ea81b7b8f
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/programs/mythfrontend/playbackbox.cpp

  Log Message:
  -----------
  PlaybackBox: Fix embedded display

- this seems to be have been disfunctional for some time.


  Commit: 3a3f99d7bafa9aac7316a397b888df0ea51a5da0
      https://github.com/MythTV/mythtv/commit/3a3f99d7bafa9aac7316a397b888df0ea51a5da0
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp

  Log Message:
  -----------
  TV: Consistent embedding behaviour

- we have 1 UI widget that can (optionally) embed playback; GuideGrid
- we have 4 UI widgets that are available but obscure playback;
ProgFind, ScheduleEditor, ViewScheduled and PlaybackBox)
- we have 1 relevant setting ContinueEmbeddedTVPlay ('Continue playback
when embedded' in the UI)
- we have 1 relevant state - LiveTV

Currently:-

GuideGrid will always show the preview in live tv (regardless of
ContinueEmbeddedTVPlay setting) but will always hide playback for
recordings/videos etc. Playback will continue in the background
depending on ContinueEmbeddedTVPlay setting.

PlaybackBox playback will continue - depending on the setting.

ProgFind, ScheduleEditor and ViewScheduled will always pause playback
when embedded.

New behaviour:-

Allow GuideGrid preview playback for everything. Force preview only for
livetv (as before) and otherwise respect the setting.

For PlaybackBox, ProgFind, ScheduleEditor and ViewScheduled - respect
the setting in all cases (i.e. either pause or continue playing in the
background) except for live tv - where playback continues

(Alternate desc - always continue playback in livetv, otherwise respect
the setting, always show the preview in GuideGrid) (I think!)

Additional possible changes:-
- I don't see the need to disable the preview if paused
- there is no obvious need to disable preview if near the end


  Commit: adec07001211ead4927efac5181624a72b1cb4a5
      https://github.com/MythTV/mythtv/commit/adec07001211ead4927efac5181624a72b1cb4a5
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TV: Remove unnecessary m_isEmbedded


  Commit: 7d0100aeec72f416bb8ec603eca64c8c664cd4d6
      https://github.com/MythTV/mythtv/commit/7d0100aeec72f416bb8ec603eca64c8c664cd4d6
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TV: Remove database initialisation lock

- this may have worked asynchronously in the past, but the current
implementation initialises the settings from the db in the constructor
(InitFromDB) which always (!) preceeds the call to Init - which waits
for the db...


  Commit: bda210029ed4f61141d8f740cdd90f4da97d1dce
      https://github.com/MythTV/mythtv/commit/bda210029ed4f61141d8f740cdd90f4da97d1dce
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

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

  Log Message:
  -----------
  TV: Improve atomic creation via AcquireRelease

- with the previous implementation, there was a remote possibility that
using m_referenceCount after creation (and hence outside of the lock)
would give an innacurate result.


  Commit: abbc8c9f01706d554132d99b4849cb4ce4103737
      https://github.com/MythTV/mythtv/commit/abbc8c9f01706d554132d99b4849cb4ce4103737
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp

  Log Message:
  -----------
  TV: Add a little doxygen


  Commit: df2a85930b5ecb168b827e77a24231c9575ea482
      https://github.com/MythTV/mythtv/commit/df2a85930b5ecb168b827e77a24231c9575ea482
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mythtv/libs/libmythtv/tv_play.cpp

  Log Message:
  -----------
  TV: Add a few TODOs


Compare: https://github.com/MythTV/mythtv/compare/ef010ecaaab3...df2a85930b5e


More information about the mythtv-commits mailing list