Nachdem ich mir jetzt eine Woche lang einen abgebrochen habe, um einen ordentliche TS- und PES-Pakete hin zu bekommen, ist es jetzt so weit:
Die aller erste Version des analogradio-Plugins ist draußen!
Mit diesem Plugin ist es möglich, normale analoge Radiosender in die channels.conf aufzunehmen und über das Radio-Modul einer analogen TV-Karte (oder wo ihr sonst so ein Modul habt) zu empfangen.
Der Eintrag müsste etwa so aussehen:
EinsLife:106700:I0C23D0M16B8T8G8Y0:T:0:0:300:0:0:1:0:0:0
Vorne steht der Sender und dann die Frequenz in kHz. Wie man sieht, läuft das Plugin als terrestrisch. Ob das Probleme mit echten DVB-T-Karte bringen kann und ob andere Quellen besser wären, weiß ich leider nicht. Ich habe T nur deshalb genommen, weil die physikalische Quelle stimmt, was den VDR aber wohl net interessiert. Wenn das also Probleme macht, bitte sagen.
Neben dem radio-Device (default: /dev/radio) braucht das Plugin noch ein dsp-Device (default: /dev/dsp) als Audio-Quelle. Das kann eine Soundkarte sein, die das Radio-Signal über ein Loopback-Kabel erhält oder es kann direkt von der Karte mit dem btaudio-Kernelmodul kommen. In beiden Fällen erwartet das Plugin ein 32 kHz, 16 Bit (Signed Little Endian), Stereo-Signal, denn das ist das, was man mit dem btaudio bei einer Win-TV erhält und die Soundkarte auch geben kann. Wenn bei euch was anderes rauskommt (und ihr nur digitales Rauschen hört), muss ich den Code-Teil wohl noch ändern
Bei der Soundkartenlösung, muss Line-In (wenn das Kabel da rein geht) als Aufnahmekanal gewählt sein. Dazu solltet ihr euch in der ReadMe mal die Kommandozeilen Parameter ansehen, um das automatisch amchen zu lassen.
Ich habe nur die Win-TV und kann daher noch nichts über andere Karten sagen und RDS gibt es auch frühestens dann, wenn ich bei nem Freund eine Karte mit RDS organisieren konnte.
Dann aber noch ne gute Nachricht: Im Vorfeld gab es die Sorge, dass das Signal komprimiert werden müsse. Das ist nicht der Fall. Ich kann direkt den PCM-Strom an die Karte senden und die spielt den auch prima ab. Ich tausche lediglich je ein Byte-Paar, da die Karte Big Endian erwartet und btaudio mir Little Endian gibt. Im Grunde stecke ich also nur die DSP-Daten in PES-Packete und drück sie dem VDR in die Hand. Dazu benutze ich nichtmal einen Puffer. (Wenn ihr Aussetzer bekommt, muss ich das nochmal überdenken, aber bisher hatte ich absolut keine Probleme)
Dann noch ein Problem, bisher festgestellt habe: Man kann mit dem Radiosender arbeiten, wie mit jedem DVB-Radio-Sender. Aufnahmen klappen auch, ABER: Pause, spulen und was auch immer die normale Wiedergabe unterbricht, funktionieren nicht richtig! Ich denke mal, dass meine gebastelten Pakete nicht ganz korrekt sind, da ich bis vor einer Woche nicht einmal wusste, was TS überhaupt bedeutet. (Insbesondere meinem Timestamp misstraue ich).
Naja - hier isses:
http://analogradio.tankwar.de
Viel Spaß und insbesondere viel Glück!