On Wed, Apr 04, 2018 at 05:30:24PM +0200, Vittorio Giovara wrote: > The transformation operations that can be described by a display matrix > are not limited to pure rotation, but include horizontal and vertical > flip, as well as transpose and antitranspose. Unfortunately the current > API can only return a rotation angle in degrees, and is not designed to > detect flip operations or a combination of rotation and flip. > > So implement an additional API to analyze the display matrix and return > the most common rotation operations (multiples of 90ยบ) as well flips or > a combination thereof. This function returns a bitfield mask composed of > AVDisplayOrientation elements that describe which rendering operations > should be performed on the frame. The existing API is still available > and useful in case of custom rotations. > > Signed-off-by: Vittorio Giovara <vittorio.giov...@gmail.com> > --- > Note: the new operations describe a clockwise rotation, while the > old API provided a counterclockwise rotation. I always felt this was > a mistake as it's counterintuitive and suprising to new users, so I > didn't want to cargo-cult it to a new API. What do people think about it? > > See also https://github.com/FFMS/ffms2/issues/317 for flipped samples, code, > and additional discussion. > > Missing changelog entry and version bump. > Vittorio > > libavutil/display.c | 92 > +++++++++++++++++++++++++++++++++++++++++++++++++++++ > libavutil/display.h | 53 ++++++++++++++++++++++++++++++ > 2 files changed, 145 insertions(+)
It might be more usefull to fully factorize the matrix than these special cases for example the matrix can be described by these 4 scalars 1. rotation 2. horizontal scale 3. vertical scale 4. shear (there are more parameters like translation and z specific changes but IIUC these have no meaning ?) Note fliping in above would be a negative scale value shear could be specified as the angle between the x/y basis vectors The reason i suggest this is that these 4 values are easier to understand for a human and should allow reconstructing an equivalent transform matrix. While at the same time not limiting things to a subset of special cases [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Many things microsoft did are stupid, but not doing something just because microsoft did it is even more stupid. If everything ms did were stupid they would be bankrupt already.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel