I've done that. One of these days I may write up an FAQ, but here's how I did it abstractly:
1. Stream UDP from the HDHomeRun to a Raspberry Pi.
2. Raspberry Pi is running a VLC daemon, muxing the udp stream to an HTTP stream.
3. PMSEncoder groovy script that sends the commands to change the channel, and uses VLC to pipe from the Raspberry Pi to the PS3.
Yes, it's horribly inefficient. I've left it like this since I got it up and running and it works solid. (and technically I can browse the HTTP stream from the raspberry from any other device)
Default PMSEncoder behaviour is to transcode all http streams to ntsc-dvd. That, and channel switching, is why I went with a custom Groovy script. Mencoder is probably more efficient, but I didn't want to figure out the command line options. I was able to get VLC up and running pretty quickly.
I have (essentially) WEB.conf entries that look like this: videostream.Live TV.CBC,http://192.168.3.26/stream.ts?channel=521000000&program=3. The Groovy script parses those arguments, creates and runs an hdhomerun_config exe instance to set the channel and the program.
The RPi is at about 70% CPU with the muxing. My Atom 160 1.6 GHz/2GB mediaserver hits about 15% for java, 15% for VLC during a stream. My network is able to handle all the network traffic, though the Raspberry network throughput chokes after 3 client streams (limited to 100 mbps minus ethernet overhead).
To make this more efficient: stream directly from the HDHomerun to PMS and use Mencoder. (assuming Mencoder can read udp streams)
Ah the things you can do with a network tuner. I can change channels using my Cisco IP Phones. (yes really)