Post Sun Jun 19, 2011 11:10 am

Sony Receiver STR-DA4600ES

First things first. Let me introduce myself. Hi! I'm the expat guy sitting in front of his computer hoping somebody else benefits from whatever I do. I think that's probably most of you. Right away I have to say that SERViiO is top notch work. I really hope the development continues, because this is a really promising and already highly functional application.

My setup is only of relevance because I think it demonstrates that serviio works correctly on my network and that the diversity of devices can be used to see what is a server configuration error on my part and what is something else...probably on my part.

All US gear... sadly that means the first thing is...

AT&T Uverse RG (Modem + Router + Lan + Wifi) This is a 2Wire (now Pace) product: 3800HGV-B. This is my DHCP server, Private and Statics. Wifi is off and bridged.
Ethernet to Netgear Gigabit Switch
Switch to Apple Airport Extreme in Bridge Mode with DMZ Plus set in RG and stealth mode off.
2 more PS3s (including one new flat model w/ HDMI control/Bravia control)
Myriad of machines. Macs, Win XP, Vista (don't hate me), 7, and mint.

That's the basic setup. My current workspace is where all my sharing goes on.

This consists of:
Mac Mini (current) running Serviio 5.2(C)
Samsung UN55D7000 (current software)
PS3 (upright model w/o emotion engine) (current software) Shows a brown dot in status, but works.
and of course the main item in this:
Sony STR-DA4600ES Receiver (built in switch with cat5 from RG) Software Current 1010 IIRC

I have been handing out fixed addresses from the private pool and refreshing the leases on each device to develop stability.

At first I had no problem connecting to the Samsung. Then I ran a few other servers on another machine (XBMC, Playback, etc).. and as soon as I had a DLNA Server and Client running there I needed to bind the IP of the Serviio install for it to work.

I am currently working on a profile for my receiver and I would like some feedback on my progress.

The first thing I noticed was that the server function of the receiver ONLY played MP3s and JPEGS. After a while it resolved to play gif files. My PS3 is of course bulletproof and the D series Samsung does practically everything.

Profiles are all set automatically for the devices.

At first nothing worked with the other profiles, except
  Code:
<Profile id="6" name="DirecTV HD-DVR" extendsProfileId="1">


I assume this is because "mpeg" forces LPCM

I then checked on my VAIO (win 7) to see what uPnP Device Spy would tell me (used the sony server for years and Serviio kills it):

http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG
http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED
http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM
http-get:*:audio/L16;rate=48000;channels=2:DLNA.ORG_PN=LPCM
http-get:*:audio/L16;rate=48000;channels=1:DLNA.ORG_PN=LPCM
http-get:*:audio/L16;rate=44100;channels=2:DLNA.ORG_PN=LPCM
http-get:*:audio/L16;rate=44100;channels=1:DLNA.ORG_PN=LPCM
http-get:*:audio/mpeg:DLNA.ORG_PN=MP3
http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMAFULL
http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMABASE
http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC
http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL
http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_FULL
http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_BASE
http-get:*:image/png:*
http-get:*:image/bmp:*
http-get:*:audio/wav:*
http-get:*:audio/x-wav:*

So I set about trying to make a profile, which does work.

The first issue was Detection.

I read the Serviio Support page for Editing renderer profiles http://www.serviio.org/index.php?option=com_content&view=article&id=16 and thought there may be some benefit to using UPnP M-SEARCH as the preferred method. I presume that with this provision, devices answer and poll capabilities. However, I believe it is worth noting that the Receiver does not have a default name to prepend into a regex. The name is the name of the product (STR-DA4600ES) and it can be changed by the user at will. I ended up using the following:
  Code:
<UPnPSearch>
     <FriendlyName>STR.*</FriendlyName>
</UPnPSearch>


I think the regex is probably wrong because it presumes completion of STR. I am at a loss as to whether I should just hardcode the device name as in the Xbox 360 profile or leave an open expression. Currently the system works correctly when the server is restarted. What would be the best practice here please?

The second thing that I was unsure of was whether I should use the UPnP M-SEARCH method at all, but thanks to this post http://forum.serviio.org/viewtopic.php?f=5&t=2341 I presume that showing up in Device Spy should automatically justify using M-SEARCH if the connection otherwise works.

What is the best solution to detection and naming?

I immediately wanted to be able to playback AAC files, so I added what I thought was the obvious audio section and it worked. Here is my profile so far (excuse the long post and comments please)

  Code:
   
<Profile id="14" name="STR-DA4600ES" extendsProfileId="1">
   <Detection>
            <UPnPSearch>
                <FriendlyName>STR.*</FriendlyName>
            </UPnPSearch>
        </Detection>   
 
 
 <!--- Method below works, but is considered suboptimal           
        <Detection>
      <HttpHeaders>
         <User-Agent>.*DIRECTV.*</User-Agent>
      </HttpHeaders>
   </Detection>
       
        -->
       
   <Transcoding>

<!--- Original working target was:
                        <Video targetContainer="mpeg" targetVCodec="mpeg2video" targetACodec="mp2" maxVBitrate="8192" forceStereo="true">
-->
       
      <Video targetContainer="mpeg" targetACodec="lpcm">
         <Matches container="matroska" />
         <Matches container="mp4" />
         <Matches container="asf" />
         <Matches container="avi" />
      </Video>
           
            <!-- audio/mp4 matches AAC_ISO & AAC_ISO_320 lpcm rate OK -->

               <Audio targetContainer="lpcm">
                        <Matches container="mp4" />
               </Audio>

   </Transcoding>
</Profile>


So now I am at a state where I have been going through the Generic DLNA profiles, choosing what is automatically supported and removing it from my hit list, adding questionable items requiring testing. For example:

Questionable (require testing)
-other jpegs are supported
JPEG_TN "image/jpeg" "jpeg"
-image/png is supported
PNG_LRG "image/png" "png"
PNG_TN "image/png" "png"

Listing the file types which are not listed in the dump or certs

Not Listed (require testing)
-GIF seems to play
GIF_LRG "image/gif" "gif"


And finding questions about what may require container matching due to partial support (although I am not sure if this is the way to proceed):

--AVC in MP4 Main Profile Standard Definition with Mp3?
--needs exception for lpcm transcode of audio
AVC_MP4_MP_SD_MPEG1_L3 "video/mp4" "mp4"
--AVC in MP no profile listed with LPCM
--needs no audio transcoding


So far the following work, which did not work before:

Videos: Most of my videos are handbrakes into the ipod legacy format for compatibility. They are h.264 in mp4/m4v (apple naming) containers with audio downmixed to Dolby Pro Logic II. I use DPLIIMusic (IMHO better than MOVIE) for playback, so I changed the transcoding setting from stereo to keep original; in the hope that I would be able to defeat any issues with profile exceptions.
AAC: Obviously, this was audio "mp4".

ISSUES:

The functionality problems I find are the following:
-There is an audio delay after the video starts playing for movies.
-I have been questioning whether or not to change the transcode for matches of mp4/m4v from "lpcm" to mp3 because on one core (while setting up I am not enabling 2) the load is hitting the 90s. I assumed that this profile would have minimal transcoding, but it appears to work harder than necessary. So I think something must be really wrong in my setup or I need to make some major compromises.
-When playing back MP3 files (and AAC) There is an audible chirp at the start of each track. This does not appear on the PS3 or the D series. I was expecting the decoder on the receiver to flash on and off when each new track stopped and was started, but it seems like there is something going on at a low level that both adds the noise and keeps the connection open. (could this be like the Sony BDP expecting 32KB chunks?)
-That thing where a DMP/DMR shows all three media categories when one type is selected and refuses to play back without changing media type. Is there a way to maybe do something trick in presentation. It's like that for everything, so I'm not holding out much hope.

And of course the DRM is untested, so that really is my issue. I didn't dig into the container recognition system beyond some simple renaming of image files. To me, it appears that analysis occurs on the container and not just the name (vgood). I'll search this and hope there is an answer; but if anybody can throw in their opinion. How do I filter our Protected AAC? I AM working on making this machine all free open source with DRM free media, including books.

I did make an effort to read all the documentation available and to search the forums. Perhaps I'm not the best at searching, so I apologize in advance if many of these questions have been answered before and thank you in advance for all the good work and obvious help that the developer and community have been providing. This project is Donation worthy and I really hope to see it progress.

<RANT>
DLNA couldn't just ID the device, check the organization site, and receive the appropriate profile information. Thanks for not targeting consumers and independent developers. This is why the industry starts to fail against that locked up Apple stuff. Ahh for the old days of an acoustic coupler and a dumb terminal with a paper roll instead of display. Why do unused optical ports stay lit until they burn out down the road.
</RANT>

So I'm clueless..
hence the username.

Thanks
-v