-
Notifications
You must be signed in to change notification settings - Fork 344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Frontend Services API GetStatus incorrect if playing live tv or recording #545
Comments
|
Further testing indicates the network control port does indeed return correct information. The reason the two interfaces react differently appears to be as follows: When the network control port receives a location query, it calls GetMythUI::GetCurrentLocation which constructs a response based on the current actual status. When the Services API receives a GetStatus request, it calls MythUIStateTracker::GetFreshState for the status. MythUIStateTracker caches responses for 500ms, but additionally never appears to be notified that the player is active. I doubt that it's appropriate to be updating the MythUIStateTracker with current position in playback information (for example), especially given the data may never be examined. It seems reasonable to me, to expect it to be notified the player is running, and data about the active playback (once, at startup). I thought I'd open up the question to see if there are other reasonable alternatives. |
|
At some point I got an output where
I can't reproduce it anymore and always get the same output as in the post above. |
|
As a workaround you can use the network control port to get the info until this is fixed |
|
Bug is caused by this line being commented mythtv/mythtv/libs/libmythtv/tv_play.cpp Line 2948 in 09fd76c
Uncommenting that fixes it. I am waiting for review before making the fix. |
This bug was introduced while fixing a problem where all the network control "play" commands were duplicated by MythTV. Most of the "play" commands are idempotent, so the only place the duplication was visible was the "play speed pause" command. Fixing that problem using a different method restores the functionality of the GetStatus API call. Fixes #545. (cherry picked from commit 0751111)
Platform: Debian Bullseye
Linux pi1 5.15.32-v8+ #1538 SMP PREEMPT Thu Mar 31 19:40:39 BST 2022 aarch64 GNU/Linux
MythTV version: mythtv-light 32~Pre-3360-ga1e72a209b-0
Package version: Built from source
Component: Frontend Services API
What steps will reproduce the bug?
XML response should indicate that the current location is the playback box, but instead it shows (for live tv) mainmenu.
How often does it reproduce? Is there a required condition?
Always.
What is the expected behaviour?
Current location should indicate playbackbox, with program details available.
What do you see instead?
<FrontendStatus serializerVersion="1.1" version="1.1"> <Name>pi1</Name> <Version>v32-Pre-3360-ga1e72a209b</Version> <State> <String> <Key>currentlocation</Key> <Value>mainmenu</Value> </String> <String> <Key>menutheme</Key> <Value>defaultmenu</Value> </String> <String> <Key>state</Key> <Value>idle</Value> </String> </State> <ChapterTimes/> <SubtitleTracks/> <AudioTracks/> </FrontendStatus>Additional information
Apparently the network control port shows the correct information (I haven't tested this yet).
The text was updated successfully, but these errors were encountered: