HDMI Pass-through feature...
#1
I'd like to see XBMC incorporate a video pass-through feature. Allow me to explain.

I'm using XBMC on RPi. As you know RPi incorporates CEC and will change my HDMI input automatically on my TV to the Pi device when something is played on the XBMC. That's really cool. I'm using an iPad and XBMC Touch to allow my family to select the content. They never really need to interact with the XBMC GUI at all. Since this is only for streaming movies and TV Series from my NAS I don't need to see the GUI. The problem is once the Movie or TV Show has finished they have to hunt down a remote and put the TV back to HDMI 1 to get back to the cable box. That's a pain. I'd like when the selection is complete that it automatically switches back to the cable box. This makes XBMC more like a video pass-through.

I found an add-on that can trigger events after play is complete and I posted for help but got no responses. I also posted in the "pulse-8" CEC forum but got no responses. I initially thought I could create a script and go that route. Maybe I can, but I'm not a programmer.

This is the last piece of my Perfect XBMC that my wife and kids can actually understand and use. Pretty pictures on the iPad for selecting media to play, automatic HDMI switching to play then return to CATV. All this stuff gets a thumbs down when you have to go grabbing all kinds of remotes just to use it. I thought this was the best of all worlds.

Can it be done? Thanks for the help.

Roveer
Reply
#2
>If< this can be handled by cec then belong is cec feature request > since in that case it would be somewhere in the cec peripheral setting menu in xbmc. though perhpas cec requires user input to change source? idk.
Reply
#3
not sure if CEC can get the info of the previoius device so that it could send an according signal.
What could work though is to set the screensaver time to only a few sec and enable the option to send a "device inactive" signal via CEC when xbmc is in screensaver mode. Then TV can switch back to an active port (in case it supports it).
Reply
#4
(2014-01-23, 12:12)da-anda Wrote: not sure if CEC can get the info of the previoius device so that it could send an according signal.
What could work though is to set the screensaver time to only a few sec and enable the option to send a "device inactive" signal via CEC when xbmc is in screensaver mode. Then TV can switch back to an active port (in case it supports it).

It is supported by CEC.
"Active Source" requests switching TV to player.
"Inactive Source" requests switching TV back to previous active source.

From here:
http://libcec.pulse-eight.com/faq
Power off devices when stopping XBMC: sends a "standby/power off" command to all devices when stopping XBMC. When this is disabled, an "inactive source" command will be sent instead.

So it sounds like powering off xbmc with "power off devices" disabled sends the right command. Might be worth checking that does what you hope.

You want this "Inactive source" to also be sent on stopping.
That would be a feature request you need to get @opdenkamp interested in. Perhaps on Pulse Eight forum.
Reply
#5
Thanks for the quick replies. I'll take a look at the suggestions and see if I get any results.

"Inactive Source" requests switching TV back to previous active source.

This seems like it holds some possibilities. If it does what it says than I would have some options. As one post pointed out, maybe getting the screen saver to do this or I did find an add-on that can trigger a script when a video stops. If I can put that together I would achieve the same thing.

I'll start by looking at my CEC menu. I believe I disabled sending the power off command to the TV but I don't believe I then tried powering off my RPi to see what it would do. It sounds like when configured this way it should send the "Inactive Source" command which _should_ return the TV to the previous HDMI port which would have been the cable box. If this works, then I can go about seeing if manipulating the screen saver or possibly using the add-on to trigger the "inactive source" command. Seems like that would give me what I want.

I'll report back on my tests so this thread can be informative in case anyone else tries to do the same thing.

Roveer
Reply
#6
Ok so I tried a few things on my setup. I made the CEC config changes we discussed in the post above but when I turn my RPi off instead of going to the last active hdmi it goes to the analog tuner. I even tried rearranging the inputs so the catv stb would be after (prev it was before) but it still went to the tuner. Checked in the tv menus but no setting on where to default

So it would seem that trying to use the Inactive source on my Samsung tv does not do what it says it does. It always defaults to the analog tuner

I also tried the screensaver and all that does is blank the screen

I'd be happy if I could have either a menu option or setting that would force the input back to hdmi1. Id always want it to go back to the cable box.

Isn't there a way to do this with a script? I found that addon which can run a script on video stop so all I'd need to do is send a CEC pulse 8 command to instruct the tv to switch to hdmi1.

What I don't have is any info on how to write that script, what language it should be in or for that matter much info for CEC. I'm going to post in the pulse 8 forum again. I posted there once and got no replies. Worth another shot.

Roveer
Reply
#7
does your Samsung support wifi remote? That way you could simply send some command via LAN to change the input (like some users do to switch their TV into stereoscopic mode when movie playback starts).
Reply
#8
(2014-01-24, 02:31)roveer Wrote: Isn't there a way to do this with a script? I found that addon which can run a script on video stop so all I'd need to do is send a CEC pulse 8 command to instruct the tv to switch to hdmi1.

Probably by calling cec-client. See this post which discuses HDMI switching (also, this post has additional links which may be useful, particularly the CEC-O-Matic). Not sure how what the codes will be for your TV, maybe running cec-client in monitor mode will reveal the relevant codes (I don't have a CEC enabled TV so can only guess) or refer to the CEC-O-Matic (for instance, change the ":" delimeter to space in CEC-O-Matic, then paste in the code "4F 82 10 00" and click on the purple down arrow to see what it does. Change as appropriate for your setup, then test with cec-client on your Raspberry Pi using an ssh session).

Not sure which addon you are referring to, but you may be able to just just enter the call to cec-client as the "script command", or failing that a simple shell script should do the trick which then calls cec-client.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
#9
(2014-01-24, 09:51)MilhouseVH Wrote:
(2014-01-24, 02:31)roveer Wrote: Isn't there a way to do this with a script? I found that addon which can run a script on video stop so all I'd need to do is send a CEC pulse 8 command to instruct the tv to switch to hdmi1.

Probably by calling cec-client. See this post which discuses HDMI switching (also, this post has additional links which may be useful, particularly the CEC-O-Matic). Not sure how what the codes will be for your TV, maybe running cec-client in monitor mode will reveal the relevant codes (I don't have a CEC enabled TV so can only guess) or refer to the CEC-O-Matic (for instance, change the ":" delimeter to space in CEC-O-Matic, then paste in the code "4F 82 10 00" and click on the purple down arrow to see what it does. Change as appropriate for your setup, then test with cec-client on your Raspberry Pi using an ssh session).

Not sure which addon you are referring to, but you may be able to just just enter the call to cec-client as the "script command", or failing that a simple shell script should do the trick which then calls cec-client.

That was helpful. I'll take a good look at it when I return to this quest. I was reading a blog post on another website last night which was providing very similar information. I even set up my other Pi on Linux to try and get a CEC monitor going to read some of these commands. Tried to get the package for LIBCEC but it wouldn't work. I know just enough Linux to get myself in trouble so it's nice having a Pi which I can just restore the SD Card. Anyway, I'll take a look at this info and see if it can help. As always will report back. Still no response from the Pulse Eight forum.

Roveer
Reply
#10
(2014-01-24, 09:25)da-anda Wrote: does your Samsung support wifi remote? That way you could simply send some command via LAN to change the input (like some users do to switch their TV into stereoscopic mode when movie playback starts).

I don't believe it does. It's one of the older models.

Roveer
Reply
#11
Does anyone know is there a quick and simple way from inside XBMC that I can issue the following command:

echo "tx 4F 82 10 00" | cec-client -s


This would allow me to see if this might even work.

Since I'm not a programmer I haven't even devled into how I will execute such a command in a script or program, but will get to that after I have forumlated the right command structure. At this point just trying to see if I can get XBMC/CEC to do what I want.

This is the thread that has the add-on that can execute things on VIDEO STOP. I'm hoping to put the command above (if it actually works) with the add-on below to do what I want which is to switch back to HDMI1 after video stop.

http://forum.xbmc.org/showthread.php?tid=151011


------[edit]-----

OK, I'm educating myself tonight. I just read a bunch more and was able to SSH into my Pi with PUTTY and execute that command. I'm not in front of the TV connected to the pi so I don't know the exact result. I'll be checking that out soon. Hopefully I'll get some control of my HDMI switching then I can turn my attention to how to trigger the switching.

Roveer




Roveer
Reply
#12
OK,

I'm able to issue the echo "tx 4F 82 10 00" | cec-client -s command and the RPi's CEC adapter does switch the HDMI port back to HDMI1. That's great. But what I'm also seeing is the CEC Adapter is becoming completly reprogrammed by the issuance of that command and no longer responding to XBMC. The name changes to CECTester on my TV inputs and the TV remote no longer works for controlling XBMC.

So, this may be beyond the scope of this sub forum, but I'm thinking 2 things.

1. while I'm using the -s command which is supposed to issue just a "single" command, I'm wondering if there are other arguments that would prevent the adapter from getting totall messed up.

2. Should there be a string of commands to reinitialize the adapter back to XBMC control? I'm assuming somewhere in XBMC is the syntax of how it sets up the adapter.

3. Way beyond anything I can think of, someone please bail me out!! Smile

So, I've made progress tonight, but still have a ways to go. I appreciate everyone's help on this. I love a good mystery, but on this one, I'm really in the dark. Will continue to search and read.

Roveer
Reply
#13
OK, so I got a response over at the Pulse 8 forum.

http://forums.pulse-eight.com/yaf_postst...apter.aspx

One of their folks told me that the cec-client command is a "test tool" and that it will take control away from XBMC, which is what I experienced. He did however say I could issue the command from inside XBMC to do what I want. That sounds encouraging. I'm at a point where I know what I want to do, have the command to do it, but just don't have the programming experience by which to do it.

I've got XBMC running on my RPi on Openelec. I've found a utility that supposedly allows me to run programs on certain XBMC events, one being "Video Stop". I've got a CEC command "tx 4F 82 10 00" which when sent to the cec adapter will switch the TV back to HDMI 1. Those are all the pieces. The only part I don't have is the programming part. I'll going to see if there is a sub forum here which might be able to help me glue it all together. It seems that this is not a feature request, more a small programming task. I've just never done any programming inside XBMC so I dont' know where to start.

Any suggestions appreciated.

Roveer
Reply
#14
That's a shame about cec-client (might be worth including a link to the Pulse 8 discussion for anyone else heading down this same path). I'm afraid I don't have any CEC devices connected to my Pi so I'll be bowing out - best of luck.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply

Logout Mark Read Team Forum Stats Members Help
HDMI Pass-through feature...0