Difference between revisions of "Developer:Davaar:AvtService"

From LinnDocs
Jump to: navigation, search
(PLAYING)
(Supported actions)
 
Line 31: Line 31:
 
== Supported actions ==
 
== Supported actions ==
  
The following actions are supported as defined in the specification with the noted exceptions:
+
The following actions are supported as defined in the specification with the noted clarifications:
  
 
=== SetAVTransportURI() ===
 
=== SetAVTransportURI() ===

Latest revision as of 12:28, 23 November 2010

Architecture Overview

The AV Transport provides basic access to playing of audio tracks.
Please refer to the UPnP forum AV Transport specification AV Transport v2 for background information.

State Transitions

All state transitions are supported as defined in the specification with the additional valid transition from stopped to paused. Please refer to the state diagram in section 2.5.1 of the AV Transport specification.

Supported States

NO_MEDIA_PRESENT

This is the start-up state only. After a SetAVTransportURI() action has been issued this state is not re-entered.

STOPPED

Entered when playing of a track has completed. Used to request the next track from the control point.

PLAYING

Entered when a track is playing.

PAUSED_PLAY

Entered when a pause action is issued.

TRANSITIONING

Momentary state when data is being buffered prior to playing or during seeking.

Supported actions

The following actions are supported as defined in the specification with the noted clarifications:

SetAVTransportURI()

GetMediaInfo()

GetMediaInfo_Ext()

GetTransportInfo()

GetPositionInfo()

GetDeviceCapabilities()

GetTransportSettings()

Stop()

Play()

  • Play from stopped - plays track from start
  • Play from paused - resumes play from paused position
  • Play from playing - plays track from start

Pause()

Seek()

  • Seek to Track 0 is equivalent to Next()
  • Seek to Track 1 replays the current track
  • Seek to Track other than 0 or 1 is illegal

Next()/Previous()

  • Next or Previous actions terminate playing of the current track and move to the stopped state - the general principle is that this causes the control point to recognise the stopped state as the end of track and send the next track. These functions rely upon the control point knowing which track to set next, i.e. the previous or next track in the playlist. We recommend using SetAVTransportURI() followed by Play() to implement the skip track functions.

Implementation Specifics

  • The DS source will automatically change to the  AV Transport source on execution of any AV Transport action.
  • For gapless playback, the DS Playlist service is recommended. The SetNextAVTransportURI() action is designed to allow gapless playback, however it has many limitations, as described in section 3.4/7.2 of Designing a UPnP AV MediaRenderer from Intel. Due to these limitations it is not usually implemented by the control point.

API Reference

UPnP AV Transport Service Description (XML)

Migration Guide