/* * 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 tracks = new ArrayList(); 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 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; } }