I though I found a solution, but it seems it's not that easy.

What I have done:
- Renamed original /dev/rds0 to /dev/rds_org
- Created a new FIFO Device mkfifo /dev/rds0

The source looks like this:
{
ssize_t rts;
char rdscode[8];

fakeRDSfd = open(FAKE_RDS, O_WRONLY);
if(fakeRDSfd==-1) {
return -1;
}

realRDSfd = open(REAL_RDS, O_RDONLY&O_NDELAY&O_NONBLOCK);
if (realRDSfd==-1) {
close(fakeRDSfd);
return -1;
}

while(1) {
rts=read(realRDSfd, rdscode, 8);
if (rts>0) {
rts=write(fakeRDSfd, rdscode, rts);
}
}
}

If my userland application is running the player stops loading and displays "Starting RDS failed".
If my userland application is not running the player stops loading and displays "Starting RDS ..."

What does the message "Starting RDS failed" means? What is the player software expecting at startup? In which case does the player throws that message?

Thanks