I've refactored the two existing patches to separate out the chunked response issue, which I then reworked from scratch so as to make a formal distinction between chunking and 'normal' response modes. Having gone through the exercise it doesn't seem to me that these modes are really that far apart and that making the distinction is ultimately necessary, but testing will tell I guess:
Patch 1 - Chunked Response Mode ( View )
This patch adds a 'ChunkedTransfer' option to renderer.conf which activates these basic differences with the default PMS content header:
- Content-Length refers to the immediate chunk, not the overall media size.
- Content-Length is never more than was specifically requested.
- Content-Length is omitted if total media size is unknown and the requested range is open-ended, only Content-Range is sent.
- No spoofing via arbitrary media sizes, i.e DLNAMediaInfo.TRANS_SIZE (in current svn this is already disabled for Content-Length but not Content-Range).
- Not strictly necessary, but for slightly less non-compliance with HTTP/1.1 '*' replaces '-1' to signify unspecified in Content-Range. We ignore the requirement that highRange always be absolute.
Patch 2 - PartialContentRange (WoH #822) ( View )
Already discussed (issue #822) and applied in the SubJunk and ExSport builds, it ensures that reading is efficient. The patch below is the core implementation, minus WoH's original mods to RequestV2.java. Needless to say there are no inherent conflicts here either. I'd also note that with this patch available bytes are automatically constrained to requested bytes so one more difference between chunked and 'normal' mode disappears.
Patch 3 - Sony bluray image thumbnails and M2TS support (patters) ( View )
This patch includes the following (imo) uncontroversial changes to get image thumbs and m2ts working in sony bluray, and doesn't break anything either:
- Gives jpeg thumbnails a dedicated renderer option, 'ForceJPGThumbnails'. Currently RendererConfiguration.isBRAVIA() does double duty as a switch for jpeg thumbs and a temporary Bravia-specific muxing fix, unwanted here. This patch is implemented in a backward-compatible way vis. isBRAVIA(). See also the original discussion.
- Ensures that a localized MPEG_TS_SD_xx dlna tag is sent for the 'video/vnd.dlna.mpeg-tts' mime-type.
- Adds a default SonyBluray.conf.
Test jar ( pms-chunkedresponse-sonybluray.zip )
For quick testing drop the enclosed update.jar (all 3 patches applied to r803 for pmsencoder compatibility) into your PMS (1.31) folder and add the following to your renderer's conf file:
- Code: Select all
EDIT: Patches can be downloaded from the ps3mediaserver issue #822 page.