If I create an audio node on a linux box with the formatTag set to a big endian audio format, and then I use getClipFormat to see what was actually created, I get the same tag back. However, the actual clip is little endian.
I'm finding that I have to create a new WireTapNodeHandle from the nodeID and get its format to get a formatTag reflecting the correct endianness. (None of the other fields change, so I don't know if they might be suffering the same problem.)
My reading of the documentation indicates that just using getClipFormat() right after creating the clip should give me the actual format that was created on the server. Am I misreading, or is this a bug in Wiretap?
Hmm... I don't see anything in createAudio.C to indicate this. I see that after creating the node, it does a getClipFormat with the comment "Obtain the clip format to get the size of the audio tiles the server is expecting to receive." But the need to do that is covered in the documentation, I think.
I don't see anything about retrieving the audio node again.
Right. Well, the sample code doesn't actually store any audio data, but if it did... it wouldn't handle endian issues properly.
So if I create a clip node (on a little endian Linux machine) with a big-endian format and then query it for the format, it returns the big-endian format. (I don't have a big-endian machine to test if the reverse is true.)
However, if I create a new node handle to the same clip, I get the correct format... little endian.