Working from that example, I've got the thing kind of working. There's one big problem, though: the camera texture it gives me is a smaller square and the rest is filled with black. (See attached screenshot) Only on the device, though. The camera texture received in the editor is correct. And yes, I have confirmed that it's the actual texture that is the source of this black border (It's not that the background rendering plane is offset, for example).
Probably related is that on the device QCARRenderer.Instance.IsVideoBackgroundInfoAvailable() never returns 'true'. Therefore, I've had to use my own numbers for the following function call:
cameraBackgroundTexture = new Texture2D(640, 360, TextureFormat.RGB565, false);
Which number I use seem to have little or no bearing on this bug. I've used 1024x1024, 512x512, and 640x360 (the values I get in the editor), and they all look the same (presumably with differing levels of quality, but I don't really care about that and haven't checked.
Edit: I've also tested it on another device and it has the same problem. That's an iPhone 4 and iPad 4, so just about as different as you can get in terms of specs within iOS. So this is clearly not hardware-related.
One "design of the plugin" sort of side question: Why is it that I can only use the background texture when QCARRenderer.Instance.DrawVideoBackground is set to false? Is it just not concievable in the design of this plugin that I might want QCAR to draw the background (since it correctly handles things like aspect ratios and the camera image being drawn), but I also want programmatic access to this texture?
Having this plugin behave so radically differently between the editor and the device is honestly incredibly infuriating. It seems like every hour I've got something working perfectly in the editor, and then find that the way I got it working in the editor is completely incompatible with the plugin on the device and I have to write the whole thing over again. This project was done 5 days ago in the editor, and literally everything I wrote (in the 3 days before that) I've had to rewrite at least once, if not more than once, to get it to work on the device. And even with twice the amount of work I've put in on the device side, I am still lacking features and polish that the editor version has.