aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/utils/video/Mp4Movie.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/video/Mp4Movie.java')
-rw-r--r--src/main/java/de/pixart/messenger/utils/video/Mp4Movie.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/video/Mp4Movie.java b/src/main/java/de/pixart/messenger/utils/video/Mp4Movie.java
new file mode 100644
index 000000000..4cf206d26
--- /dev/null
+++ b/src/main/java/de/pixart/messenger/utils/video/Mp4Movie.java
@@ -0,0 +1,81 @@
+/*
+ * This is the source code of Telegram for Android v. 1.7.x.
+ * It is licensed under GNU GPL v. 2 or later.
+ * You should have received a copy of the license in this archive (see LICENSE).
+ *
+ * Copyright Nikolai Kudashov, 2013-2014.
+ */
+
+package de.pixart.messenger.utils.video;
+
+import android.annotation.TargetApi;
+import android.media.MediaCodec;
+import android.media.MediaFormat;
+
+import com.googlecode.mp4parser.util.Matrix;
+
+import java.io.File;
+import java.util.ArrayList;
+
+@TargetApi(16)
+public class Mp4Movie {
+ private Matrix matrix = Matrix.ROTATE_0;
+ private ArrayList<Track> tracks = new ArrayList<Track>();
+ private File cacheFile;
+ private int width;
+ private int height;
+
+ public Matrix getMatrix() {
+ return matrix;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setCacheFile(File file) {
+ cacheFile = file;
+ }
+
+ public void setRotation(int angle) {
+ if (angle == 0) {
+ matrix = Matrix.ROTATE_0;
+ } else if (angle == 90) {
+ matrix = Matrix.ROTATE_90;
+ } else if (angle == 180) {
+ matrix = Matrix.ROTATE_180;
+ } else if (angle == 270) {
+ matrix = Matrix.ROTATE_270;
+ }
+ }
+
+ public void setSize(int w, int h) {
+ width = w;
+ height = h;
+ }
+
+ public ArrayList<Track> getTracks() {
+ return tracks;
+ }
+
+ public File getCacheFile() {
+ return cacheFile;
+ }
+
+ public void addSample(int trackIndex, long offset, MediaCodec.BufferInfo bufferInfo) throws Exception {
+ if (trackIndex < 0 || trackIndex >= tracks.size()) {
+ return;
+ }
+ Track track = tracks.get(trackIndex);
+ track.addSample(offset, bufferInfo);
+ }
+
+ public int addTrack(MediaFormat mediaFormat, boolean isAudio) throws Exception {
+ tracks.add(new Track(tracks.size(), mediaFormat, isAudio));
+ return tracks.size() - 1;
+ }
+}