Solved RDS Support for digital satellite radio
#1
Hi,

I'm wondering if it would be possible to incorporate RDS support to work with digital streams?

Basically, I use TVHeadend with a satellite tuner, and on some radio stations carried on the digital satellite transponders, UECP RDS data is present inside the MP2 audio packets. (This is especially common on German radio stations on 19.2°E 12266H because they are used to feed FM transmitters in cable networks in Germany, and the cable FM modulators take the UECP data from the stream to modulate the RDS data).

I think I read that the existing RDS support converts the RDS from FM radio stations to UECP for Kodi to display. The RDS data present with these satellite radio stations is already in UECP, and because it's inside the MP2 audio stream (it comes inside at the end of each MP2 audio packet), there should be access to the data even when streamed to Kodi with HTSP from TVHeadend.

The only considerations are that the UECP needs to be reassembled from the MP2 packets. It comes in chunks in reverse order at the end of each MP2 packet. I have created a Python tool which reverses and reassembles the data into UECP packets (and then decodes the RDS data from this).

I guess if Kodi has already got a UECP decoder to read this data for FM radio stations currently, then a tool would just be needed to re-assemble the UECP packets from the MP2 audio packets and pass them to Kodi.

My tool is here - https://github.com/mrwish7/uecp_tool/blo...cp_tool.py

It currently only works with 48kHz streams (all MP2 satellite streams I have encountered use this sample rate in any case), and takes a single argument, the bitrate of the stream. This could be worked out automatically which is on my to-do list!

self.decode_frame() takes the full UECP packet once read and starts to decode the data. This might be useful!

Here's an example of one of the radio stations carrying the RDS data on the 12266H transponder on 19.2°E (NDR 2) with my tool - 


Code:
curl -s http://tvheadendstreamaddress?profile=audio | python3.5 uecp_tool.py 320
Set frame length: 960
PTY 10
PTY 10
TA OFF
TA OFF
RT NDR 2 - ndr.de/ndr2
RT NDR 2 - ndr.de/ndr2
PS NDR 2
PS NDR 2
TA OFF
TA OFF
PTY 10
PTY 10
TA OFF
TA OFF
RT NDR 2 - ndr.de/ndr2 RT NDR 2 - ndr.de/ndr2

(This also shows the currently playing song on the Radio Text)
Reply
#2
Kodi supports RDS. VNSI is reference implementation. It is the dmuxer's job to extract RDS info.
Reply
#3
@mrwish fyi: https://github.com/kodi-pvr/pvr.hts/pull/381 :-)
Reply
#4
(2018-10-23, 21:37)ksooo Wrote: @mrwish fyi: https://github.com/kodi-pvr/pvr.hts/pull/381 :-)


It's always disappointing to see people asking for features and even if they get it after very short time not even seeing a simple "thank you" or sort of other feedback. sigh.
Reply
#5
(2018-10-23, 21:37)ksooo Wrote: @mrwish fyi: https://github.com/kodi-pvr/pvr.hts/pull/381 :-)

Oh, nice! Thank you very much - I will try this out :-)

Really sorry, I didn’t actually see this until now. I get email notifications but I must have missed it. I am very grateful!
Reply
#6
np

for details: 14731 (PR)
Reply
#7
(2018-10-28, 22:19)ksooo Wrote: np

for details: 14731 (PR)
 Great work! Thank you.
Reply
#8
Thanks for this!

I was looking forward to a feature like this.

But i really do need help to understand this, because this is very technical stuff.

How can i implement this feature?

I have my radio channels from tvheadend, captured by dvb-c, as long some internet radio streams.

How can i have the rds information of the music playing for some of my radio stations?

thanks again
Reply
#9
(2018-10-29, 21:53)Norin_Radd Wrote: Thanks for this!

I was looking forward to a feature like this.

But i really do need help to understand this, because this is very technical stuff.

How can i implement this feature?

I have my radio channels from tvheadend, captured by dvb-c, as long some internet radio streams.

How can i have the rds information of the music playing for some of my radio stations?

thanks again


The broadcasters have to create and include those data in their radio streams. There is nothing to configure on user's side. If the data is in the stream, tvheasend will provide it to the Kodi tvheadend add-on which will provide it to Kodi which is able to interpret, use and display those data.
Reply
#10
I tried this out just now. It’s really cool, thanks again!

I didn’t know it was possible to also use the RT+ data carried for the more detailed information. I really like the info screen!
Reply
#11
(2018-10-30, 10:29)mrwish Wrote: I tried this out just now. It’s really cool, thanks again!

I didn’t know it was possible to also use the RT+ data carried for the more detailed information. I really like the info screen!


You're welcome, thanks for the feedback.
Reply
#12
Thread marked solved.
Read/follow the forum rules.
For troubleshooting and bug reporting, read this first
Interested in seeing some YouTube videos about Kodi? Go here and subscribe
Reply
#13
does this solves this problem too?

263769 (thread)
Reply
#14
(2018-10-30, 15:22)Ed76 Wrote: does this solves this problem too?

263769 (thread)


No.
Reply
#15
@ksooo  Thanks for all your work with RDS suppost (in both pvr and estuary)

I know this is only slightly related, but I'm working on a proxy service that takes Sirius XM radio and sends it to TVHeadend. I have the audio stream captured and I can capture artist information, but I'm not sure how to combine the two before sending to TVH. If I can do this, then the song/artist information can be displayed in Kodi (using your patches).  I'm asking here because you seem to be the expert on this ;-)

  - I can transcode to any format before sending to TVH
  - I have some information before a song plays but most of the time, info will need to be injected "on the fly"
  - This isn't a piracy thing. You need an online streaming subscription for it to work.
Reply
 
Thread Rating:
  • 0 Vote(s) - 0 Average



Logout Mark Read Team Forum Stats Members Help
RDS Support for digital satellite radio00