title
Products            Buy            Support Forum            Professional            About            Codec Central
 

UPnP Extensions: Taking UPnP to the Next Level

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Spoon
    Administrator
    • Apr 2002
    • 44509

    UPnP Extensions: Taking UPnP to the Next Level

    UPnP for all its worth has a number of limiting factors, this post will contain details of the open extensions which Asset UPnP supports.

    Please direct all discussions relating to anything here:

    Last edited by Spoon; August 14, 2011, 10:35 AM.
    Spoon
    www.dbpoweramp.com
  • Spoon
    Administrator
    • Apr 2002
    • 44509

    #2
    Re: UPnP Extensions: Taking UPnP to the Next Level

    Control Point album art size request - implemented in Asset R3.1

    If you had a listing of all albums on a system (1000 albums) and the control point is listing the albums in a vertical list, it could be the art thumbnail is only 100x100 pixels, yet the art might be 1000x1000 in certain files, this shows down album art retrieval by a huge amount.

    A UPnP server which supports control point requested size will list the album art as:

    Code:
    http://127.0.0.1/someartworkurl.jpg?size=0
    it is the size=0 which is important (properly split the query as there might be addition future entries), size=0 indicates the UPnP server is able to size the art on request, for example the control point wants 50x50, it would ask for:

    Code:
    http://127.0.0.1/someartworkurl.jpg?size=50
    the control point want art at maximum stored resolution

    Code:
    http://127.0.0.1/someartworkurl.jpg?size=0
    Last edited by Spoon; August 14, 2011, 09:37 PM.
    Spoon
    www.dbpoweramp.com

    Comment

    • Spoon
      Administrator
      • Apr 2002
      • 44509

      #3
      Re: UPnP Extensions: Taking UPnP to the Next Level

      Proposal For Discussion: Additional Album Art Storage

      UPnP allows only one album art per track, many people would like to store additional art with the tracks, such as back cover and liner notes. It is proposed that these additional artworks can be advertised as:

      Code:
      http://127.0.0.1/someartworkurl.jpg?aw1=3&aw2=4&aw3=5&aw4=5&aw5=5&aw6=B
      Dissecting this we have 6 artworks 1..2..3..4..5..6 (parse the list 1..n until item is not present), the number after the equals indicates which type of artwork it is, a hexadecimal number based on ID3 picture frame identification:

      Code:
      $00     Other 
      $01     32x32 pixels 'file icon' (PNG only)
      $02     Other file icon
      $03     Cover (front)
      $04     Cover (back)
      $05     Leaflet page
      $06     Media (e.g. lable side of CD)
      $07     Lead artist/lead performer/soloist
      $08     Artist/performer
      $09     Conductor
      $0A     Band/Orchestra
      $0B     Composer
      $0C     Lyricist/text writer
      $0D     Recording Location
      $0E     During recording
      $0F     During performance
      $10     Movie/video screen capture
      $11     A bright coloured fish
      $12     Illustration
      $13     Band/artist logotype
      $14     Publisher/Studio logotype
      In the example url we have images of:

      1: Cover Front (3)
      2: Cover Back (4)
      3: Leaflet page (5)
      4: Leaflet page (5)
      5: Leaflet page (5)
      6: Composer (B)

      It is recommended that Cover Front art is always the first item on the list.

      Control Point Requesting Specific Art

      If the control point requests:

      Code:
      http://127.0.0.1/someartworkurl.jpg?aw1=3&aw2=4&aw3=5&aw4=5&aw5=5&aw6=B
      It gets back the first normal artwork (which should be front cover)

      To request the 2nd Leaflet page (artwork 4) it should:

      Code:
      http://127.0.0.1/someartworkurl.jpg?artreq=4
      Note that size might also be present on the url:

      Code:
      http://127.0.0.1/someartworkurl.jpg?size=0&aw1=3&aw2=4&aw3=5&aw4=5&aw5=5&aw6=B
      so a request might be:

      Code:
      http://127.0.0.1/someartworkurl.jpg?size=100&artreq=4
      Last edited by Spoon; August 14, 2011, 10:53 AM.
      Spoon
      www.dbpoweramp.com

      Comment

      • Spoon
        Administrator
        • Apr 2002
        • 44509

        #4
        Re: UPnP Extensions: Taking UPnP to the Next Level

        UPnP in the Cloud: Control Point Discovery Technical Document

        Draft 1 (26th July 2011)

        Current control points rely on SSDP discovery for a UPnP server to make its presence known, obviously this cannot function through the Internet so a way of specifying the server has to be provided by the user into the control point, at the same time the user can enter their credentials to ensure that they only have access to their content.
        To keep it as simple as possible the user should type as little as possible, 3 pieces of information are required:
        • Server Address
        • User ID
        • Password

        The user ID should only allow characters a-z and numbers 0-9, and be case independent.
        The control point would take this information and put it into a standard device discovery URL, for example the following information is supplied:
        • Sever Address: a.cloudupnp.com
        • User ID: user1234
        • Password: tuesday

        For sake of preserving the security of passwords (which might be used elsewhere), the password is hashed through sha1 taking a hex representation of the result (in uppercase). The salt for the password is the username.
        For the given user ID & password above: sha1("user1234tuesday")
        giving a result: 6A6B4062BB3289F4624343C5D0EA88493FB77A98
        Constructed URL:
        Code:
        http://a.cloudupnp.com/user1234/6A6B4062BB3289F4624343C5D0EA88493FB77A98/
        From here the server returns a standard Device Descriptor XML (using port 80) with a special exception: returned SCPDURL / controlURL cannot be relative as required by the UPnP specification, instead an absolute URL is returned which uses an IP address (for renderers which cannot perform a DNS lookup).
        An example returned SCPDURL might be:
        Code:
        100.1.23.56:33333/ContentDirectory/e48c8f12-64bd-1-2-123456789abc/scpd.xml?un=user1234&pwd=6A6B4062BB3289F4624343C5D0EA88493FB77A98
        Where 100.1.23.56 is the IP address of the server (most likely a different IP address from a.cloudupnp.com), 33333 is the port that should be used and the URL contains a query embedded User ID and Password. If at a later date the user were to change their password, the URL given out by the Device Descriptor would change.
        eventSubURL are blank (<eventSubURL></eventSubURL>) as there is no eventing from the Internet.
        Ideally a control point would list the cloud based service under available servers, once selected allowing for credentials to be entered. The control point must allow multiple servers to be added, each cloud based server might offer a different package. The icon for each service should be retrieved from the Device Descriptor XML, however when signing up a generic cloud icon could be used.
        Last edited by Spoon; August 14, 2011, 09:37 PM.
        Spoon
        www.dbpoweramp.com

        Comment

        Working...

        ]]>