47 lines
1.4 KiB
Java
47 lines
1.4 KiB
Java
|
package org.thoughtcrime.securesms.video;
|
||
|
|
||
|
import android.content.res.Resources;
|
||
|
import android.media.MediaFormat;
|
||
|
import android.util.DisplayMetrics;
|
||
|
import android.util.Size;
|
||
|
|
||
|
import androidx.annotation.RequiresApi;
|
||
|
|
||
|
import org.thoughtcrime.securesms.util.MediaUtil;
|
||
|
|
||
|
public final class VideoUtil {
|
||
|
|
||
|
public static final int AUDIO_BIT_RATE = 192_000;
|
||
|
public static final int VIDEO_FRAME_RATE = 30;
|
||
|
public static final int VIDEO_BIT_RATE = 2_000_000;
|
||
|
public static final int VIDEO_LONG_WIDTH = 1280;
|
||
|
public static final int VIDEO_SHORT_WIDTH = 720;
|
||
|
public static final int VIDEO_MAX_LENGTH_S = 30;
|
||
|
|
||
|
@RequiresApi(21)
|
||
|
public static final String VIDEO_MIME_TYPE = MediaFormat.MIMETYPE_VIDEO_AVC;
|
||
|
public static final String AUDIO_MIME_TYPE = "audio/mp4a-latm";
|
||
|
|
||
|
public static final String RECORDED_VIDEO_CONTENT_TYPE = MediaUtil.VIDEO_MP4;
|
||
|
|
||
|
private VideoUtil() { }
|
||
|
|
||
|
@RequiresApi(21)
|
||
|
public static Size getVideoRecordingSize() {
|
||
|
return isPortrait(screenSize())
|
||
|
? new Size(VIDEO_SHORT_WIDTH, VIDEO_LONG_WIDTH)
|
||
|
: new Size(VIDEO_LONG_WIDTH, VIDEO_SHORT_WIDTH);
|
||
|
}
|
||
|
|
||
|
@RequiresApi(21)
|
||
|
private static Size screenSize() {
|
||
|
DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
|
||
|
return new Size(metrics.widthPixels, metrics.heightPixels);
|
||
|
}
|
||
|
|
||
|
@RequiresApi(21)
|
||
|
private static boolean isPortrait(Size size) {
|
||
|
return size.getWidth() < size.getHeight();
|
||
|
}
|
||
|
}
|