Add a new public API to support recording rotated videos
o changed a comment about the rotation orientation from counter-clockwise
to clockwise.
Change-Id: I16ad73ce1a55cc627d9a516e23d1325753b3037e
diff --git a/api/current.xml b/api/current.xml
index 833fb6b..ac92b7a 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -86967,6 +86967,19 @@
<parameter name="listener" type="android.media.MediaRecorder.OnInfoListener">
</parameter>
</method>
+<method name="setOrientationHint"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="degrees" type="int">
+</parameter>
+</method>
<method name="setOutputFile"
return="void"
abstract="false"
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index b38124e..c102de4 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -285,6 +285,31 @@
}
/**
+ * Sets the orientation hint for output video playback.
+ * This method should be called before start(). This method will not
+ * trigger the source video frame to rotate during video recording, but to
+ * add a composition matrix containing the rotation angle in the output
+ * video if the output format is OutputFormat.THREE_GPP or
+ * OutputFormat.MPEG_4 so that a video player can choose the proper
+ * orientation for playback. Note that some video players may choose
+ * to ignore the compostion matrix in a video during playback.
+ *
+ * @param degrees the angle to be rotated clockwise in degrees.
+ * The supported angles are 0, 90, 180, and 270 degrees.
+ * @throws IllegalArgumentException if the angle is not supported.
+ *
+ */
+ public void setOrientationHint(int degrees) {
+ if (degrees != 0 &&
+ degrees != 90 &&
+ degrees != 180 &&
+ degrees != 270) {
+ throw new IllegalArgumentException("Unsupported angle: " + degrees);
+ }
+ setParameter(String.format("video-param-rotation-angle-degrees=%d", degrees));
+ }
+
+ /**
* Sets the format of the output file produced during recording. Call this
* after setAudioSource()/setVideoSource() but before prepare().
*