1

I've been poking around with the cec-client app to see what I can do with it when it comes to my magnavox TV. All I seem to be able to do is turn the TV on/off and change HDMI inputs.

I feel like I might have a better chance of discovering what else I can do if I better understood what "source" and "destination" mean. If I'm changing input on the TV from HDMI 1 to HDMI 2, what is the source and what is the destination in that context?

Is the source the device where the content is coming from and the destination in where the content is being displayed?

Or is the source where the command is coming from and the destination is the thing that should execute the command?

And what is the "unregistered"/"broadcast" source/destination?

1

CEC-O-MATIC

Alright, first I'm going to answer in the context of http://www.cec-o-matic.com/ since that seems like what you're using based on your terminology.

Source is the device that is sending the command. Using "unregistered" doesn't work in most scenarios, because it's basically saying that no one sent it, so nothing listens (except in special cases).

Destination is the device that you want to listen. So, depending on the command, you may want to target a specific device (like in turning on the TV), or target all devices, i.e. "broadcast", (like in changing the active source).

You need to be careful when using CEC-O-MATIC, because it doesn't strictly follow the HDMI CEC specifications in certain scenarios (e.g. it should force active source command to be broadcast instead of targeting a specific device)

In CEC-O-MATIC, the source and destination are used to generate the first two characters of the command. They are the logical addresses of the devices (see below for more info).

More in-depth

If you're not using CEC-O-MATIC, then a quick summary is:

  1. There are two types of address, Logical (e.g. 0 for the TV) and Physical (e.g. 0.0.0.0 for the TV). These don't have to match up with each other (you may have Logical be 4 and Physical be 1.0.0.0).
  2. Each command starts with two characters representing the Logical addresses of the Source, referred to as initiator in the HDMI Spec, and the Destination respectively (e.g. 10 would mean from device 1 to the TV (device 0)).
  3. Some commands have parameters that take a physical address (e.g. the Active Source command)

Other Notes

  • echo h | cec-client -s -d 1 will return a list of the commands available in CEC-Client. A lot of those are easier to use and remember.
  • echo scan | cec-client -s -d 1 will return the information about the available devices (including their logical and physical addresses, logical being the device # and physical being the address).
  • Thanks so much for the depthful answer. – hepcat72 Dec 4 '19 at 22:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.