Difference between revisions of "Category:Myth Protocol"

From MythTV Official Wiki
Jump to: navigation, search
(36 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 +
{{Warning box|The Myth Protocol is designed for '''internal use only''', for third party applications we strongly recommend using the [[Services API]] instead which uses HTTP and a choice of JSON or XML serialised data, with support for SOAP, WSDL etc}}
 +
 
== Basic Guide ==
 
== Basic Guide ==
  
Line 8: Line 10:
 
|- style="background: lightsteelblue"
 
|- style="background: lightsteelblue"
 
|+
 
|+
! MYTH_PROTO_VERSION, Myth Release  
+
! Version
! Changeset  
+
! Release
 +
! Token
 +
! scope="col" width="190" | Changeset  
 
! Description
 
! Description
 
|-  
 
|-  
| 1
+
| 1 || ||
 
| {{changeset|3021}}
 
| {{changeset|3021}}
 
| {{protoadd|MYTH_PROTO_VERSION}}
 
| {{protoadd|MYTH_PROTO_VERSION}}
 
|-  
 
|-  
| 2
+
| 2 || ||
 
| {{changeset|3078}}
 
| {{changeset|3078}}
 
|
 
|
 
|-  
 
|-  
| 3
+
| 3 || ||
 
| {{changeset|3112}}
 
| {{changeset|3112}}
 
| {{protoadd|GET_NEXT_FREE_RECORDER}}
 
| {{protoadd|GET_NEXT_FREE_RECORDER}}
 
|-  
 
|-  
| 4
+
| 4 || ||
 
| {{changeset|3308}}
 
| {{changeset|3308}}
 
|
 
|
 
|-  
 
|-  
| 5
+
| 5 || ||
 
| {{changeset|3503}}
 
| {{changeset|3503}}
 
| {{protoadd|REACTIVATE_RECORDING}}, {{protoadd|REFRESH_BACKEND}}
 
| {{protoadd|REACTIVATE_RECORDING}}, {{protoadd|REFRESH_BACKEND}}
 
|-  
 
|-  
| 6
+
| 6 || ||
 
| {{changeset|3589}}
 
| {{changeset|3589}}
 
|
 
|
 
|-  
 
|-  
| 7
+
| 7 || ||
 
| {{changeset|3617}}  
 
| {{changeset|3617}}  
 
|
 
|
 
|-
 
|-
| 8
+
| 8 || ||
 
| {{changeset|3621}}  
 
| {{changeset|3621}}  
 
|
 
|
 
|-  
 
|-  
| 9
+
| 9 || ||
 
| {{changeset|3838}}  
 
| {{changeset|3838}}  
 
| {{protoadd|GET_FREE_RECORDER_COUNT}}
 
| {{protoadd|GET_FREE_RECORDER_COUNT}}
 
|-  
 
|-  
| 10
+
| 10 || ||
 
| {{changeset|3966}}  
 
| {{changeset|3966}}  
 
|
 
|
 
|-  
 
|-  
| 11
+
| 11 || ||
 
| {{changeset|3973}}  
 
| {{changeset|3973}}  
 
|
 
|
 
|-  
 
|-  
| 12
+
| 12 || ||
 
| {{changeset|3988}}  
 
| {{changeset|3988}}  
 
|
 
|
 
|-  
 
|-  
| 13
+
| 13 || ||
 
| {{changeset|4122}}  
 
| {{changeset|4122}}  
 
|
 
|
 
|-  
 
|-  
| 14
+
| 14 || ||
 
| {{changeset|4508}}  
 
| {{changeset|4508}}  
 
|
 
|
 
|-
 
|-
| 15, 0.18  
+
| 15 || 0.18 ||
 
| {{changeset|5833}}  
 
| {{changeset|5833}}  
 
| {{protoadd|QUERY_LOAD}}, {{protoadd|QUERY_UPTIME}}, {{protoadd|QUERY_MEMSTATS}}, {{protoadd|QUERY_GUIDEDATATHROUGH}}, {{protoadd|RESCHEDULE_RECORDINGS}}
 
| {{protoadd|QUERY_LOAD}}, {{protoadd|QUERY_UPTIME}}, {{protoadd|QUERY_MEMSTATS}}, {{protoadd|QUERY_GUIDEDATATHROUGH}}, {{protoadd|RESCHEDULE_RECORDINGS}}
 
|-
 
|-
| 16
+
| 16 || ||
 
| {{changeset|6284}}  
 
| {{changeset|6284}}  
 
| {{protoadd|FORCE_DELETE_RECORDING}}, {{protoadd|OK}}, {{protoadd|UNKNOWN_COMMAND}}
 
| {{protoadd|FORCE_DELETE_RECORDING}}, {{protoadd|OK}}, {{protoadd|UNKNOWN_COMMAND}}
 
|-
 
|-
| 17
+
| 17 || ||
 
| {{changeset|6482}}  
 
| {{changeset|6482}}  
 
| {{protodel|QUERY_FREESPACE}}, {{protoadd|QUERY_FREE_SPACE}}, {{protoadd|QUERY_FREE_SPACE_LIST}}, {{protoadd|GET_FREE_RECORDER_LIST}}, {{protoadd|QUERY_PIXMAP_LASTMODIFIED}}, {{protoadd|QUERY_COMMBREAK}}, {{protoadd|QUERY_CUTLIST}}, {{protoadd|QUERY_BOOKMARK}}, {{protoadd|SET_BOOKMARK}}, {{protoadd|QUERY_SETTING}}, {{protoadd|SET_SETTING}}, {{protomod|QUERY_REMOTEENCODER}}, {{protomod|QUERY_RECORDER}}
 
| {{protodel|QUERY_FREESPACE}}, {{protoadd|QUERY_FREE_SPACE}}, {{protoadd|QUERY_FREE_SPACE_LIST}}, {{protoadd|GET_FREE_RECORDER_LIST}}, {{protoadd|QUERY_PIXMAP_LASTMODIFIED}}, {{protoadd|QUERY_COMMBREAK}}, {{protoadd|QUERY_CUTLIST}}, {{protoadd|QUERY_BOOKMARK}}, {{protoadd|SET_BOOKMARK}}, {{protoadd|QUERY_SETTING}}, {{protoadd|SET_SETTING}}, {{protomod|QUERY_REMOTEENCODER}}, {{protomod|QUERY_RECORDER}}
 
|-
 
|-
| 18
+
| 18 || ||
 
| {{changeset|6865}}  
 
| {{changeset|6865}}  
 
| {{protomod|QUERY_RECORDER}}
 
| {{protomod|QUERY_RECORDER}}
 
|-
 
|-
| 19
+
| 19 || ||
 
| {{changeset|7427}}  
 
| {{changeset|7427}}  
 
| {{protodel|REACTIVATE_RECORDING}}, {{protoadd|ALLOW_SHUTDOWN}}, {{protoadd|BLOCK_SHUTDOWN}}, {{protomod|QUERY_RECORDER}}
 
| {{protodel|REACTIVATE_RECORDING}}, {{protoadd|ALLOW_SHUTDOWN}}, {{protoadd|BLOCK_SHUTDOWN}}, {{protomod|QUERY_RECORDER}}
 
|-
 
|-
| 20
+
| 20 || ||
 
| {{changeset|7739}}
 
| {{changeset|7739}}
 
| {{protomod|ANN}}, {{protomod|QUERY_RECORDER}}
 
| {{protomod|ANN}}, {{protomod|QUERY_RECORDER}}
 
|-
 
|-
| 21
+
| 21 || ||
 
| {{changeset|7826}}
 
| {{changeset|7826}}
 
| {{protodel|GET_PROGRAM_INFO}}, {{protodel|GET_INPUT_NAME}}
 
| {{protodel|GET_PROGRAM_INFO}}, {{protodel|GET_INPUT_NAME}}
 
|-
 
|-
| 22
+
| 22 || ||
 
| {{changeset|7883}}
 
| {{changeset|7883}}
 
| {{protomod|ANN}}, {{protoadd|LIVETV_EXITED}}
 
| {{protomod|ANN}}, {{protoadd|LIVETV_EXITED}}
 
|-
 
|-
| 23
+
| 23 || ||
 
| {{changeset|8553}}
 
| {{changeset|8553}}
 
| {{protodel|QUEUE_TRANSCODE}}, {{protodel|QUEUE_TRANSCODE_CUTLIST}}, {{protodel|QUEUE_TRANSCODE_STOP}}, {{protoadd|QUERY_GETEXPIRING}}, {{protoadd|SCHEDULER_ADD_RECORDING}}, {{protoadd|CLEAR_SETTINGS_CACHE}}
 
| {{protodel|QUEUE_TRANSCODE}}, {{protodel|QUEUE_TRANSCODE_CUTLIST}}, {{protodel|QUEUE_TRANSCODE_STOP}}, {{protoadd|QUERY_GETEXPIRING}}, {{protoadd|SCHEDULER_ADD_RECORDING}}, {{protoadd|CLEAR_SETTINGS_CACHE}}
 
|-
 
|-
| 24
+
| 24 || ||
 
| {{changeset|8617}}
 
| {{changeset|8617}}
 
|
 
|
 
|-
 
|-
| 25
+
| 25 || ||
 
| {{changeset|8628}}
 
| {{changeset|8628}}
 
|
 
|
 
|-
 
|-
| 26, 0.19  
+
| 26 || 0.19 ||
 
| {{changeset|8754}}
 
| {{changeset|8754}}
 
| {{protoadd|SET_LIVE_RECORDING}}
 
| {{protoadd|SET_LIVE_RECORDING}}
 
|-
 
|-
| 27  
+
| 27 || ||
 
| {{changeset|8973}}
 
| {{changeset|8973}}
 
| Unification of the ChannelBase class???<br/>{{protodel|SCHEDULER_ADD_RECORDING}}, {{protodel|TOGGLE_INPUTS}}, {{protoadd|GET_CONNECTED_INPUTS}}, {{protoadd|GET_INPUT}}, {{protoadd|SET_INPUT}}
 
| Unification of the ChannelBase class???<br/>{{protodel|SCHEDULER_ADD_RECORDING}}, {{protodel|TOGGLE_INPUTS}}, {{protoadd|GET_CONNECTED_INPUTS}}, {{protoadd|GET_INPUT}}, {{protoadd|SET_INPUT}}
 
|-
 
|-
| 28
+
| 28 || ||
 
| {{changeset|9524}}
 
| {{changeset|9524}}
 
| Backend portion of Channel Editing patch.<br/>{{protoadd|GET_CHANNEL_INFO}}, {{protoadd|SET_CHANNEL_INFO}}, {{protoadd|SET_TIMEOUT}}
 
| Backend portion of Channel Editing patch.<br/>{{protoadd|GET_CHANNEL_INFO}}, {{protoadd|SET_CHANNEL_INFO}}, {{protoadd|SET_TIMEOUT}}
 
|-
 
|-
| 29
+
| 29 || ||
 
| {{changeset|9592}}
 
| {{changeset|9592}}
 
| Increments protocol to deal with new FileTransfer params<br/>{{protomod|ANN}}
 
| Increments protocol to deal with new FileTransfer params<br/>{{protomod|ANN}}
 
|-
 
|-
| 30, 0.20
+
| 30 || 0.20 ||
 
| {{changeset|9968}}
 
| {{changeset|9968}}
 
| Adds recorder keyed picture attribute adjustments<br/>{{protoadd|GET_COLOUR}}, {{protoadd|GET_CONTRAST}}, {{protoadd|GET_BRIGHTNESS}}, {{protoadd|GET_HUE}}, {{protomod|CHANGE_COLOUR}}, {{protomod|CHANGE_CONTRAST}}, {{protomod|CHANGE_BRIGHTNESS}}, {{protomod|CHANGE_HUE}}
 
| Adds recorder keyed picture attribute adjustments<br/>{{protoadd|GET_COLOUR}}, {{protoadd|GET_CONTRAST}}, {{protoadd|GET_BRIGHTNESS}}, {{protoadd|GET_HUE}}, {{protomod|CHANGE_COLOUR}}, {{protomod|CHANGE_CONTRAST}}, {{protomod|CHANGE_BRIGHTNESS}}, {{protomod|CHANGE_HUE}}
 +
|- style='background: lightsteelblue'
 +
! Version
 +
! Release
 +
! Token
 +
! Changeset
 +
! Description
 
|-
 
|-
| 31, some 0.20-fixes
+
| 31 || 0.20 ||
 
| {{changeset|11278}}
 
| {{changeset|11278}}
 
| Add parentid to the proginfo StringLists.
 
| Add parentid to the proginfo StringLists.
 
|-
 
|-
| 32
+
| 32 || ||
 
| {{changeset|12151}}
 
| {{changeset|12151}}
 
| Introduction of StorageGroups<br/>{{protoadd|QUERY_RECORDING}}, {{protoadd|QUERY_FREE_SPACE_SUMMARY}}, {{protoadd|SET_NEXT_LIVETV_DIR}}
 
| Introduction of StorageGroups<br/>{{protoadd|QUERY_RECORDING}}, {{protoadd|QUERY_FREE_SPACE_SUMMARY}}, {{protoadd|SET_NEXT_LIVETV_DIR}}
 
|-
 
|-
| 33
+
| 33 || ||
 
| {{changeset|12904}}
 
| {{changeset|12904}}
 
| Changes the format of the original airdate field in the ProgramInfo stringlist
 
| Changes the format of the original airdate field in the ProgramInfo stringlist
 
|-
 
|-
| 34
+
| 34 || ||
 
| {{changeset|13230}}
 
| {{changeset|13230}}
 
| Sends the start channel as additional parameter in SpawnLiveTV<br/>{{protomod|SPAWN_LIVETV}}
 
| Sends the start channel as additional parameter in SpawnLiveTV<br/>{{protomod|SPAWN_LIVETV}}
 
|-
 
|-
| 35
+
| 35 || ||
 
| {{changeset|13952}}
 
| {{changeset|13952}}
 
| Replaces the current hdtv, stereo and closecaptioned flags with videoproperties, audioproperties and subtitletype vars
 
| Replaces the current hdtv, stereo and closecaptioned flags with videoproperties, audioproperties and subtitletype vars
 
|-
 
|-
| 36
+
| 36 || ||
 
| {{changeset|14483}}
 
| {{changeset|14483}}
 
| {{protoadd|UNDELETE_RECORDING}}
 
| {{protoadd|UNDELETE_RECORDING}}
 
|-
 
|-
| 37
+
| 37 || ||
 
| {{changeset|15437}}
 
| {{changeset|15437}}
 
| {{protodel|GET_CONNECTED_INPUTS}}, {{protoadd|GET_FREE_INPUTS}}, {{protoadd|GET_FLAGS}}, {{protoadd|CANCEL_NEXT_RECORDING}}, {{protoadd|STOP_RECORDING}}
 
| {{protodel|GET_CONNECTED_INPUTS}}, {{protoadd|GET_FREE_INPUTS}}, {{protoadd|GET_FLAGS}}, {{protoadd|CANCEL_NEXT_RECORDING}}, {{protoadd|STOP_RECORDING}}
 
|-
 
|-
| 38
+
| 38 || ||
 
| {{changeset|15550}}
 
| {{changeset|15550}}
 
| {{protoadd|DELETE_FAILED_RECORDING}}
 
| {{protoadd|DELETE_FAILED_RECORDING}}
 
|-
 
|-
| 39, 0.21  
+
| 39 || 0.21 ||
 
| {{changeset|15701}}
 
| {{changeset|15701}}
 
| Revert [15549], because the scheduler (starting with [15566]) now uses its own temporary copy of the record table during the BUSQ.<br/>{{protodel|DELETE_FAILED_RECORDING}}
 
| Revert [15549], because the scheduler (starting with [15566]) now uses its own temporary copy of the record table during the BUSQ.<br/>{{protodel|DELETE_FAILED_RECORDING}}
 
|-
 
|-
| 40, some 0.21-fixes
+
| 40 || 0.21 ||
 
| {{changeset|16090}}
 
| {{changeset|16090}}
 
| Patch from #4583, along with corresponding fixes in mythweb and the perl bindings. Switches QUERY_PIXMAP_LASTMODIFIED to send a unix timestamp instead of a localized string that would be affected by LANG settings.<br/>{{protomod|QUERY_PIXMAP_LASTMODIFIED}}
 
| Patch from #4583, along with corresponding fixes in mythweb and the perl bindings. Switches QUERY_PIXMAP_LASTMODIFIED to send a unix timestamp instead of a localized string that would be affected by LANG settings.<br/>{{protomod|QUERY_PIXMAP_LASTMODIFIED}}
 
|-
 
|-
| 41
+
| 41 || ||
 
| {{changeset|18419}}
 
| {{changeset|18419}}
 
| Adds the production year to the programinfo sent via the protocol.
 
| Adds the production year to the programinfo sent via the protocol.
 
|-
 
|-
| 42
+
| 42 || ||
 
| {{changeset|18574}}
 
| {{changeset|18574}}
 
| {{protoadd|QUERY_TIME_ZONE}}
 
| {{protoadd|QUERY_TIME_ZONE}}
 
|-
 
|-
|43
+
|43 || ||
 
| {{changeset|19417}} (warning: huge changeset)
 
| {{changeset|19417}} (warning: huge changeset)
 
| Associated with the merging of the mythtv-vid branch to trunk.<br/>{{protomod|FILL_POSITION_MAP}} and possibly GetChainWithRecording.   
 
| Associated with the merging of the mythtv-vid branch to trunk.<br/>{{protomod|FILL_POSITION_MAP}} and possibly GetChainWithRecording.   
 
|-
 
|-
| 44
+
| 44 || ||
 
| {{changeset|19978}}
 
| {{changeset|19978}}
 
| Adds <code>Videos</code> storage group<br/>{{protoadd|QUERY_SG_GETFILELIST}}, {{protoadd|QUERY_SG_FILEQUERY}}
 
| Adds <code>Videos</code> storage group<br/>{{protoadd|QUERY_SG_GETFILELIST}}, {{protoadd|QUERY_SG_FILEQUERY}}
 
|-
 
|-
| 45
+
| 45 || ||
 
| {{changeset|20523}}
 
| {{changeset|20523}}
 
| Add channel grouping feature<br/>{{protomod|TOGGLE_CHANNEL_FAVORITE}}<br/>{{protoadd|GO_TO_SLEEP}}
 
| Add channel grouping feature<br/>{{protomod|TOGGLE_CHANNEL_FAVORITE}}<br/>{{protoadd|GO_TO_SLEEP}}
 
|-
 
|-
| 46
+
| 46 || ||
 
| {{changeset|21156}}
 
| {{changeset|21156}}
 
| Adds ability to delete remote files<br/>{{protoadd|DELETE_FILE}}, {{protomod|ANN}}, {{protomod|QUERY_FILETRANSFER}}
 
| Adds ability to delete remote files<br/>{{protoadd|DELETE_FILE}}, {{protomod|ANN}}, {{protomod|QUERY_FILETRANSFER}}
 
|-
 
|-
| 47
+
| 47 || ||
 
| {{changeset|21298}}
 
| {{changeset|21298}}
 
| Adds filesystem block size to the FileSystemInfo structure<br>{{protomod|QUERY_FREE_SPACE}}, {{protomod|QUERY_FREE_SPACE_LIST}}
 
| Adds filesystem block size to the FileSystemInfo structure<br>{{protomod|QUERY_FREE_SPACE}}, {{protomod|QUERY_FREE_SPACE_LIST}}
 
|-
 
|-
| 48
+
| 48 || ||
 
| {{changeset|21445}}
 
| {{changeset|21445}}
 
| When ANN returns "ERROR", it is now followed by the reason for the error
 
| When ANN returns "ERROR", it is now followed by the reason for the error
 
|-
 
|-
| 49
+
| 49 || ||
 
| {{changeset|22164}}
 
| {{changeset|22164}}
 
| Adds new pixmap query to speed up preview generation<br>{{protoadd|QUERY_PIXMAP_GET_IF_MODIFIED}}<br/>Add a RemoteFile::Exists(QString &url) method for checking for the
 
| Adds new pixmap query to speed up preview generation<br>{{protoadd|QUERY_PIXMAP_GET_IF_MODIFIED}}<br/>Add a RemoteFile::Exists(QString &url) method for checking for the
 
existence of a remote file.<br/>{{protoadd|QUERY_FILE_EXISTS}}
 
existence of a remote file.<br/>{{protoadd|QUERY_FILE_EXISTS}}
 
|-
 
|-
| 50, 0.22
+
| 50 || 0.22 ||
 
| {{changeset|22170}}
 
| {{changeset|22170}}
 
| Adds a hostname lookup to aid use of Storage Groups in MythVideo<br>{{protoadd|QUERY_HOSTNAME}}
 
| Adds a hostname lookup to aid use of Storage Groups in MythVideo<br>{{protoadd|QUERY_HOSTNAME}}
 
|-
 
|-
| 51
+
| 51 || ||
 
| {{changeset|22892}}
 
| {{changeset|22892}}
 
| Adds a remote hash function for files based of that used by [http://trac.opensubtitles.org/projects/opensubtitles/wiki/HashSourceCodes OpenSubtitles].<br>{{protoadd|QUERY_FILE_HASH}}
 
| Adds a remote hash function for files based of that used by [http://trac.opensubtitles.org/projects/opensubtitles/wiki/HashSourceCodes OpenSubtitles].<br>{{protoadd|QUERY_FILE_HASH}}
 
|-
 
|-
| 52
+
| 52 || ||
 
| {{changeset|22932}}
 
| {{changeset|22932}}
 
|
 
|
 
|-
 
|-
| 53
+
| 53 || ||
 
| {{changeset|22955}}
 
| {{changeset|22955}}
 
|
 
|
 
|-
 
|-
| 54
+
| 54 || ||
 
| {{changeset|22976}}
 
| {{changeset|22976}}
 
| {{protoadd|MASTER_UPDATE_PROG_INFO}}, {{protoadd|UPDATE_PROG_INFO}}
 
| {{protoadd|MASTER_UPDATE_PROG_INFO}}, {{protoadd|UPDATE_PROG_INFO}}
 
|-
 
|-
| 55
+
| 55 || ||
 
| {{changeset|22992}}
 
| {{changeset|22992}}
 
| {{protomod|MASTER_UPDATE_PROG_INFO}}
 
| {{protomod|MASTER_UPDATE_PROG_INFO}}
 
|-
 
|-
| 56, 0.23
+
| 56 || 0.23 ||
 
| {{changeset|23028}}
 
| {{changeset|23028}}
 
| Added [[MythTV_System_Events|system events]], {{protomod|DELETE_RECORDING}}, {{protomod|ANN}}
 
| Added [[MythTV_System_Events|system events]], {{protomod|DELETE_RECORDING}}, {{protomod|ANN}}
 
|-
 
|-
| 23056
+
| 23056 || 0.23.1 ||
 
| {{changeset|25364}}
 
| {{changeset|25364}}
 
| {{protomod|DELETE_RECORDING}}
 
| {{protomod|DELETE_RECORDING}}
 
|-
 
|-
| 57
+
| 57 || ||
 
| {{changeset|24694}}
 
| {{changeset|24694}}
 
| {{protomod|ProgramInfo}}<br>object changes. From 47 fields down to 41 - filesize as a long, removed duplicate, shareable, previouslyshown, commfree, hasairdate, added year.
 
| {{protomod|ProgramInfo}}<br>object changes. From 47 fields down to 41 - filesize as a long, removed duplicate, shareable, previouslyshown, commfree, hasairdate, added year.
 
|-
 
|-
| 58
+
| 58 || ||
 
| {{changeset|25351}}
 
| {{changeset|25351}}
 
| {{protoadd|DOWNLOAD_FILE}}, {{protoadd|DOWNLOAD_FILE_NOW}}
 
| {{protoadd|DOWNLOAD_FILE}}, {{protoadd|DOWNLOAD_FILE_NOW}}
 
|-
 
|-
| 59
+
| 59 || ||
 
| {{changeset|25858}}
 
| {{changeset|25858}}
 
{{changeset|25363}}
 
{{changeset|25363}}
Line 255: Line 265:
 
{{protomod|DELETE_RECORDING}}
 
{{protomod|DELETE_RECORDING}}
 
|-
 
|-
| 60
+
| 60 || ||
 
| {{changeset|26101}}
 
| {{changeset|26101}}
 
| {{protomod|ANN}}<br>Alters FileTransfer to accept timeout instead of number of retries
 
| {{protomod|ANN}}<br>Alters FileTransfer to accept timeout instead of number of retries
 +
|- style='background: lightsteelblue'
 +
! Version
 +
! Release
 +
! Token
 +
! Changeset
 +
! Description
 
|-
 
|-
| 61
+
| 61 || ||
 
| {{changeset|26106}}
 
| {{changeset|26106}}
 
| {{protodel|QUERY_GENPIXMAP}} {{protoadd|QUERY_GENPIXMAP2}}
 
| {{protodel|QUERY_GENPIXMAP}} {{protoadd|QUERY_GENPIXMAP2}}
 
|-
 
|-
| 62 (TOKEN = 78B5631E)
+
| 62 || || 78B5631E
 
| {{changeset|26280}}
 
| {{changeset|26280}}
 
| {{protomod|MYTH_PROTO_VERSION}}
 
| {{protomod|MYTH_PROTO_VERSION}}
 
|-
 
|-
| 63 (TOKEN = 3875641D)
+
| 63 || 0.24 || 3875641D
 
| {{changeset|26518}}
 
| {{changeset|26518}}
 
| {{protoadd|GET_RECORDING_STATUS}}
 
| {{protoadd|GET_RECORDING_STATUS}}
 +
|-
 +
| 64 || || 8675309J
 +
| {{changeset|27308}}
 +
| {{protoadd|SCAN_VIDEOS}}
 +
|-
 +
| 65 || || D2BB94C2
 +
| {{gitcommit|e965e4bab1|mythtv|v0.25pre-1362-ge965e4b}}
 +
{{gitcommit|ed0014b84|mythtv|v0.25pre-1431-ged0014b}}
 +
| {{protomod|QUERY_RECORDINGS}} {{protomod|QUERY_FILE_EXISTS}}
 +
|-
 +
| 66 || || 0C0FFEE0
 +
| {{gitcommit|1508085e|mythtv|v0.25pre-2052-g1508085}}
 +
{{gitcommit|c7de5d75|mythtv|v0.25pre-2053-gc7de5d7}}
 +
{{gitcommit|64d448ac|mythtv|v0.25pre-2054-g64d448a}}
 +
{{gitcommit|8456ea24|mythtv|v0.25pre-2072-g8456ea2}}
 +
| {{protomod|ANN}} {{protomod|QUERY_BOOKMARK}} {{protomod|QUERY_COMMBREAK}} {{protomod|QUERY_CUTLIST}} {{protomod|QUERY_FILETRANSFER}}{{protomod|QUERY_FREE_SPACE}} {{protomod|QUERY_FREE_SPACE_SUMMARY}} {{protomod|GET_FILE_POSITION}} {{protomod|GET_FRAMES_WRITTEN}} {{protomod|GET_KEYFRAME_POS}} {{protomod|GET_MAX_BITRATE}} {{protomod|SET_BOOKMARK}}
 +
|-
 +
| 67 || || 0G0G0G0
 +
| {{gitcommit|a41e9657c0|mythtv|v0.25pre-2563-ga41e965}}<br>{{gitcommit|fb63a2e7|mythtv|v0.25pre-2603-gfb63a2e}}
 +
| {{protomod|ProgramInfo}}<br>object changes. From 41 fields up to 44 - adds 'season', 'episode', and 'inetref', and is a significant reordering<br><br>{{protomod|ANN}}
 +
|-
 +
| 68 || || 90094EAD
 +
| {{gitcommit|a17e689bdc0|mythtv|v0.25pre-2666-ga17e689}}<br>{{gitcommit|82c763ac1099|mythtv|v0.25pre-2674-g82c763a}}
 +
| {{protomod|VIDEO_LIST_CHANGE}}<br>{{protoadd|VIDEO_LIST_NO_CHANGE}}
 +
|-
 +
| 69 || || 63835135
 +
| {{gitcommit|fb34130d3a7d3c|mythtv|v0.25pre-2682-gfb34130}}
 +
| {{protomod|QUERY_FILE_HASH}}
 +
|-
 +
| 70 || || 53153836
 +
| {{gitcommit|1da9d23|mythtv|v0.25pre-2682-g1da9d23}}
 +
| {{protomod|QUERY_FILETRANSFER}}
 +
|-
 +
| 71 || || 05e82186
 +
| {{gitcommit|3281cdd3|mythtv|v0.25pre-4068-g3281cdd}}
 +
| Add livetvorder to InputInfo in {{protomod|ASK_RECORDING}} {{protomod|GET_FREE_INPUTS}}
 +
|-
 +
| 72 || 0.25 || D78EFD6F
 +
| {{gitcommit|7a94153c|mythtv|v0.25pre-4068-g7a94153}}
 +
| {{protoadd|QUERY_ACTIVE_BACKENDS}}
 +
|-
 +
| 73 || || D7FE8D6F
 +
| {{gitcommit|cbb8eb1e|mythtv|v0.26-pre-15-gcbb8eb1e}}
 +
| {{protomod|RESCHEDULE_RECORDINGS}}
 +
|-
 +
| 74 || || SingingPotato
 +
| {{gitcommit|3fb9d6eb|mythtv|}}
 +
| No changes. The protocol changes were factored out before commit, but not the protocol version update.
 +
|-
 +
| 75 || 0.26 || SweetRock
 +
| {{gitcommit|1f8c590210|mythtv|v0.26-pre-1f8c590210}}
 +
| Update DB times to UTC.
 +
|-
 +
| 76 || || FireWilde
 +
| {{gitcommit|d4dcff374e|mythtv|v0.27-pre2-72-gd4dcff3}}
 +
| {{protomod|ProgramInfo}}<br>object changes. Inserts syndicatedepisodenumber at position 5, and adds partnumber and parttotal to the end.
 +
|-
 +
| 77 || || WindMark
 +
| {{gitcommit|49dbed5be0|mythtv|v0.27-pre2-485-g49dbed5}}
 +
| {{protomod|FILL_DURATION_MAP}}
 
|}
 
|}
 
</center>
 
</center>
Line 314: Line 390:
  
 
== Third Party Code that implements the Myth Protocol ==
 
== Third Party Code that implements the Myth Protocol ==
*[http://sourceforge.net/projects/mythtvj/ MythtvJ] is a high-level Java client library. It currently supports the version 40 of the protocol. Currently streaming a file from the backend, reading the EPG and tuning a recorder is supported.
+
*[http://sourceforge.net/projects/mythtvj/ MythtvJ] is a high-level Java client library. It currently supports the version 40 of the protocol. Currently streaming a file from the backend, reading the EPG and tuning a recorder is supported.  Last updated for protocol version 40 (0.21).
 +
*[https://github.com/nickludlam/ruby-mythtv ruby-mythtv] is a basic set of Ruby bindings providing a connected backend socket. Last updated for protocol 56 (0.23).
 +
*[https://github.com/hmadjarian2/telneting_mythtv telnetting_mythtv] is a very basic C# library.  Last updated for protocol version 40 (0.21).
 +
*[https://launchpad.net/libmythtv-java libmythtv-java] is a suite of libraries used to communicate with the entire MythTV ecosystem from Java.  The latest released version (0.1) supports protocol versions 63 (0.24) through 70 (git master as of 2012/01/13).
 +
*[http://jmythapi.sourceforge.net/ jMythAPI] is a a java library to query and control a MythTV backend and MythTV database. Its supports all protocol versions from 01 to 77 (0.27).
  
 
== Third Party Code that implements the Myth Protocol ... badly ==
 
== Third Party Code that implements the Myth Protocol ... badly ==

Revision as of 20:01, 11 November 2013

Warning.png Warning: The Myth Protocol is designed for internal use only, for third party applications we strongly recommend using the Services API instead which uses HTTP and a choice of JSON or XML serialised data, with support for SOAP, WSDL etc

Basic Guide

There is guide started, which describes how to use the Myth Protocol for watching Live TV.

List of proto bumps

Version Release Token Changeset Description
1 [3021]

+MYTH_PROTO_VERSION

2 [3078]
3 [3112]

+GET_NEXT_FREE_RECORDER

4 [3308]
5 [3503]

+REACTIVATE_RECORDING , +REFRESH_BACKEND

6 [3589]
7 [3617]
8 [3621]
9 [3838]

+GET_FREE_RECORDER_COUNT

10 [3966]
11 [3973]
12 [3988]
13 [4122]
14 [4508]
15 0.18 [5833]

+QUERY_LOAD , +QUERY_UPTIME , +QUERY_MEMSTATS , +QUERY_GUIDEDATATHROUGH , +RESCHEDULE_RECORDINGS

16 [6284]

+FORCE_DELETE_RECORDING , +OK , +UNKNOWN_COMMAND

17 [6482]

-QUERY_FREESPACE , +QUERY_FREE_SPACE , +QUERY_FREE_SPACE_LIST , +GET_FREE_RECORDER_LIST , +QUERY_PIXMAP_LASTMODIFIED , +QUERY_COMMBREAK , +QUERY_CUTLIST , +QUERY_BOOKMARK , +SET_BOOKMARK , +QUERY_SETTING , +SET_SETTING , *QUERY_REMOTEENCODER , *QUERY_RECORDER

18 [6865]

*QUERY_RECORDER

19 [7427]

-REACTIVATE_RECORDING , +ALLOW_SHUTDOWN , +BLOCK_SHUTDOWN , *QUERY_RECORDER

20 [7739]

*ANN , *QUERY_RECORDER

21 [7826]

-GET_PROGRAM_INFO , -GET_INPUT_NAME

22 [7883]

*ANN , +LIVETV_EXITED

23 [8553]

-QUEUE_TRANSCODE , -QUEUE_TRANSCODE_CUTLIST , -QUEUE_TRANSCODE_STOP , +QUERY_GETEXPIRING , +SCHEDULER_ADD_RECORDING , +CLEAR_SETTINGS_CACHE

24 [8617]
25 [8628]
26 0.19 [8754]

+SET_LIVE_RECORDING

27 [8973] Unification of the ChannelBase class???

-SCHEDULER_ADD_RECORDING , -TOGGLE_INPUTS , +GET_CONNECTED_INPUTS , +GET_INPUT , +SET_INPUT

28 [9524] Backend portion of Channel Editing patch.

+GET_CHANNEL_INFO , +SET_CHANNEL_INFO , +SET_TIMEOUT

29 [9592] Increments protocol to deal with new FileTransfer params

*ANN

30 0.20 [9968] Adds recorder keyed picture attribute adjustments

+GET_COLOUR , +GET_CONTRAST , +GET_BRIGHTNESS , +GET_HUE , *CHANGE_COLOUR , *CHANGE_CONTRAST , *CHANGE_BRIGHTNESS , *CHANGE_HUE

Version Release Token Changeset Description
31 0.20 [11278] Add parentid to the proginfo StringLists.
32 [12151] Introduction of StorageGroups

+QUERY_RECORDING , +QUERY_FREE_SPACE_SUMMARY , +SET_NEXT_LIVETV_DIR

33 [12904] Changes the format of the original airdate field in the ProgramInfo stringlist
34 [13230] Sends the start channel as additional parameter in SpawnLiveTV

*SPAWN_LIVETV

35 [13952] Replaces the current hdtv, stereo and closecaptioned flags with videoproperties, audioproperties and subtitletype vars
36 [14483]

+UNDELETE_RECORDING

37 [15437]

-GET_CONNECTED_INPUTS , +GET_FREE_INPUTS , +GET_FLAGS , +CANCEL_NEXT_RECORDING , +STOP_RECORDING

38 [15550]

+DELETE_FAILED_RECORDING

39 0.21 [15701] Revert [15549], because the scheduler (starting with [15566]) now uses its own temporary copy of the record table during the BUSQ.

-DELETE_FAILED_RECORDING

40 0.21 [16090] Patch from #4583, along with corresponding fixes in mythweb and the perl bindings. Switches QUERY_PIXMAP_LASTMODIFIED to send a unix timestamp instead of a localized string that would be affected by LANG settings.

*QUERY_PIXMAP_LASTMODIFIED

41 [18419] Adds the production year to the programinfo sent via the protocol.
42 [18574]

+QUERY_TIME_ZONE

43 [19417] (warning: huge changeset) Associated with the merging of the mythtv-vid branch to trunk.

*FILL_POSITION_MAP

and possibly GetChainWithRecording.  
44 [19978] Adds Videos storage group

+QUERY_SG_GETFILELIST , +QUERY_SG_FILEQUERY

45 [20523] Add channel grouping feature

*TOGGLE_CHANNEL_FAVORITE
+GO_TO_SLEEP

46 [21156] Adds ability to delete remote files

+DELETE_FILE , *ANN , *QUERY_FILETRANSFER

47 [21298] Adds filesystem block size to the FileSystemInfo structure

*QUERY_FREE_SPACE , *QUERY_FREE_SPACE_LIST

48 [21445] When ANN returns "ERROR", it is now followed by the reason for the error
49 [22164] Adds new pixmap query to speed up preview generation

+QUERY_PIXMAP_GET_IF_MODIFIED
Add a RemoteFile::Exists(QString &url) method for checking for the existence of a remote file.
+QUERY_FILE_EXISTS

50 0.22 [22170] Adds a hostname lookup to aid use of Storage Groups in MythVideo

+QUERY_HOSTNAME

51 [22892] Adds a remote hash function for files based of that used by OpenSubtitles.

+QUERY_FILE_HASH

52 [22932]
53 [22955]
54 [22976]

+MASTER_UPDATE_PROG_INFO , +UPDATE_PROG_INFO

55 [22992]

*MASTER_UPDATE_PROG_INFO

56 0.23 [23028] Added system events,

*DELETE_RECORDING , *ANN

23056 0.23.1 [25364]

*DELETE_RECORDING

57 [24694]

*ProgramInfo
object changes. From 47 fields down to 41 - filesize as a long, removed duplicate, shareable, previouslyshown, commfree, hasairdate, added year.

58 [25351]

+DOWNLOAD_FILE , +DOWNLOAD_FILE_NOW

59 [25858]

[25363]

Adds support for ISOs over remote file access.

*DELETE_RECORDING

60 [26101]

*ANN
Alters FileTransfer to accept timeout instead of number of retries

Version Release Token Changeset Description
61 [26106]

-QUERY_GENPIXMAP

+QUERY_GENPIXMAP2

62 78B5631E [26280]

*MYTH_PROTO_VERSION

63 0.24 3875641D [26518]

+GET_RECORDING_STATUS

64 8675309J [27308]

+SCAN_VIDEOS

65 D2BB94C2 [v0.25pre-1362-ge965e4b]cgitgithub

[v0.25pre-1431-ged0014b]cgitgithub

*QUERY_RECORDINGS

*QUERY_FILE_EXISTS

66 0C0FFEE0 [v0.25pre-2052-g1508085]cgitgithub

[v0.25pre-2053-gc7de5d7]cgitgithub [v0.25pre-2054-g64d448a]cgitgithub [v0.25pre-2072-g8456ea2]cgitgithub

*ANN

*QUERY_BOOKMARK

*QUERY_COMMBREAK

*QUERY_CUTLIST

*QUERY_FILETRANSFER

*QUERY_FREE_SPACE

*QUERY_FREE_SPACE_SUMMARY

*GET_FILE_POSITION

*GET_FRAMES_WRITTEN

*GET_KEYFRAME_POS

*GET_MAX_BITRATE

*SET_BOOKMARK

67 0G0G0G0 [v0.25pre-2563-ga41e965]cgitgithub
[v0.25pre-2603-gfb63a2e]cgitgithub

*ProgramInfo
object changes. From 41 fields up to 44 - adds 'season', 'episode', and 'inetref', and is a significant reordering

*ANN

68 90094EAD [v0.25pre-2666-ga17e689]cgitgithub
[v0.25pre-2674-g82c763a]cgitgithub

*VIDEO_LIST_CHANGE
+VIDEO_LIST_NO_CHANGE

69 63835135 [v0.25pre-2682-gfb34130]cgitgithub

*QUERY_FILE_HASH

70 53153836 [v0.25pre-2682-g1da9d23]cgitgithub

*QUERY_FILETRANSFER

71 05e82186 [v0.25pre-4068-g3281cdd]cgitgithub Add livetvorder to InputInfo in

*ASK_RECORDING

*GET_FREE_INPUTS

72 0.25 D78EFD6F [v0.25pre-4068-g7a94153]cgitgithub

+QUERY_ACTIVE_BACKENDS

73 D7FE8D6F [v0.26-pre-15-gcbb8eb1e]cgitgithub

*RESCHEDULE_RECORDINGS

74 SingingPotato []cgitgithub No changes. The protocol changes were factored out before commit, but not the protocol version update.
75 0.26 SweetRock [v0.26-pre-1f8c590210]cgitgithub Update DB times to UTC.
76 FireWilde [v0.27-pre2-72-gd4dcff3]cgitgithub

*ProgramInfo
object changes. Inserts syndicatedepisodenumber at position 5, and adds partnumber and parttotal to the end.

77 WindMark [v0.27-pre2-485-g49dbed5]cgitgithub

*FILL_DURATION_MAP

Legend: - = removed command, + = added command, * = changed command

Packet Data Format

(This information is from reading the code and packet sniffing. Do not take this information as a specification, as the developers may not have intended some of the following behavior)

A MythTV protocol packet contains two fields, the size and the payload. The first field is the size, encoded as an 8 byte, UTF8 decimal string padded with spaces. If you are sending a 20 byte payload, the first 8 bytes should be the characters "20" followed by 6 spaces. The second field is the payload, an arbitrary length UTF8 string made up of a list of one or more strings seperated by a the delimeter "[]:[]". Commands are sent to port 6543.

Event Handling

When announcing ones self to the backend, the client can specify that it wants to receive update events. These events follow the same packet data format as outlined above and are sent asynchronously. These events will be identified as a backend message, and care must be taken to properly handle these when querying information from the backend.

Backend Commands

(This information is from reading the code and packet sniffing. Do not take this information as a specification, as the developers may not have intended some of the following behavior)

Backend commands are sent using the above packet format. The first string in the payload is the command, possibly with whitespace separated arguments. There may also be other arguments in successive strings in the list, separated by the delimiter "[]:[]". The two types of arguments are not interchangeable, each command may require specific whitespace separated arguments as well as specific list arguments.

Whitespace is spaces, tabs, carriage returns, linefeeds, etc. Multiple whitespace characters are treated as a single whitespace.

In general, commands and arguments are case sensitive.

When testing your code with the protocol, be warned that all commands except MYTH_PROTO_VERSION, ANN, and DONE will silently fail until a successful ANN command has been received by the backend. This includes non-existent commands.

For a list of all Myth protocol commands, see the Command List.

Some example MythTV protocol exchanges, taken from a packet sniffing capture of a 0.19 frontend to backend exchange:

Frontend sends Backend responds with
23      ANN Playback sycamore 0
2       OK
48      QUERY_FILETRANSFER 32[]:[]REQUEST_BLOCK[]:[]2048
4       2048
63      QUERY_FILETRANSFER 32[]:[]SEEK[]:[]0[]:[]0[]:[]0[]:[]0[]:[]2048
7       0[]:[]0

Third Party Code that implements the Myth Protocol

  • MythtvJ is a high-level Java client library. It currently supports the version 40 of the protocol. Currently streaming a file from the backend, reading the EPG and tuning a recorder is supported. Last updated for protocol version 40 (0.21).
  • ruby-mythtv is a basic set of Ruby bindings providing a connected backend socket. Last updated for protocol 56 (0.23).
  • telnetting_mythtv is a very basic C# library. Last updated for protocol version 40 (0.21).
  • libmythtv-java is a suite of libraries used to communicate with the entire MythTV ecosystem from Java. The latest released version (0.1) supports protocol versions 63 (0.24) through 70 (git master as of 2012/01/13).
  • jMythAPI is a a java library to query and control a MythTV backend and MythTV database. Its supports all protocol versions from 01 to 77 (0.27).

Third Party Code that implements the Myth Protocol ... badly

These implementations support an unknown protocol version, and repeatedly guess at what version the backend wants to use, in order to force a connection without actually maintaining the code. This should be considered very dangerous behavior, and should not be used to connect to any production backend.

  • libcmyth from mvpmc is a lightweight C client library which is also used by XBMC. It features livetv with epg, watching recordings and managing recordings.
  • GMyth is a library based on the Glib/GObject APIs. It is used in MobileMythtv, GMythStream and others.

Subcategories

This category has only the following subcategory.

Pages in category "Myth Protocol"

The following 2 pages are in this category, out of 2 total.