for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
- sc->display_matrix[i * 3 + j] = display_matrix[j][i];
+ sc->display_matrix[i * 3 + j] = display_matrix[i][j];
}
// transform the display width/height according to the matrix
rotation = atan2(CONV_FP(matrix[1]) / scale[1],
CONV_FP(matrix[0]) / scale[0]) * 180 / M_PI;
- return rotation;
+ return -rotation;
}
void av_display_rotation_set(int32_t matrix[9], double angle)
{
- double radians = angle * M_PI / 180.0f;
+ double radians = -angle * M_PI / 180.0f;
double c = cos(radians);
double s = sin(radians);
* Extract the rotation component of the transformation matrix.
*
* @param matrix the transformation matrix
- * @return the angle (in degrees) by which the transformation rotates the frame.
- * The angle will be in range [-180.0, 180.0], or NaN if the matrix is
- * singular.
+ * @return the angle (in degrees) by which the transformation rotates the frame
+ * counterclockwise. The angle will be in range [-180.0, 180.0],
+ * or NaN if the matrix is singular.
*
* @note floating point numbers are inherently inexact, so callers are
* recommended to round the return value to nearest integer before use.
double av_display_rotation_get(const int32_t matrix[9]);
/**
- * Initialize a transformation matrix describing a pure rotation by the
- * specified angle (in degrees).
+ * Initialize a transformation matrix describing a pure counterclockwise
+ * rotation by the specified angle (in degrees).
*
* @param matrix an allocated transformation matrix (will be fully overwritten
* by this function)
#define LIBAVUTIL_VERSION_MAJOR 54
#define LIBAVUTIL_VERSION_MINOR 9
-#define LIBAVUTIL_VERSION_MICRO 0
+#define LIBAVUTIL_VERSION_MICRO 1
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \