diff --git a/media/java/android/media/MediaMuxer.java b/media/java/android/media/MediaMuxer.java index 7117fbdbf1226..e481aa141d6b3 100644 --- a/media/java/android/media/MediaMuxer.java +++ b/media/java/android/media/MediaMuxer.java @@ -266,6 +266,121 @@ final public class MediaMuxer { /** * Adds a track with the specified format. + *
+ * The following table summarizes support for specific format keys across android releases. + * Keys marked with '+:' are required. + * + *
| OS Version(s) | + *{@code MediaFormat} keys used for + * | ||
|---|---|---|---|
| All Tracks | + *Audio Tracks | + *Video Tracks | + *|
| {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2} | + *+: {@link MediaFormat#KEY_MIME} | + *+: {@link MediaFormat#KEY_SAMPLE_RATE}, + * +: {@link MediaFormat#KEY_CHANNEL_COUNT}, + * +: codec-specific dataAAC |
+ * +: {@link MediaFormat#KEY_WIDTH}, + * +: {@link MediaFormat#KEY_HEIGHT}, + * no {@code KEY_ROTATION}, + * use {@link #setOrientationHint setOrientationHint()}.mp4, + * +: codec-specific dataAVC, MPEG4 |
+ *
| {@link android.os.Build.VERSION_CODES#KITKAT} | + *|||
| {@link android.os.Build.VERSION_CODES#KITKAT_WATCH} | + *|||
| {@link android.os.Build.VERSION_CODES#LOLLIPOP} | + *as above, plus + * +: codec-specific dataVorbis & .webm |
+ * ||
| {@link android.os.Build.VERSION_CODES#LOLLIPOP_MR1} | + *|||
| {@link android.os.Build.VERSION_CODES#M} | + *as above, plus + * {@link MediaFormat#KEY_BIT_RATE}AAC |
+ * ||
| {@link android.os.Build.VERSION_CODES#N} | + *as above, plus + * + * {@link MediaFormat#KEY_BIT_RATE}MPEG4, + * {@link MediaFormat#KEY_HDR_STATIC_INFO}#, .webm, + * {@link MediaFormat#KEY_COLOR_STANDARD}#, + * {@link MediaFormat#KEY_COLOR_TRANSFER}#, + * {@link MediaFormat#KEY_COLOR_RANGE}#, + * +: codec-specific dataHEVC, + * codec-specific dataVP9 |
+ * ||
|
+ * Notes: |
+ * |||
|
+ * Note that the codec-specific data for the track must be specified using + * this method. Furthermore, codec-specific data must not be passed/specified via the + * {@link #writeSampleData writeSampleData()} call. + * |
+ * |||
+ * The following table summarizes codec support for containers across android releases: + * + *
| OS Version(s) | + *Codec support + * | ||
|---|---|---|---|
| {@linkplain OutputFormat#MUXER_OUTPUT_MPEG_4 MP4} | + *{@linkplain OutputFormat#MUXER_OUTPUT_WEBM WEBM} | + *||
| {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2} | + *{@link MediaFormat#MIMETYPE_AUDIO_AAC AAC}, + * {@link MediaFormat#MIMETYPE_AUDIO_AMR_NB NB-AMR}, + * {@link MediaFormat#MIMETYPE_AUDIO_AMR_WB WB-AMR}, + * {@link MediaFormat#MIMETYPE_VIDEO_H263 H.263}, + * {@link MediaFormat#MIMETYPE_VIDEO_MPEG4 MPEG-4}, + * {@link MediaFormat#MIMETYPE_VIDEO_AVC AVC} (H.264) |
+ * Not supported | + *|
| {@link android.os.Build.VERSION_CODES#KITKAT} | + *|||
| {@link android.os.Build.VERSION_CODES#KITKAT_WATCH} | + *|||
| {@link android.os.Build.VERSION_CODES#LOLLIPOP} | + *{@link MediaFormat#MIMETYPE_AUDIO_VORBIS Vorbis}, + * {@link MediaFormat#MIMETYPE_VIDEO_VP8 VP8} |
+ * ||
| {@link android.os.Build.VERSION_CODES#LOLLIPOP_MR1} | + *|||
| {@link android.os.Build.VERSION_CODES#M} | + *|||
| {@link android.os.Build.VERSION_CODES#N} | + *as above, plus + * {@link MediaFormat#MIMETYPE_VIDEO_HEVC HEVC} (H.265) |
+ * as above, plus + * {@link MediaFormat#MIMETYPE_VIDEO_VP9 VP9} |
+ * |