It's been a bit quiet over the holiday break, so I've spent some time on this today (actually, I ended up spending most of the day on it, but that's another story!). With some advice and assistance from bLight, this is what I managed to work out. This is a bit of a wall of text - but that's unavoidable I'm afraid.
1. JanWillem32's rotate PS does not actually do what the name implies. Yes, it sort of rotates the video image - but only after splitting it into a red channel, a green channel, and a blue channel...and displaying all them separately:
http://i.imgur.com/m3cNrQ3.jpg
It's a mess in other words, so we can rule out a PS method of rotation, unless someone knows of a proper PS rotation script.
2. I mentioned the possibility of having this in LAV - forget that. It won't work. For the reason why, see the next two points, in particular #4.
3. One possibility I did not mention previously was finding a DS filter that does rotation. As it turns out, there is such a filter:
http://videoprocessi...rge.net/#rotate
Admittedly, it does have some downsides. First, it is not automatic rotation - it does not detect the rotation flags and rotate automatically in other words (you have to trigger the rotation manually, which is a little tedious). Second, it only works on RGB24 and RGB32, so you need to also insert the Colour Space Converter filter into the playback chain. However, on the plus side, it is freeware and open source (I believe there are other rotation filters out there, but payware - and of course, if you know enough about DS, you could simply create your own filter). Loading this into the Zoom Player filter chain, we get mixed results. Rotation of 90 degrees, 270 degrees and diagonal all produce totally garbled output:
http://i.imgur.com/4riVR5p.jpg
Rotation of 180 degrees, vertical or horizontal works fine (though vertical does not seem to actually change the image at all - but it doesn't garble it either, so I call it 'working'). That is the same with all the renderers Zoom supports. This leads into the next point, and this is where bLight's advice was especially handy.
4. The video renderer has to be able to accept dynamic resolution changes or rotation will not work. This is likely the problem with the rotation filter - 180 degrees is not changing the width x height of the video clip, but 90 degrees would, as the test clip was not the same width as it was height. As stated above, all the video renderers Zoom supports failed with this, so none of them support this at this time. Now, as posted in the thread linked in the first post, SMPlayer (a Windows GUI around the *nix mplayer) does support rotation, and in fact, works fine with that test clip. However, as a *nix program, it is not really a standard DS player, so it won't really be using the DS video renderers that Zoom and other Windows native players are restricted to - so we can forget about it. However, there is a Windows native program that does support rotation, and that is MPC-BE (though BE is a fork of MPC-HC, which in turn is a fork of MPC, MPC-HC does not support rotation, only BE does).
I did some testing with BE, and found that it automatically rotated the test clip, but only when using it's own EVR CP. It does not support rotation for normal EVR, nor madVR, nor any of the other renderers. The changelog for BE gives these two items:
+ MP4/MOV Splitter - added support for AMR Wide band audio tracks, support for Rotate tag;
+ Support for reading Rotate tag from QuickTime files (using internal splitter) and video rotation (if video renderer supports it);
I did in fact use the standalone versions of both the MPC MP4/MOV splitter and the MPC video decoder, and loaded them into Zoom. The test clip was not rotated, pretty much demonstrating again that renderer support is required - and that this support is just not there in any of the current standard DS renderers. Both MPC-HC and MPC-BE have CP versions of EVR, but only BE has modified that further to support rotation.
What does this all mean? Two things. Firstly, bLight could theoretically write a CP for Zoom Player. That is not going to happen, so we can rule it out to start with. Secondly, with that being the case, we need madshi to add rotation support (or at least support for dynamic resolution changes) to madVR. At that point in time, depending on what madshi did exactly, we may have a way forward (it may be that we would still have to use a separate filter where we had to rotate manually, or madVR might be able to do it automatically itself, or even if madVR did not do the rotation automatically, Zoom may be able to retrieve and send the flag to madVR to trick it into doing it automatically). We just won't know until madshi makes a move (so to speak).
So, keeping in mind that madshi is not accepting feature requests at the moment (he has stated multiple times that he wants to focus on other stuff until at least v1.0 is released), what we need to do is to forget everything I mentioned in my previous post, and to keep this feature request visible to him. But not so frequently as to cause madshi to go 'I have told you before that I am not accepting feature requests at the moment' (some individuals over on Doom9 have received this response multiple times now).
ehat