Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
dvr_api [2019/10/10 19:49]
neds [API URL]
dvr_api [2019/10/10 19:52]
neds
Line 2: Line 2:
  
 =====Live TV===== =====Live TV=====
 +<WRAP indent>
 The record engine supports buffering live TV with automatic tuner sharing. The record engine supports buffering live TV with automatic tuner sharing.
  
 ====API URL==== ====API URL====
 +<WRAP indent>
 <​code><​storage engine BaseURL>/​auto/​v<​channel number>?<​parameters></​code>​ <​code><​storage engine BaseURL>/​auto/​v<​channel number>?<​parameters></​code>​
  
 Example: <​code>​http://​10.20.20.162:​4999/​auto/​v2.1?<​parameters></​code>​ Example: <​code>​http://​10.20.20.162:​4999/​auto/​v2.1?<​parameters></​code>​
 +</​WRAP>​
 ====Parameters==== ====Parameters====
 +<WRAP indent>
 +^ Parameter ^ Type ^ Description ^
 +| ClientID | GUID | Unique ID to identify the player. |
 +| SessionID | hex32 | Unique ID to identify the channel request. |
  
-Parameter Type Description +Returns: Video stream from the requested channel. ​
-ClientID GUID Unique ID to identify the player. +
-SessionID hex32 Unique ID to identify the channel request. +
-Returns: Video stream from the requested channel.+
  
 If the app supports multiple running instances on the same computer each instance must have a unique ClientID. The ClientID does not need to be persistent across app launches. A valid implementation is to choose a ClientID when an instance of the app is launched. If the app supports multiple running instances on the same computer each instance must have a unique ClientID. The ClientID does not need to be persistent across app launches. A valid implementation is to choose a ClientID when an instance of the app is launched.
Line 23: Line 24:
  
 The SessionID must be unique for each new request of a channel. This allows the record engine to differentiate between a new request vs a seek within the existing session. The SessionID must be unique for each new request of a channel. This allows the record engine to differentiate between a new request vs a seek within the existing session.
 +</​WRAP>​
 ====Seeking==== ====Seeking====
 +<WRAP indent>
   - Close the existing HTTP connection that is streaming video.   - Close the existing HTTP connection that is streaming video.
   - Issue a new HTTP request specifying the desired starting byte offset in the RANGE header. The ClientID and SessionID parameters of the URL must be the same as the original HTTP request.   - Issue a new HTTP request specifying the desired starting byte offset in the RANGE header. The ClientID and SessionID parameters of the URL must be the same as the original HTTP request.
Line 31: Line 33:
  
 The record engine automatically limits the amount of back history that is available for a channel to avoid running the DVR out of disk space when a client is left playing a channel for an extended period of time. When attempting to seek back to a byte position that is before the oldest still-available data the record engine will return success and will indicate the actual (higher) byte position in the HTTP Content-Range response header. The record engine automatically limits the amount of back history that is available for a channel to avoid running the DVR out of disk space when a client is left playing a channel for an extended period of time. When attempting to seek back to a byte position that is before the oldest still-available data the record engine will return success and will indicate the actual (higher) byte position in the HTTP Content-Range response header.
 +</​WRAP>​
 ====Changing channel==== ====Changing channel====
 +<WRAP indent>
   - Close the existing HTTP connection that is streaming video.   - Close the existing HTTP connection that is streaming video.
   - Issue a new HTTP connection to request the new channel. Use the same ClientID but a new SessionID.   - Issue a new HTTP connection to request the new channel. Use the same ClientID but a new SessionID.
Line 40: Line 42:
  
 The new SessionID tells the record engine that this is a new request rather than a seek request. Required to handle the situation where the user leaves live TV mode, then a short while later goes back into live TV mode. The new SessionID tells the record engine that this is a new request rather than a seek request. Required to handle the situation where the user leaves live TV mode, then a short while later goes back into live TV mode.
 +</​WRAP>​
 +</​WRAP>​
  • Last modified: 2024/02/07 03:05