Opened 13 years ago
Closed 13 years ago
Last modified 13 years ago
#11152 closed Bug Report - General (fixed)
In Frontend/PlayRecording format of startime passed to network control is not as network control expects
| Reported by: | Owned by: | ||
|---|---|---|---|
| Priority: | minor | Milestone: | 0.26.1 |
| Component: | MythTV - General | Version: | 0.26 |
| Severity: | medium | Keywords: | |
| Cc: | Ticket locked: | no |
Description
http://192.168.0.3:6547/Frontend/PlayRecording?ChanId=9700&StartTime=2012-10-07T05:05:00Z
returns <bool>true</bool> but the recording does not play.
Frontend log gives Oct 7 11:49:48 bressay mythfrontend[19646]: I HttpServer59 services/frontend.cpp:132 (PlayRecording) Frontend API: PlayRecording, ChanID: 9700 StartTime: 2012-10-07T05:05:00Z Oct 7 11:49:48 bressay mythfrontend[19646]: I CoreContext playbackbox.cpp:3696 (processNetworkControlCommand) PlaybackBox: NetworkControl: Trying to PLAY program '9700' @ '20121007060500'
Using netcat play program 9700 2012007060500 gives ERROR: You are in playbackbox mode and this command is only for playback mode
play program 9700 2012-10-07T05:05:00Z gives ERROR: You are in playbackbox mode and this command is only for playback mode
but removing the 'Z' play program 9700 2012-10-07T05:05:00 works
My guess at what is happening( could be completely wrong!)
In services/frontend.cpp Frontend::PlayRecording() builds the message as follows:
QString message = QString("NETWORK_CONTROL PLAY PROGRAM %1 %2 %3")
.arg(ChanID) .arg(starttime.toLocalTime().toString("yyyyMMddhhmmss")) .arg("12345");
In networkcontrol.cpp NetworkControl::processPlay() else if ((nc->getArgCount() >= 4) &&
(is_abbrev("program", nc->getArg(1))) && (nc->getArg(2).contains(QRegExp("
d+$"))) && (nc->getArg(3).contains(QRegExp("
d
d
d
d-
d
d-
d
dT
d
d:
d
d:
d
d$"))))
fails and we fall through to
else if (GetMythUI()->GetCurrentLocation().toLower() != "playback")
{
return QString("ERROR: You are in %1 mode and this command is only "
"for playback mode") .arg(GetMythUI()->GetCurrentLocation());
}
Attachments (1)
Change History (4)
by , 13 years ago
| Attachment: | version.txt added |
|---|
comment:1 by , 13 years ago
This issue began with MythTV 0.26. MythTV gives out datetime strings in the GetRecordedList API, and inputting those same strings into the PlayRecording API fails. Presumably, this was broken by the numerous refactorings and changes of internal handling of date and time between .25 and .26. MythTV should accept the date data it gives as input (as it does in all the other API calls). Only this one has been broken.
comment:2 by , 13 years ago
| Owner: | set to |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
comment:3 by , 13 years ago
| Milestone: | unknown → 0.26.1 |
|---|

Version