From b04d80769616aefceea96b711066f4dcdb75914f Mon Sep 17 00:00:00 2001 From: Santiago Seifert Date: Fri, 13 Mar 2020 11:54:44 +0000 Subject: [PATCH] Make parameters parser-implementation independent Bug: 150855305 Test: CTS. Change-Id: Ib83c4a9c92c50d6408f5a893dbcb2ebf7eb5cf73 --- .../java/android/media/MediaParser.java | 129 +++++++++--------- api/current.txt | 35 +++-- 2 files changed, 81 insertions(+), 83 deletions(-) diff --git a/apex/media/framework/java/android/media/MediaParser.java b/apex/media/framework/java/android/media/MediaParser.java index 29c48adb999d1..7efbee2c782e8 100644 --- a/apex/media/framework/java/android/media/MediaParser.java +++ b/apex/media/framework/java/android/media/MediaParser.java @@ -434,60 +434,64 @@ public final class MediaParser { // Public constants. /** - * Sets whether constant bitrate seeking should be enabled for exo.AdtsParser. {@code boolean} + * Sets whether constant bitrate seeking should be enabled for ADTS parsing. {@code boolean} * expected. Default value is {@code false}. */ public static final String PARAMETER_ADTS_ENABLE_CBR_SEEKING = - "exo.AdtsParser.enableCbrSeeking"; + "android.media.mediaparser.adts.enableCbrSeeking"; /** - * Sets whether constant bitrate seeking should be enabled for exo.AmrParser. {@code boolean} + * Sets whether constant bitrate seeking should be enabled for AMR. {@code boolean} expected. + * Default value is {@code false}. + */ + public static final String PARAMETER_AMR_ENABLE_CBR_SEEKING = + "android.media.mediaparser.amr.enableCbrSeeking"; + /** + * Sets whether the ID3 track should be disabled for FLAC. {@code boolean} expected. Default + * value is {@code false}. + */ + public static final String PARAMETER_FLAC_DISABLE_ID3 = + "android.media.mediaparser.flac.disableId3"; + /** + * Sets whether MP4 parsing should ignore edit lists. {@code boolean} expected. Default value is + * {@code false}. + */ + public static final String PARAMETER_MP4_IGNORE_EDIT_LISTS = + "android.media.mediaparser.mp4.ignoreEditLists"; + /** + * Sets whether MP4 parsing should ignore the tfdt box. {@code boolean} expected. Default value + * is {@code false}. + */ + public static final String PARAMETER_MP4_IGNORE_TFDT_BOX = + "android.media.mediaparser.mp4.ignoreTfdtBox"; + /** + * Sets whether MP4 parsing should treat all video frames as key frames. {@code boolean} * expected. Default value is {@code false}. */ - public static final String PARAMETER_AMR_ENABLE_CBR_SEEKING = "exo.AmrParser.enableCbrSeeking"; + public static final String PARAMETER_MP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES = + "android.media.mediaparser.mp4.treatVideoFramesAsKeyframes"; /** - * Sets whether the ID3 track should be disabled for exo.FlacParser. {@code boolean} expected. - * Default value is {@code false}. - */ - public static final String PARAMETER_FLAC_DISABLE_ID3 = "exo.FlacParser.disableId3"; - /** - * Sets whether exo.FragmentedMp4Parser should ignore edit lists. {@code boolean} expected. - * Default value is {@code false}. - */ - public static final String PARAMETER_FMP4_IGNORE_EDIT_LISTS = - "exo.FragmentedMp4Parser.ignoreEditLists"; - /** - * Sets whether exo.FragmentedMp4Parser should ignore the tfdt box. {@code boolean} expected. - * Default value is {@code false}. - */ - public static final String PARAMETER_FMP4_IGNORE_TFDT_BOX = - "exo.FragmentedMp4Parser.ignoreTfdtBox"; - /** - * Sets whether exo.FragmentedMp4Parser should treat all video frames as key frames. {@code - * boolean} expected. Default value is {@code false}. - */ - public static final String PARAMETER_FMP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES = - "exo.FragmentedMp4Parser.treatVideoFramesAsKeyframes"; - /** - * Sets whether exo.MatroskaParser should avoid seeking to the cues element. {@code boolean} + * Sets whether Matroska parsing should avoid seeking to the cues element. {@code boolean} * expected. Default value is {@code false}. * *

If this flag is enabled and the cues element occurs after the first cluster, then the * media is treated as unseekable. */ public static final String PARAMETER_MATROSKA_DISABLE_CUES_SEEKING = - "exo.MatroskaParser.disableCuesSeeking"; + "android.media.mediaparser.matroska.disableCuesSeeking"; /** - * Sets whether the ID3 track should be disabled for exo.Mp3Parser. {@code boolean} expected. + * Sets whether the ID3 track should be disabled for MP3. {@code boolean} expected. Default + * value is {@code false}. + */ + public static final String PARAMETER_MP3_DISABLE_ID3 = + "android.media.mediaparser.mp3.disableId3"; + /** + * Sets whether constant bitrate seeking should be enabled for MP3. {@code boolean} expected. * Default value is {@code false}. */ - public static final String PARAMETER_MP3_DISABLE_ID3 = "exo.Mp3Parser.disableId3"; + public static final String PARAMETER_MP3_ENABLE_CBR_SEEKING = + "android.media.mediaparser.mp3.enableCbrSeeking"; /** - * Sets whether constant bitrate seeking should be enabled for exo.Mp3Parser. {@code boolean} - * expected. Default value is {@code false}. - */ - public static final String PARAMETER_MP3_ENABLE_CBR_SEEKING = "exo.Mp3Parser.enableCbrSeeking"; - /** - * Sets whether exo.Mp3Parser should generate a time-to-byte mapping. {@code boolean} expected. + * Sets whether MP3 parsing should generate a time-to-byte mapping. {@code boolean} expected. * Default value is {@code false}. * *

Enabling this flag may require to scan a significant portion of the file to compute a seek @@ -500,18 +504,13 @@ public final class MediaParser { * */ public static final String PARAMETER_MP3_ENABLE_INDEX_SEEKING = - "exo.Mp3Parser.enableIndexSeeking"; + "android.media.mediaparser.mp3.enableIndexSeeking"; /** - * Sets whether exo.Mp4Parser should ignore edit lists. {@code boolean} expected. Default value - * is {@code false}. - */ - public static final String PARAMETER_MP4_IGNORE_EDIT_LISTS = "exo.Mp4Parser.ignoreEditLists"; - /** - * Sets the operation mode for exo.TsParser. {@code String} expected. Valid values are {@code + * Sets the operation mode for TS parsing. {@code String} expected. Valid values are {@code * "single_pmt"}, {@code "multi_pmt"}, and {@code "hls"}. Default value is {@code "single_pmt"}. * - *

The operation modes alter the way exo.TsParser behaves so that it can handle certain kinds - * of commonly-occurring malformed media. + *

The operation modes alter the way TS behaves so that it can handle certain kinds of + * commonly-occurring malformed media. * *

*/ - public static final String PARAMETER_TS_MODE = "exo.TsParser.mode"; + public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode"; /** - * Sets whether exo.TsParser should treat samples consisting of non-IDR I slices as - * synchronization samples (key-frames). {@code boolean} expected. Default value is {@code - * false}. + * Sets whether TS should treat samples consisting of non-IDR I slices as synchronization + * samples (key-frames). {@code boolean} expected. Default value is {@code false}. */ public static final String PARAMETER_TS_ALLOW_NON_IDR_AVC_KEYFRAMES = - "exo.TsParser.allowNonIdrAvcKeyframes"; + "android.media.mediaparser.ts.allowNonIdrAvcKeyframes"; /** - * Sets whether exo.TsParser should ignore AAC elementary streams. {@code boolean} expected. + * Sets whether TS parsing should ignore AAC elementary streams. {@code boolean} expected. * Default value is {@code false}. */ - public static final String PARAMETER_TS_IGNORE_AAC_STREAM = "exo.TsParser.ignoreAacStream"; + public static final String PARAMETER_TS_IGNORE_AAC_STREAM = + "android.media.mediaparser.ts.ignoreAacStream"; /** - * Sets whether exo.TsParser should ignore AVC elementary streams. {@code boolean} expected. + * Sets whether TS parsing should ignore AVC elementary streams. {@code boolean} expected. * Default value is {@code false}. */ - public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "exo.TsParser.ignoreAvcStream"; + public static final String PARAMETER_TS_IGNORE_AVC_STREAM = + "android.media.mediaparser.ts.ignoreAvcStream"; /** - * Sets whether exo.TsParser should ignore splice information streams. {@code boolean} expected. + * Sets whether TS parsing should ignore splice information streams. {@code boolean} expected. * Default value is {@code false}. */ public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = - "exo.TsParser.ignoreSpliceInfoStream"; + "android.media.mediaparser.ts.ignoreSpliceInfoStream"; /** - * Sets whether exo.TsParser should split AVC stream into access units based on slice headers. + * Sets whether TS parsing should split AVC stream into access units based on slice headers. * {@code boolean} expected. Default value is {@code false}. * *

This flag should be left disabled if the stream contains access units delimiters in order * to avoid unnecessary computational costs. */ public static final String PARAMETER_TS_DETECT_ACCESS_UNITS = - "exo.TsParser.ignoreDetectAccessUnits"; + "android.media.mediaparser.ts.ignoreDetectAccessUnits"; /** - * Sets whether exo.TsParser should handle HDMV DTS audio streams. {@code boolean} expected. + * Sets whether TS parsing should handle HDMV DTS audio streams. {@code boolean} expected. * Default value is {@code false}. * *

Enabling this flag will disable the detection of SCTE subtitles. */ public static final String PARAMETER_TS_ENABLE_HDMV_DTS_AUDIO_STREAMS = - "exo.TsParser.enableHdmvDtsAudioStreams"; + "android.media.mediaparser.ts.enableHdmvDtsAudioStreams"; // Private constants. @@ -1174,15 +1174,14 @@ public final class MediaParser { expectedTypeByParameterName.put(PARAMETER_ADTS_ENABLE_CBR_SEEKING, Boolean.class); expectedTypeByParameterName.put(PARAMETER_AMR_ENABLE_CBR_SEEKING, Boolean.class); expectedTypeByParameterName.put(PARAMETER_FLAC_DISABLE_ID3, Boolean.class); - expectedTypeByParameterName.put(PARAMETER_FMP4_IGNORE_EDIT_LISTS, Boolean.class); - expectedTypeByParameterName.put(PARAMETER_FMP4_IGNORE_TFDT_BOX, Boolean.class); + expectedTypeByParameterName.put(PARAMETER_MP4_IGNORE_EDIT_LISTS, Boolean.class); + expectedTypeByParameterName.put(PARAMETER_MP4_IGNORE_TFDT_BOX, Boolean.class); expectedTypeByParameterName.put( - PARAMETER_FMP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES, Boolean.class); + PARAMETER_MP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES, Boolean.class); expectedTypeByParameterName.put(PARAMETER_MATROSKA_DISABLE_CUES_SEEKING, Boolean.class); expectedTypeByParameterName.put(PARAMETER_MP3_DISABLE_ID3, Boolean.class); expectedTypeByParameterName.put(PARAMETER_MP3_ENABLE_CBR_SEEKING, Boolean.class); expectedTypeByParameterName.put(PARAMETER_MP3_ENABLE_INDEX_SEEKING, Boolean.class); - expectedTypeByParameterName.put(PARAMETER_MP4_IGNORE_EDIT_LISTS, Boolean.class); expectedTypeByParameterName.put(PARAMETER_TS_MODE, String.class); expectedTypeByParameterName.put(PARAMETER_TS_ALLOW_NON_IDR_AVC_KEYFRAMES, Boolean.class); expectedTypeByParameterName.put(PARAMETER_TS_IGNORE_AAC_STREAM, Boolean.class); diff --git a/api/current.txt b/api/current.txt index a85d632e0f314..be942a7a9b6a8 100644 --- a/api/current.txt +++ b/api/current.txt @@ -26422,24 +26422,23 @@ package android.media { method public void seek(@NonNull android.media.MediaParser.SeekPoint); method @NonNull public android.media.MediaParser setParameter(@NonNull String, @NonNull Object); method public boolean supportsParameter(@NonNull String); - field public static final String PARAMETER_ADTS_ENABLE_CBR_SEEKING = "exo.AdtsParser.enableCbrSeeking"; - field public static final String PARAMETER_AMR_ENABLE_CBR_SEEKING = "exo.AmrParser.enableCbrSeeking"; - field public static final String PARAMETER_FLAC_DISABLE_ID3 = "exo.FlacParser.disableId3"; - field public static final String PARAMETER_FMP4_IGNORE_EDIT_LISTS = "exo.FragmentedMp4Parser.ignoreEditLists"; - field public static final String PARAMETER_FMP4_IGNORE_TFDT_BOX = "exo.FragmentedMp4Parser.ignoreTfdtBox"; - field public static final String PARAMETER_FMP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES = "exo.FragmentedMp4Parser.treatVideoFramesAsKeyframes"; - field public static final String PARAMETER_MATROSKA_DISABLE_CUES_SEEKING = "exo.MatroskaParser.disableCuesSeeking"; - field public static final String PARAMETER_MP3_DISABLE_ID3 = "exo.Mp3Parser.disableId3"; - field public static final String PARAMETER_MP3_ENABLE_CBR_SEEKING = "exo.Mp3Parser.enableCbrSeeking"; - field public static final String PARAMETER_MP3_ENABLE_INDEX_SEEKING = "exo.Mp3Parser.enableIndexSeeking"; - field public static final String PARAMETER_MP4_IGNORE_EDIT_LISTS = "exo.Mp4Parser.ignoreEditLists"; - field public static final String PARAMETER_TS_ALLOW_NON_IDR_AVC_KEYFRAMES = "exo.TsParser.allowNonIdrAvcKeyframes"; - field public static final String PARAMETER_TS_DETECT_ACCESS_UNITS = "exo.TsParser.ignoreDetectAccessUnits"; - field public static final String PARAMETER_TS_ENABLE_HDMV_DTS_AUDIO_STREAMS = "exo.TsParser.enableHdmvDtsAudioStreams"; - field public static final String PARAMETER_TS_IGNORE_AAC_STREAM = "exo.TsParser.ignoreAacStream"; - field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "exo.TsParser.ignoreAvcStream"; - field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "exo.TsParser.ignoreSpliceInfoStream"; - field public static final String PARAMETER_TS_MODE = "exo.TsParser.mode"; + field public static final String PARAMETER_ADTS_ENABLE_CBR_SEEKING = "android.media.mediaparser.adts.enableCbrSeeking"; + field public static final String PARAMETER_AMR_ENABLE_CBR_SEEKING = "android.media.mediaparser.amr.enableCbrSeeking"; + field public static final String PARAMETER_FLAC_DISABLE_ID3 = "android.media.mediaparser.flac.disableId3"; + field public static final String PARAMETER_MATROSKA_DISABLE_CUES_SEEKING = "android.media.mediaparser.matroska.disableCuesSeeking"; + field public static final String PARAMETER_MP3_DISABLE_ID3 = "android.media.mediaparser.mp3.disableId3"; + field public static final String PARAMETER_MP3_ENABLE_CBR_SEEKING = "android.media.mediaparser.mp3.enableCbrSeeking"; + field public static final String PARAMETER_MP3_ENABLE_INDEX_SEEKING = "android.media.mediaparser.mp3.enableIndexSeeking"; + field public static final String PARAMETER_MP4_IGNORE_EDIT_LISTS = "android.media.mediaparser.mp4.ignoreEditLists"; + field public static final String PARAMETER_MP4_IGNORE_TFDT_BOX = "android.media.mediaparser.mp4.ignoreTfdtBox"; + field public static final String PARAMETER_MP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES = "android.media.mediaparser.mp4.treatVideoFramesAsKeyframes"; + field public static final String PARAMETER_TS_ALLOW_NON_IDR_AVC_KEYFRAMES = "android.media.mediaparser.ts.allowNonIdrAvcKeyframes"; + field public static final String PARAMETER_TS_DETECT_ACCESS_UNITS = "android.media.mediaparser.ts.ignoreDetectAccessUnits"; + field public static final String PARAMETER_TS_ENABLE_HDMV_DTS_AUDIO_STREAMS = "android.media.mediaparser.ts.enableHdmvDtsAudioStreams"; + field public static final String PARAMETER_TS_IGNORE_AAC_STREAM = "android.media.mediaparser.ts.ignoreAacStream"; + field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "android.media.mediaparser.ts.ignoreAvcStream"; + field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "android.media.mediaparser.ts.ignoreSpliceInfoStream"; + field public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode"; } public static interface MediaParser.InputReader {