Skip 4K export test on Pixel 3a
PiperOrigin-RevId: 644659699
This commit is contained in:
parent
66c19390e2
commit
d27549d29a
@ -653,14 +653,14 @@ public final class MimeTypes {
|
|||||||
}
|
}
|
||||||
mimeType = Ascii.toLowerCase(mimeType);
|
mimeType = Ascii.toLowerCase(mimeType);
|
||||||
switch (mimeType) {
|
switch (mimeType) {
|
||||||
// Normalize uncommon versions of some audio MIME types to their standard equivalent.
|
// Normalize uncommon versions of some audio MIME types to their standard equivalent.
|
||||||
case BASE_TYPE_AUDIO + "/x-flac":
|
case BASE_TYPE_AUDIO + "/x-flac":
|
||||||
return AUDIO_FLAC;
|
return AUDIO_FLAC;
|
||||||
case BASE_TYPE_AUDIO + "/mp3":
|
case BASE_TYPE_AUDIO + "/mp3":
|
||||||
return AUDIO_MPEG;
|
return AUDIO_MPEG;
|
||||||
case BASE_TYPE_AUDIO + "/x-wav":
|
case BASE_TYPE_AUDIO + "/x-wav":
|
||||||
return AUDIO_WAV;
|
return AUDIO_WAV;
|
||||||
// Normalize MIME types that are often written with upper-case letters to their common form.
|
// Normalize MIME types that are often written with upper-case letters to their common form.
|
||||||
case "application/x-mpegurl":
|
case "application/x-mpegurl":
|
||||||
return APPLICATION_M3U8;
|
return APPLICATION_M3U8;
|
||||||
case "audio/mpeg-l1":
|
case "audio/mpeg-l1":
|
||||||
|
@ -347,20 +347,20 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (audioAttributes.usage) {
|
switch (audioAttributes.usage) {
|
||||||
// USAGE_VOICE_COMMUNICATION_SIGNALLING is for DTMF that may happen multiple times
|
// USAGE_VOICE_COMMUNICATION_SIGNALLING is for DTMF that may happen multiple times
|
||||||
// during the phone call when AUDIOFOCUS_GAIN_TRANSIENT is requested for that.
|
// during the phone call when AUDIOFOCUS_GAIN_TRANSIENT is requested for that.
|
||||||
// Don't request audio focus here.
|
// Don't request audio focus here.
|
||||||
case C.USAGE_VOICE_COMMUNICATION_SIGNALLING:
|
case C.USAGE_VOICE_COMMUNICATION_SIGNALLING:
|
||||||
return AUDIOFOCUS_NONE;
|
return AUDIOFOCUS_NONE;
|
||||||
|
|
||||||
// Javadoc says 'AUDIOFOCUS_GAIN: Examples of uses of this focus gain are for music
|
// Javadoc says 'AUDIOFOCUS_GAIN: Examples of uses of this focus gain are for music
|
||||||
// playback, for a game or a video player'
|
// playback, for a game or a video player'
|
||||||
case C.USAGE_GAME:
|
case C.USAGE_GAME:
|
||||||
case C.USAGE_MEDIA:
|
case C.USAGE_MEDIA:
|
||||||
return AUDIOFOCUS_GAIN;
|
return AUDIOFOCUS_GAIN;
|
||||||
|
|
||||||
// Special usages: USAGE_UNKNOWN shouldn't be used. Request audio focus to prevent
|
// Special usages: USAGE_UNKNOWN shouldn't be used. Request audio focus to prevent
|
||||||
// multiple media playback happen at the same time.
|
// multiple media playback happen at the same time.
|
||||||
case C.USAGE_UNKNOWN:
|
case C.USAGE_UNKNOWN:
|
||||||
Log.w(
|
Log.w(
|
||||||
TAG,
|
TAG,
|
||||||
@ -368,14 +368,14 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
+ " handling. Using AUDIOFOCUS_GAIN by default.");
|
+ " handling. Using AUDIOFOCUS_GAIN by default.");
|
||||||
return AUDIOFOCUS_GAIN;
|
return AUDIOFOCUS_GAIN;
|
||||||
|
|
||||||
// Javadoc says 'AUDIOFOCUS_GAIN_TRANSIENT: An example is for playing an alarm, or
|
// Javadoc says 'AUDIOFOCUS_GAIN_TRANSIENT: An example is for playing an alarm, or
|
||||||
// during a VoIP call'
|
// during a VoIP call'
|
||||||
case C.USAGE_ALARM:
|
case C.USAGE_ALARM:
|
||||||
case C.USAGE_VOICE_COMMUNICATION:
|
case C.USAGE_VOICE_COMMUNICATION:
|
||||||
return AUDIOFOCUS_GAIN_TRANSIENT;
|
return AUDIOFOCUS_GAIN_TRANSIENT;
|
||||||
|
|
||||||
// Javadoc says 'AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK: Examples are when playing
|
// Javadoc says 'AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK: Examples are when playing
|
||||||
// driving directions or notifications'
|
// driving directions or notifications'
|
||||||
case C.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE:
|
case C.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE:
|
||||||
case C.USAGE_ASSISTANCE_SONIFICATION:
|
case C.USAGE_ASSISTANCE_SONIFICATION:
|
||||||
case C.USAGE_NOTIFICATION:
|
case C.USAGE_NOTIFICATION:
|
||||||
@ -386,13 +386,13 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
case C.USAGE_NOTIFICATION_RINGTONE:
|
case C.USAGE_NOTIFICATION_RINGTONE:
|
||||||
return AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK;
|
return AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK;
|
||||||
|
|
||||||
// Javadoc says 'AUDIOFOCUS_GAIN_EXCLUSIVE: This is typically used if you are doing
|
// Javadoc says 'AUDIOFOCUS_GAIN_EXCLUSIVE: This is typically used if you are doing
|
||||||
// audio recording or speech recognition'.
|
// audio recording or speech recognition'.
|
||||||
// Assistant is considered as both recording and notifying developer
|
// Assistant is considered as both recording and notifying developer
|
||||||
case C.USAGE_ASSISTANT:
|
case C.USAGE_ASSISTANT:
|
||||||
return AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE;
|
return AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE;
|
||||||
|
|
||||||
// Special usages:
|
// Special usages:
|
||||||
case C.USAGE_ASSISTANCE_ACCESSIBILITY:
|
case C.USAGE_ASSISTANCE_ACCESSIBILITY:
|
||||||
if (audioAttributes.contentType == C.AUDIO_CONTENT_TYPE_SPEECH) {
|
if (audioAttributes.contentType == C.AUDIO_CONTENT_TYPE_SPEECH) {
|
||||||
// Voice shouldn't be interrupted by other playback.
|
// Voice shouldn't be interrupted by other playback.
|
||||||
|
@ -96,7 +96,7 @@ public final class DownloadNotificationHelper {
|
|||||||
haveDownloadedBytes |= download.getBytesDownloaded() > 0;
|
haveDownloadedBytes |= download.getBytesDownloaded() > 0;
|
||||||
downloadTaskCount++;
|
downloadTaskCount++;
|
||||||
break;
|
break;
|
||||||
// Terminal states aren't expected, but if we encounter them we do nothing.
|
// Terminal states aren't expected, but if we encounter them we do nothing.
|
||||||
case Download.STATE_STOPPED:
|
case Download.STATE_STOPPED:
|
||||||
case Download.STATE_COMPLETED:
|
case Download.STATE_COMPLETED:
|
||||||
case Download.STATE_FAILED:
|
case Download.STATE_FAILED:
|
||||||
|
@ -1093,7 +1093,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer
|
|||||||
case MimeTypes.VIDEO_H263:
|
case MimeTypes.VIDEO_H263:
|
||||||
case MimeTypes.VIDEO_MP4V:
|
case MimeTypes.VIDEO_MP4V:
|
||||||
case MimeTypes.VIDEO_AV1:
|
case MimeTypes.VIDEO_AV1:
|
||||||
// Assume a min compression of 2 similar to the platform's C2SoftAomDec.cpp.
|
// Assume a min compression of 2 similar to the platform's C2SoftAomDec.cpp.
|
||||||
case MimeTypes.VIDEO_VP8:
|
case MimeTypes.VIDEO_VP8:
|
||||||
// Assume a min compression of 2 similar to the platform's SoftVPX.cpp.
|
// Assume a min compression of 2 similar to the platform's SoftVPX.cpp.
|
||||||
return getMaxSampleSize(/* pixelCount= */ width * height, /* minCompressionRatio= */ 2);
|
return getMaxSampleSize(/* pixelCount= */ width * height, /* minCompressionRatio= */ 2);
|
||||||
@ -2180,7 +2180,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
switch (Util.MODEL) {
|
switch (Util.MODEL) {
|
||||||
// Workaround for some Fire OS devices.
|
// Workaround for some Fire OS devices.
|
||||||
case "AFTA":
|
case "AFTA":
|
||||||
case "AFTN":
|
case "AFTN":
|
||||||
case "AFTR":
|
case "AFTR":
|
||||||
|
@ -1539,7 +1539,7 @@ public class DashManifestParser extends DefaultHandler
|
|||||||
}
|
}
|
||||||
switch (value) {
|
switch (value) {
|
||||||
case "forced_subtitle":
|
case "forced_subtitle":
|
||||||
// Support both hyphen and underscore (https://github.com/google/ExoPlayer/issues/9727).
|
// Support both hyphen and underscore (https://github.com/google/ExoPlayer/issues/9727).
|
||||||
case "forced-subtitle":
|
case "forced-subtitle":
|
||||||
return C.SELECTION_FLAG_FORCED;
|
return C.SELECTION_FLAG_FORCED;
|
||||||
default:
|
default:
|
||||||
@ -1608,7 +1608,7 @@ public class DashManifestParser extends DefaultHandler
|
|||||||
case "caption":
|
case "caption":
|
||||||
return C.ROLE_FLAG_CAPTION;
|
return C.ROLE_FLAG_CAPTION;
|
||||||
case "forced_subtitle":
|
case "forced_subtitle":
|
||||||
// Support both hyphen and underscore (https://github.com/google/ExoPlayer/issues/9727).
|
// Support both hyphen and underscore (https://github.com/google/ExoPlayer/issues/9727).
|
||||||
case "forced-subtitle":
|
case "forced-subtitle":
|
||||||
case "subtitle":
|
case "subtitle":
|
||||||
return C.ROLE_FLAG_SUBTITLE;
|
return C.ROLE_FLAG_SUBTITLE;
|
||||||
|
@ -230,7 +230,7 @@ import java.util.HashMap;
|
|||||||
checkArgument(rtpPayloadType < 96);
|
checkArgument(rtpPayloadType < 96);
|
||||||
|
|
||||||
switch (rtpPayloadType) {
|
switch (rtpPayloadType) {
|
||||||
// See RFC3551 Section 6.
|
// See RFC3551 Section 6.
|
||||||
case RTP_STATIC_PAYLOAD_TYPE_PCMU:
|
case RTP_STATIC_PAYLOAD_TYPE_PCMU:
|
||||||
return constructAudioRtpMap(
|
return constructAudioRtpMap(
|
||||||
RTP_STATIC_PAYLOAD_TYPE_PCMU,
|
RTP_STATIC_PAYLOAD_TYPE_PCMU,
|
||||||
|
@ -295,7 +295,7 @@ import com.google.common.collect.ImmutableMap;
|
|||||||
case MimeTypes.AUDIO_AC3:
|
case MimeTypes.AUDIO_AC3:
|
||||||
case MimeTypes.AUDIO_ALAW:
|
case MimeTypes.AUDIO_ALAW:
|
||||||
case MimeTypes.AUDIO_MLAW:
|
case MimeTypes.AUDIO_MLAW:
|
||||||
// Does not require a fmtp attribute. Fall through.
|
// Does not require a fmtp attribute. Fall through.
|
||||||
default:
|
default:
|
||||||
// Do nothing.
|
// Do nothing.
|
||||||
}
|
}
|
||||||
|
@ -458,7 +458,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_READING_BODY:
|
case STATE_READING_BODY:
|
||||||
// Message body must be handled by addMessageBody().
|
// Message body must be handled by addMessageBody().
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
|
@ -116,7 +116,7 @@ public final class RtpAc3Reader implements RtpPayloadReader {
|
|||||||
case AC3_FRAME_TYPE_INITIAL_FRAGMENT_A:
|
case AC3_FRAME_TYPE_INITIAL_FRAGMENT_A:
|
||||||
case AC3_FRAME_TYPE_INITIAL_FRAGMENT_B:
|
case AC3_FRAME_TYPE_INITIAL_FRAGMENT_B:
|
||||||
maybeOutputSampleMetadata();
|
maybeOutputSampleMetadata();
|
||||||
// Falls through.
|
// Falls through.
|
||||||
case AC3_FRAME_TYPE_NON_INITIAL_FRAGMENT:
|
case AC3_FRAME_TYPE_NON_INITIAL_FRAGMENT:
|
||||||
// The content of an AC3 frame is split into multiple RTP packets.
|
// The content of an AC3 frame is split into multiple RTP packets.
|
||||||
processFragmentedPacket(data, rtpMarker, frameType, sampleTimeUs);
|
processFragmentedPacket(data, rtpMarker, frameType, sampleTimeUs);
|
||||||
|
@ -77,7 +77,7 @@ public final class WavUtil {
|
|||||||
return TYPE_PCM;
|
return TYPE_PCM;
|
||||||
case C.ENCODING_PCM_FLOAT:
|
case C.ENCODING_PCM_FLOAT:
|
||||||
return TYPE_FLOAT;
|
return TYPE_FLOAT;
|
||||||
// TYPE_PCM is little endian so big endian formats don't match.
|
// TYPE_PCM is little endian so big endian formats don't match.
|
||||||
case C.ENCODING_PCM_16BIT_BIG_ENDIAN:
|
case C.ENCODING_PCM_16BIT_BIG_ENDIAN:
|
||||||
case C.ENCODING_PCM_24BIT_BIG_ENDIAN:
|
case C.ENCODING_PCM_24BIT_BIG_ENDIAN:
|
||||||
case C.ENCODING_PCM_32BIT_BIG_ENDIAN:
|
case C.ENCODING_PCM_32BIT_BIG_ENDIAN:
|
||||||
|
@ -133,10 +133,10 @@ public final class TextInformationFrame extends Id3Frame {
|
|||||||
switch (recordingDate.size()) {
|
switch (recordingDate.size()) {
|
||||||
case 3:
|
case 3:
|
||||||
builder.setRecordingDay(recordingDate.get(2));
|
builder.setRecordingDay(recordingDate.get(2));
|
||||||
// fall through
|
// fall through
|
||||||
case 2:
|
case 2:
|
||||||
builder.setRecordingMonth(recordingDate.get(1));
|
builder.setRecordingMonth(recordingDate.get(1));
|
||||||
// fall through
|
// fall through
|
||||||
case 1:
|
case 1:
|
||||||
builder.setRecordingYear(recordingDate.get(0));
|
builder.setRecordingYear(recordingDate.get(0));
|
||||||
// fall through
|
// fall through
|
||||||
@ -151,10 +151,10 @@ public final class TextInformationFrame extends Id3Frame {
|
|||||||
switch (releaseDate.size()) {
|
switch (releaseDate.size()) {
|
||||||
case 3:
|
case 3:
|
||||||
builder.setReleaseDay(releaseDate.get(2));
|
builder.setReleaseDay(releaseDate.get(2));
|
||||||
// fall through
|
// fall through
|
||||||
case 2:
|
case 2:
|
||||||
builder.setReleaseMonth(releaseDate.get(1));
|
builder.setReleaseMonth(releaseDate.get(1));
|
||||||
// fall through
|
// fall through
|
||||||
case 1:
|
case 1:
|
||||||
builder.setReleaseYear(releaseDate.get(0));
|
builder.setReleaseYear(releaseDate.get(0));
|
||||||
// fall through
|
// fall through
|
||||||
|
@ -103,7 +103,7 @@ import java.math.BigInteger;
|
|||||||
if (lastPageSearchPosition > positionBeforeSeekToEnd) {
|
if (lastPageSearchPosition > positionBeforeSeekToEnd) {
|
||||||
return lastPageSearchPosition;
|
return lastPageSearchPosition;
|
||||||
}
|
}
|
||||||
// Fall through.
|
// Fall through.
|
||||||
case STATE_READ_LAST_PAGE:
|
case STATE_READ_LAST_PAGE:
|
||||||
totalGranules = readGranuleOfLastPage(input);
|
totalGranules = readGranuleOfLastPage(input);
|
||||||
state = STATE_IDLE;
|
state = STATE_IDLE;
|
||||||
@ -114,7 +114,7 @@ import java.math.BigInteger;
|
|||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
state = STATE_SKIP;
|
state = STATE_SKIP;
|
||||||
// Fall through.
|
// Fall through.
|
||||||
case STATE_SKIP:
|
case STATE_SKIP:
|
||||||
skipToPageOfTargetGranule(input);
|
skipToPageOfTargetGranule(input);
|
||||||
state = STATE_IDLE;
|
state = STATE_IDLE;
|
||||||
|
@ -1297,7 +1297,7 @@ public final class Cea708Decoder extends CeaDecoder {
|
|||||||
Alignment alignment;
|
Alignment alignment;
|
||||||
switch (justification) {
|
switch (justification) {
|
||||||
case JUSTIFICATION_FULL:
|
case JUSTIFICATION_FULL:
|
||||||
// TODO: Add support for full justification.
|
// TODO: Add support for full justification.
|
||||||
case JUSTIFICATION_LEFT:
|
case JUSTIFICATION_LEFT:
|
||||||
alignment = Alignment.ALIGN_NORMAL;
|
alignment = Alignment.ALIGN_NORMAL;
|
||||||
break;
|
break;
|
||||||
|
@ -476,7 +476,7 @@ public final class TtmlParser implements SubtitleParser {
|
|||||||
XmlPullParserUtil.getAttributeValue(xmlParser, TtmlNode.ATTR_TTS_WRITING_MODE);
|
XmlPullParserUtil.getAttributeValue(xmlParser, TtmlNode.ATTR_TTS_WRITING_MODE);
|
||||||
if (writingDirection != null) {
|
if (writingDirection != null) {
|
||||||
switch (Ascii.toLowerCase(writingDirection)) {
|
switch (Ascii.toLowerCase(writingDirection)) {
|
||||||
// TODO: Support horizontal RTL modes.
|
// TODO: Support horizontal RTL modes.
|
||||||
case TtmlNode.VERTICAL:
|
case TtmlNode.VERTICAL:
|
||||||
case TtmlNode.VERTICAL_LR:
|
case TtmlNode.VERTICAL_LR:
|
||||||
verticalType = Cue.VERTICAL_TYPE_LR;
|
verticalType = Cue.VERTICAL_TYPE_LR;
|
||||||
|
@ -198,8 +198,8 @@ import java.util.Map;
|
|||||||
new RubySpan(rubyText, rubyPosition), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
new RubySpan(rubyText, rubyPosition), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||||
break;
|
break;
|
||||||
case TtmlStyle.RUBY_TYPE_DELIMITER:
|
case TtmlStyle.RUBY_TYPE_DELIMITER:
|
||||||
// TODO: Add support for this when RubySpan supports parenthetical text. For now, just
|
// TODO: Add support for this when RubySpan supports parenthetical text. For now, just
|
||||||
// fall through and delete the text.
|
// fall through and delete the text.
|
||||||
case TtmlStyle.RUBY_TYPE_TEXT:
|
case TtmlStyle.RUBY_TYPE_TEXT:
|
||||||
// We can't just remove the text directly from `builder` here because TtmlNode has fixed
|
// We can't just remove the text directly from `builder` here because TtmlNode has fixed
|
||||||
// ideas of where every node starts and ends (nodeStartsByRegion and nodeEndsByRegion) so
|
// ideas of where every node starts and ends (nodeStartsByRegion and nodeEndsByRegion) so
|
||||||
|
@ -169,7 +169,7 @@ public final class DefaultTsPayloadReaderFactory implements TsPayloadReader.Fact
|
|||||||
if (!isSet(FLAG_ENABLE_HDMV_DTS_AUDIO_STREAMS)) {
|
if (!isSet(FLAG_ENABLE_HDMV_DTS_AUDIO_STREAMS)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// Fall through.
|
// Fall through.
|
||||||
case TsExtractor.TS_STREAM_TYPE_DTS:
|
case TsExtractor.TS_STREAM_TYPE_DTS:
|
||||||
case TsExtractor.TS_STREAM_TYPE_DTS_HD:
|
case TsExtractor.TS_STREAM_TYPE_DTS_HD:
|
||||||
return new PesReader(
|
return new PesReader(
|
||||||
|
@ -139,8 +139,8 @@ import org.checkerframework.checker.nullness.qual.PolyNull;
|
|||||||
stblBox = Boxes.stbl(stsdBox, stts, stsz, stsc, chunkOffsetBox);
|
stblBox = Boxes.stbl(stsdBox, stts, stsz, stsc, chunkOffsetBox);
|
||||||
break;
|
break;
|
||||||
case C.TRACK_TYPE_METADATA:
|
case C.TRACK_TYPE_METADATA:
|
||||||
// TODO: (b/280443593) - Check if we can identify a metadata track type from a custom
|
// TODO: (b/280443593) - Check if we can identify a metadata track type from a custom
|
||||||
// mime type.
|
// mime type.
|
||||||
case C.TRACK_TYPE_UNKNOWN:
|
case C.TRACK_TYPE_UNKNOWN:
|
||||||
handlerType = "meta";
|
handlerType = "meta";
|
||||||
handlerName = "MetaHandle";
|
handlerName = "MetaHandle";
|
||||||
|
@ -1330,8 +1330,8 @@ import java.util.List;
|
|||||||
return PlaybackStateCompat.ACTION_STOP;
|
return PlaybackStateCompat.ACTION_STOP;
|
||||||
case Player.COMMAND_ADJUST_DEVICE_VOLUME:
|
case Player.COMMAND_ADJUST_DEVICE_VOLUME:
|
||||||
case Player.COMMAND_CHANGE_MEDIA_ITEMS:
|
case Player.COMMAND_CHANGE_MEDIA_ITEMS:
|
||||||
// TODO(b/227346735): Handle this through
|
// TODO(b/227346735): Handle this through
|
||||||
// MediaSessionCompat.setFlags(FLAG_HANDLES_QUEUE_COMMANDS)
|
// MediaSessionCompat.setFlags(FLAG_HANDLES_QUEUE_COMMANDS)
|
||||||
case Player.COMMAND_GET_AUDIO_ATTRIBUTES:
|
case Player.COMMAND_GET_AUDIO_ATTRIBUTES:
|
||||||
case Player.COMMAND_GET_CURRENT_MEDIA_ITEM:
|
case Player.COMMAND_GET_CURRENT_MEDIA_ITEM:
|
||||||
case Player.COMMAND_GET_DEVICE_VOLUME:
|
case Player.COMMAND_GET_DEVICE_VOLUME:
|
||||||
|
@ -826,7 +826,7 @@ public class AudioAttributesCompat {
|
|||||||
case USAGE_VIRTUAL_SOURCE:
|
case USAGE_VIRTUAL_SOURCE:
|
||||||
mUsage = usage;
|
mUsage = usage;
|
||||||
break;
|
break;
|
||||||
// TODO: shouldn't it be USAGE_ASSISTANT?
|
// TODO: shouldn't it be USAGE_ASSISTANT?
|
||||||
case USAGE_ASSISTANT:
|
case USAGE_ASSISTANT:
|
||||||
mUsage = USAGE_ASSISTANCE_NAVIGATION_GUIDANCE;
|
mUsage = USAGE_ASSISTANCE_NAVIGATION_GUIDANCE;
|
||||||
break;
|
break;
|
||||||
@ -877,7 +877,7 @@ public class AudioAttributesCompat {
|
|||||||
break;
|
break;
|
||||||
case AudioManagerHidden.STREAM_SYSTEM_ENFORCED:
|
case AudioManagerHidden.STREAM_SYSTEM_ENFORCED:
|
||||||
mFlags |= AudioAttributesCompat.FLAG_AUDIBILITY_ENFORCED;
|
mFlags |= AudioAttributesCompat.FLAG_AUDIBILITY_ENFORCED;
|
||||||
// intended fall through, attributes in common with STREAM_SYSTEM
|
// intended fall through, attributes in common with STREAM_SYSTEM
|
||||||
case AudioManager.STREAM_SYSTEM:
|
case AudioManager.STREAM_SYSTEM:
|
||||||
mContentType = CONTENT_TYPE_SONIFICATION;
|
mContentType = CONTENT_TYPE_SONIFICATION;
|
||||||
break;
|
break;
|
||||||
|
@ -3634,13 +3634,13 @@ public class MediaSessionCompat {
|
|||||||
}
|
}
|
||||||
long validActions = mState == null ? 0 : mState.getActions();
|
long validActions = mState == null ? 0 : mState.getActions();
|
||||||
switch (ke.getKeyCode()) {
|
switch (ke.getKeyCode()) {
|
||||||
// Note KeyEvent.KEYCODE_MEDIA_PLAY is API 11+
|
// Note KeyEvent.KEYCODE_MEDIA_PLAY is API 11+
|
||||||
case KEYCODE_MEDIA_PLAY:
|
case KEYCODE_MEDIA_PLAY:
|
||||||
if ((validActions & PlaybackStateCompat.ACTION_PLAY) != 0) {
|
if ((validActions & PlaybackStateCompat.ACTION_PLAY) != 0) {
|
||||||
cb.onPlay();
|
cb.onPlay();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// Note KeyEvent.KEYCODE_MEDIA_PAUSE is API 11+
|
// Note KeyEvent.KEYCODE_MEDIA_PAUSE is API 11+
|
||||||
case KEYCODE_MEDIA_PAUSE:
|
case KEYCODE_MEDIA_PAUSE:
|
||||||
if ((validActions & PlaybackStateCompat.ACTION_PAUSE) != 0) {
|
if ((validActions & PlaybackStateCompat.ACTION_PAUSE) != 0) {
|
||||||
cb.onPause();
|
cb.onPause();
|
||||||
|
@ -300,7 +300,7 @@ public final class RatingCompat implements Parcelable {
|
|||||||
if (isRated()) {
|
if (isRated()) {
|
||||||
return mRatingValue;
|
return mRatingValue;
|
||||||
}
|
}
|
||||||
// fall through
|
// fall through
|
||||||
default:
|
default:
|
||||||
return -1.0f;
|
return -1.0f;
|
||||||
}
|
}
|
||||||
|
@ -168,6 +168,10 @@ public class ExportTest {
|
|||||||
assumeFalse(
|
assumeFalse(
|
||||||
"Skip due to over-reported encoder capabilities",
|
"Skip due to over-reported encoder capabilities",
|
||||||
Util.SDK_INT == 29 && Ascii.equalsIgnoreCase(Util.MODEL, "pixel 3"));
|
Util.SDK_INT == 29 && Ascii.equalsIgnoreCase(Util.MODEL, "pixel 3"));
|
||||||
|
// Reference: b/347635026
|
||||||
|
assumeFalse(
|
||||||
|
"Skip due to decoder failing to queue input frames",
|
||||||
|
Util.SDK_INT == 29 && Ascii.equalsIgnoreCase(Util.MODEL, "pixel 3a"));
|
||||||
Transformer transformer =
|
Transformer transformer =
|
||||||
new Transformer.Builder(context)
|
new Transformer.Builder(context)
|
||||||
.setEncoderFactory(new ForceEncodeEncoderFactory(context))
|
.setEncoderFactory(new ForceEncodeEncoderFactory(context))
|
||||||
|
@ -647,7 +647,7 @@ public class DefaultTimeBar extends View implements TimeBar {
|
|||||||
switch (keyCode) {
|
switch (keyCode) {
|
||||||
case KeyEvent.KEYCODE_DPAD_LEFT:
|
case KeyEvent.KEYCODE_DPAD_LEFT:
|
||||||
positionIncrement = -positionIncrement;
|
positionIncrement = -positionIncrement;
|
||||||
// Fall through.
|
// Fall through.
|
||||||
case KeyEvent.KEYCODE_DPAD_RIGHT:
|
case KeyEvent.KEYCODE_DPAD_RIGHT:
|
||||||
if (scrubIncrementally(positionIncrement)) {
|
if (scrubIncrementally(positionIncrement)) {
|
||||||
removeCallbacks(stopScrubbingRunnable);
|
removeCallbacks(stopScrubbingRunnable);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user