[mythtv-commits] mythtv branch master updated by jyavenard. v0.26-pre-141-g662728f

Git Repo Owner noreply at mythtv.org
Mon Apr 30 17:30:41 UTC 2012

The branch, master has been updated on the
mythtv repository by gitolite user jyavenard.
       via  662728fe7a6a45127664b9af042c4802b7487507 (commit)
       via  db30e6eaad92d067a84314d43f912f57e4d89465 (commit)
       via  bd883d7216b497d8193975e3b19cb7134eaff710 (commit)
      from  e778f23d0eeabf99be23121cebc190191aa7041f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 662728fe7a6a45127664b9af042c4802b7487507
Author:    Jean-Yves Avenard <jyavenard at mythtv.org> at Tue, 1 May 2012 02:55:15 +1000
Committer: Jean-Yves Avenard <jyavenard at mythtv.org> at Tue, 1 May 2012 02:56:49 +1000
URL:       http://code.mythtv.org/cgit/mythtv/commit/?id=662728fe7a6a45127664b9af042c4802b7487507

Add full IPv6 support to RAOP and fix Bonjour discovery of RAOP service.
Previously, what hostname Bonjour used to advertise a service was a bit of a mystery. If IPv6 was available , it could very well advertise an hostname resolving as IPv6 or use a link-local address. This cause the service to be visible on client (here iTunes), but it wouldn't have worked.
We know listen on all local interfaces, IPv6 and IPv4.
Also, do not advertise RAOP via Bonjour, if listening on the local interfaces failed

commit db30e6eaad92d067a84314d43f912f57e4d89465
Author:    Jean-Yves Avenard <jyavenard at mythtv.org> at Tue, 1 May 2012 02:42:52 +1000
Committer: Jean-Yves Avenard <jyavenard at mythtv.org> at Tue, 1 May 2012 02:56:25 +1000
URL:       http://code.mythtv.org/cgit/mythtv/commit/?id=db30e6eaad92d067a84314d43f912f57e4d89465

Add two network utility methods to ServerPool
Add tryListeningPort and tryBindingPort ; those methods are used to bind/listen on all local interfaces, both IPv6 and IPv4.
Add them to ServerPool class as they add functionality to it, but they do not change its functionality and how by default it binds on interfaces by looping individually through all of the.
They will be use for local services that are discovered through Bonjour.

commit bd883d7216b497d8193975e3b19cb7134eaff710
Author:    Jean-Yves Avenard <jyavenard at mythtv.org> at Mon, 30 Apr 2012 21:48:14 +1000
Committer: Jean-Yves Avenard <jyavenard at mythtv.org> at Tue, 1 May 2012 02:56:25 +1000
URL:       http://code.mythtv.org/cgit/mythtv/commit/?id=bd883d7216b497d8193975e3b19cb7134eaff710

Almost complete rewrite of RAOP server
Let me commend Mark Kendall for his previous implementation. As far as I could tell, his RAOP server was the only one implementing Airtunes v2 functionalities with a/v sync timestamps.
The rewrite serves several purposes. Mainly, I wanted to take ownership of this area of the code, and there were things I couldn't figure out. Most likely because whatever Mark used for AirPort's technical documentation isn't what I got.
Technical description of RAOP came mostly from:

I found the later to be the most correct.

Main area of focus:
-Audio Quality: Over slow or poor network connectivity (e.g. slow wireless) and with lots of packet drops: audio would have been corrupted (the system played audio packets in the order they were received, and not in the order they were supposed to be). For testing purposes, I simulated a 30% packet drop, and playback remained perfect.
-A/V Sync: Achieving perfect A/V sync across all platforms and with all the different type of audio architecture is almost impossible. However, I believe the results achieved are very good. Playback will automatically adjust itself according to the network latency and the audio hardware latency.

New features:
We now retrieve the media's metadata: Album name, artist name, song title and coverart. This only works when using iTunes. iOS device do not send metadata unless using FairPlay encryption. We only support RSA encryption.
Currently, this information is only shown in the logs, but in the future we'll be able to nicely show them in mythfrontend.

Additional credits:
-http://nto.github.com/AirPlay.html, gave information about how to configure Bonjour in order to receive MetaData from iTunes
-http://code.google.com/p/ytrack/wiki/DMAP : iTunes DMAP metadata structure


Summary of changes:
 mythtv/libs/libmythbase/serverpool.cpp       |  128 +++
 mythtv/libs/libmythbase/serverpool.h         |    8 +-
 mythtv/libs/libmythtv/mythraopconnection.cpp | 1279 +++++++++++++++++++-------
 mythtv/libs/libmythtv/mythraopconnection.h   |  141 ++-
 mythtv/libs/libmythtv/mythraopdevice.cpp     |  111 ++--
 mythtv/libs/libmythtv/mythraopdevice.h       |    6 +-
 6 files changed, 1250 insertions(+), 423 deletions(-)


More information about the mythtv-commits mailing list