This flag can be misleading. Also it is not false to set the value to 0
when a player has not had an active mute event. For anonymization using
also the 0 value.
Test: dumpsys audio & atest android.media.audio.cts.AudioPlaybackConfigurationTest
Bug: 257136556
Change-Id: Ie8579f1824e4a514c437fc0e25891d46783c388e
Context service name for accessing AudioDeviceVolume manager.
Address API comments on VolumeInfo and AudioDeviceVolumeManager.
Add support in VolumeInfo to know whether it carries an explicit
mute/unmute information (vs just default value of isMuted()).
Bug: 244326361
Test: atest android.media.audio.cts.AudioDeviceVolumeManagerTest
Test: atest android.media.audio.cts.VolumeInfoTest
Change-Id: Id718fbd7e0d5795ac480d9188faad4a70fba9808
Introduce TYPE_DOCK_ANALOG.
Fix mappings of TYPE_DOCK to map to a single
device type, digital dock.
Bug: 253118335
Test: atest android.media.audio.cts.AudioDeviceInfoTest
Change-Id: I160875e74b29739a0232d6a7b833c3927433e067
The current code reads alpha into an int, doesn't shift it back to the
least-significant-bit, and then shifts that value 4 more bits before
writing to the VP8X 'flags' byte. This results in setting the MSB of the
flags byte, which is a reserved bit that must always be zero, resulting
in an invalid file.
VP8X part of WebP spec:
https://developers.google.com/speed/webp/docs/riff_container#extended_file_format
Test: ExifInterfaceTest (after removing the suppression for this bug)
Bug: 253622642
Change-Id: I42469a479c94442eb395124c4eac174bd9ab6e09
When skipping over the EXIF chunk in the input file (and writing a new
EXIF chunk to the output based on the internal Exif data of the class),
it's important to skip both the chunk and any trailing padding byte (if
the chunk size is odd).
Without this fix the output of saveAttributes may be invalid (not
decodable with BitmapFactory.decodeFile).
Test: Added tests to ExifInterfaceTest to check the output of
saveAttributes is always parsable with BitmapFactory.
Bug: 253622642
Change-Id: I6b7c4612b830dbf95a12c42eac5d6301dfb15104
Make sure that devices selected for communication have a sink
role (output) and clarify the AudioManager documentation.
Bug: 247659585
Test: make
Change-Id: I6b1bc0430a7c5f8a5019fb723a3d9d9e5fcd36c6
The DTS codec capability in sink devices can be DTS Digital Surround,
DTS HD, DTS HD Master Audio (Lossless), DTS:X Profile 1,
or DTS:X Profile 2.
The AudioFormat class already supports ENCODING_DTS, ENCODING_DTS_HD,
and ENCODING_DTS_UHD compressed formats. To distinguish all the
five categories of DTS codec capabilities, two more compressed
formats need to be added in AudioFormat class.
- The ENCODING_DTS_HD_MA format represents codec capability for
DTS HD Master Audio (both w/core and coreless lossless)
- The ENCODING_DTS_UHD_P1 format represents DTS:X Profile 1
codec capability and is the same as existing ENCODING_DTS_UHD
- The ENCODING_DTS_UHD_P2 format represents DTS:X Profile 2
codec capability
The codec capability represented by the existing formats are:
- ENCODING_DTS is for DTS Digital Surround
- ENCODING_DTS_HD is for DTS HD (DTS 8Ch Discrete, DTS High Resolution,
DTS Express)
- ENCODING_DTS_UHD is for DTS:X Profile 1
Test: atest AudioFormatTest
Change-Id: Id4d332cc75beee40cfe8637a4ecef18a0d2a0908
This change re-throws exceptions that can only be caused by a dead
system server. We avoid spamming the logs by just re-throwing.
This makes it more clear that the MediaRouter instance does not
end the method execution in a consistent state.
Bug: b/259025372
Test: atest MediaRouterTest
Change-Id: I28dbe7936e199e322dc634a8bcc2206afbc0eaf7
This commit is part of a large scale change to fix errorprone
errors that have been downgraded to warnings in the android
source tree, so that they can be promoted to errors again.
The full list of changes include the following, but not all
will be present in any one individual commit:
BadAnnotationImplementation
BadShiftAmount
BanJNDI
BoxedPrimitiveEquality
ComparableType
ComplexBooleanConstant
CollectionToArraySafeParameter
ConditionalExpressionNumericPromotion
DangerousLiteralNull
DoubleBraceInitialization
DurationFrom
DurationTemporalUnit
EmptyTopLevelDeclaration
EqualsNull
EqualsReference
FormatString
FromTemporalAccessor
GetClassOnAnnotation
GetClassOnClass
HashtableContains
IdentityBinaryExpression
IdentityHashMapBoxing
InstantTemporalUnit
InvalidTimeZoneID
InvalidZoneId
IsInstanceIncompatibleType
JUnitParameterMethodNotFound
LockOnBoxedPrimitive
MathRoundIntLong
MislabeledAndroidString
MisusedDayOfYear
MissingSuperCall
MisusedWeekYear
ModifyingCollectionWithItself
NoCanIgnoreReturnValueOnClasses
NonRuntimeAnnotation
NullableOnContainingClass
NullTernary
OverridesJavaxInjectableMethod
ParcelableCreator
PeriodFrom
PreconditionsInvalidPlaceholder
ProtoBuilderReturnValueIgnored
ProtoFieldNullComparison
RandomModInteger
RectIntersectReturnValueIgnored
ReturnValueIgnored
SelfAssignment
SelfComparison
SelfEquals
SizeGreaterThanOrEqualsZero
StringBuilderInitWithChar
TreeToString
TryFailThrowable
UnnecessaryCheckNotNull
UnusedCollectionModifiedInPlace
XorPower
See https://errorprone.info/bugpatterns for more
information on the checks.
Bug: 253827323
Test: m RUN_ERROR_PRONE=true javac-check
Change-Id: I8446f9076a45ebf7e7ffa06cb0d4ddb1001b6c00
This change essentially replaces new Handler().getLooper() with
Looper.myLooper().
Bug: 205124386
Change-Id: If2d9664d6844cf4fa2cb97b3724854db506985a3
Test: Presubmit.