Add support for receiving iTunes streams back, got broken in the process
authorJuho Vähä-Herttua <juhovh@iki.fi>
Sun, 13 May 2012 12:37:15 +0000 (15:37 +0300)
committerJuho Vähä-Herttua <juhovh@iki.fi>
Wed, 16 May 2012 21:57:07 +0000 (00:57 +0300)
src/lib/dnssd.c
src/lib/dnssdint.h
src/lib/global.h
src/lib/raop_rtp.c

index f2901e57e513a4d27ce5a066afbf5bac0de5a87d..dea813721152754a998a5c0f157912ba3eaad92e 100644 (file)
@@ -197,8 +197,8 @@ dnssd_register_raop(dnssd_t *dnssd, const char *name, unsigned short port, const
        dnssd->TXTRecordSetValue(&txtRecord, "tp", strlen(RAOP_TP), RAOP_TP);
        dnssd->TXTRecordSetValue(&txtRecord, "md", strlen(RAOP_MD), RAOP_MD);
        dnssd->TXTRecordSetValue(&txtRecord, "vs", strlen(GLOBAL_VERSION), GLOBAL_VERSION);
-       dnssd->TXTRecordSetValue(&txtRecord, "am", strlen(RAOP_AM), RAOP_AM);
-       dnssd->TXTRecordSetValue(&txtRecord, "sf", strlen(RAOP_SF), RAOP_SF);
+       dnssd->TXTRecordSetValue(&txtRecord, "sm", strlen(RAOP_SM), RAOP_SM);
+       dnssd->TXTRecordSetValue(&txtRecord, "ek", strlen(RAOP_EK), RAOP_EK);
 
        /* Convert hardware address to string */
        ret = utils_hwaddr_raop(servname, sizeof(servname), hwaddr, hwaddrlen);
index 6b651171777a8baea2446ffb467789d28fac6db1..9097d70e252fc01f0f84e6f07e55c63d4aa6a65c 100644 (file)
@@ -2,17 +2,17 @@
 #define DNSSDINT_H
 
 #define RAOP_TXTVERS "1"
-#define RAOP_CH "2"
-#define RAOP_CN "0,1"
-#define RAOP_ET "1"
+#define RAOP_CH "2"             /* Audio channels: 2 */
+#define RAOP_CN "0,1"           /* Audio codec: PCM, ALAC */
+#define RAOP_ET "0,1"           /* Encryption type: none, RSA */
 #define RAOP_SV "false"
 #define RAOP_DA "true"
 #define RAOP_SR "44100"
-#define RAOP_SS "16"
-#define RAOP_VN "65537"
+#define RAOP_SS "16"            /* Sample size: 16 */
+#define RAOP_VN "3"
 #define RAOP_TP "TCP,UDP"
-#define RAOP_MD "0,1,2"
-#define RAOP_AM "AppleTV2,1"
-#define RAOP_SF "0x4"
+#define RAOP_MD "0,1,2"         /* Metadata: text, artwork, progress */
+#define RAOP_SM "false"
+#define RAOP_EK "1"
 
 #endif
index 4acd5bf9abc67c96350530acfa564c3155045c89..4f022b4c537c998a85e643a07a7dd9f3d07791fe 100644 (file)
@@ -3,7 +3,7 @@
 
 #define GLOBAL_FEATURES 0x7
 #define GLOBAL_MODEL    "AppleTV2,1"
-#define GLOBAL_VERSION  "104.29"
+#define GLOBAL_VERSION  "130.14"
 
 #define MAX_HWADDR_LEN 6
 
index 3400c0c9169e65679b0ec573cb6899bf5573b2eb..3c7c17745bfd551726bdff1d2688a45273349654 100644 (file)
@@ -94,6 +94,10 @@ raop_rtp_parse_remote(raop_rtp_t *raop_rtp, const char *remote)
                free(original);
                return -1;
        }
+       if (strstr(current, ":")) {
+               /* FIXME: iTunes sends IP4 even with an IPv6 address, does it mean something */
+               family = AF_INET6;
+       }
        ret = netutils_parse_address(family, current,
                                     &raop_rtp->remote_saddr,
                                     sizeof(raop_rtp->remote_saddr));