My working notes on looking at DLNA headers. Specific to my setup (minidlna, Sony BDP) only – using the wiki as a location to keep notes. Not meant to be useful for people who are not me. :)

Source: Episode ID 2002, 445063149 bytes, 425 MB


First HEAD request from DLNA client has this:

Getcontentfeatures.Dlna.Org: 1

Response from DLNA server is this:

Contentfeatures.Dlna.Org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000

Using libdlna as a reference, it means that mine supports HTTP Range requests.

/* DLNA.ORG_OP: operations parameter (string)
 *     "00" (or "0") neither time seek range nor range supported
 *     "01" range supported
 *     "10" time seek range supported
 *     "11" both time seek range and range supported
  • DLNA.ORG_OP=01 HTTP Range requests supported
  • DLNA.ORG_CI=0 media is not transcoded
  • DLNA.ORG_FLAGS=01700000 plus 24 trailing zeroes: dlnaVersion15Supported, connectionStallingSupported, backgroundTransferModeSupported, streamingTransferModeSupported
    • Supports DLNA version 1.5 (2006 spec)

HEAD Requests

Worth noting that the DLNA client sends three total HEAD requests. They are identical, except the first one also includes a User-Agent string:

User-Agent: UPnP/1.0 DLNADOC/1.50
Request Method: HEAD
Request Url: /MediaItems/224.mkv
User-Agent: UPnP/1.0 DLNADOC/1.50
Accept: */*
X-Av-Physical-Unit-Info: pa="Blu-ray Disc Player"
X-Av-Client-Info: av=5.0; cn="Sony Corporation"; mn="Blu-ray Disc Player"; mv="2.0"
Getcontentfeatures.Dlna.Org: 1

realTimeInfo.dlna.org: DLNA.ORG_TLAG=*

minidlna always sends the header, safe to ignore it (see upnphttp.c)