Prior to android N, ExifInterface.setAttributes() accepted the
decimal values for SRATIONAL/URATIONAL formats. However in android N,
decimal values for RATIONAL formats are rejected. Since this behavior
breaks the backward compatibility, we should make setAttributes()
accept decimal values as before.
Bug: 34269464
Test: flashed modified build on angler and tested with an app
Change-Id: I9a77ce341c8c8c3ea74c8592b5a821243eb0257d
The player state of PlayerBase was not kept in sync with its
corresponding AudioPlaybackConfiguration. This caused
the configuration to never be removed and gc'd because
the state of PlayerBase when released was always the
unitialized state of 0 == released state.
Test: use a MediaPlayer then call release, verify the player
is not showing in the AudioService dumpsys
Bug: 30258418
Change-Id: I9a6704147949e1e45752e646648c8c882376752f
Property value is based on the particular device.
This allows some hosts (windows) to apply a device
specific icon in file explorer.
Test: Connect device to windows, verify new icon
Bug: 25360563
Change-Id: I9d3468ca8c01a6f0d42ad543aef11ed265b6c825
In preparation for removing junit classes from the Android API
the legacy-test target will be removed from the
TARGET_DEFAULT_JAVA_LIBRARIES. This change adds explicit
dependencies on junit and/or legacy-android-test to ensure that
modules will compile properly once it is removed.
(cherry picked from 6387604f9e672ece85e07c4bcbd7be396867f06f)
Bug: 30188076
Test: make checkbuild
Merged-In: I13e88297731253420e4e5f5291d503f13a39a156
Change-Id: I58446eb8c45d8ac2bcdbc9fa40d1321e811bdd4b
Only support recording to MP4 file now. When the recorded file is approcaching
file size limit, application will receive
MEDIA_RECORDER_INFO_MAX_FILESIZE_APPROACHING callback from mediarecorder.
Application could use setNextOutputFile to set the next output file before or
after receiving this callback. Upon reaching filesize limit, recorder will swap
the output file internally and notify application with
MEDIA_RECORDER_INFO_NEXT_OUTPUT_FILE_STARTED.
Test: Hack camera app to record more than filesize limit.
Bug: 28150626
Change-Id: I2daf8f798fe3631d6b7ef48ebea3a64ab4566f2d
In preparation for removing junit classes from the Android API
the legacy-test target will be removed from the
TARGET_DEFAULT_JAVA_LIBRARIES. This change adds explicit
dependencies on junit and/or legacy-android-test to ensure that
modules will compile properly once it is removed.
Bug: 30188076
Test: make checkbuild
Change-Id: I13e88297731253420e4e5f5291d503f13a39a156
PlayerProxy is a wrapper on IPlayer for system components
to control players.
Test: use vendor/google_toolbox/team/audio/cmds/ClPlaybackActivity
Bug 30258418
Change-Id: I6a40290c7f711fc0242597a5c016fc71cb4baa10
An AudioPlaybackConfiguration contains an IPlayer
interface for system control of a player. It is not
exposed to non-system signature components.
AudioService, through PlaybackActivityMonitor, is monitoring
the death of the IPlayer so the matching player can get
unregistered in case it meets its maker.
Test: use vendor/google_toolbox/team/audio/cmds/ClPlaybackActivity
Bug: 30258418
Change-Id: Ibf3bceba91882ff16bffbf1219c55a1f89ccb13f
Get the application packagename to be used as part of a unique
identifier for drm plugin.
Test: Stream movies through Play Movies, Netflix and
Gts MediaCodecCencPlayer tests.
Verify the application's packagename is reachable in the drm plugin's
debug log.
bug: 27101531
Change-Id: I6473b58d78bc34191aca5896bb1f5fb79107ae47
* changes:
[RingtoneManager] Option for cursor to list parent sounds
[RingtoneManager] API to delete custom ringtones
[RingtoneManager] API to add custom ringtones
Remove code that let these components be replaced by external
processes.
Bug: 33006669
Bug: 34106436
Test: manual. reboot device, play music, change volume,
view notifications
Change-Id: I458f11537ab9db6f23735487513815553004613f
Modify RingtoneManager.getCursor so that the cursor returned also
retrieves the parent profile's ringtones, adding the parent's id to
those ringtones
Test: manual (use ringtone picker in associated CL)
Bug: 30658854
Change-Id: I3b52b0dc41a5a3ff1a71a89fd8a0d33023021aba
Given a Uri, if it is a media file in one of the external ringtone
storages, this API deletes its file and database entry.
Test: manual - associated CL
Bug: 30658854
Change-Id: I987bd18577960f9a2b02ce37a4a2d5d033d7a969
So far, the only way for users to add custom ringtones was to either use
a 3rd party app or copy files to a specific directory in the storage,
and there was no API to make it easier to add custom ringtones.
This CL creates a hidden API in RingtoneManager that allows adding any
audio file as a custom ringtone, by copying that file into the ringtone
storage and asking MediaScanner to scan that file.
This API is not intended to be used by existing apps, but an associated CL
uses it in RingtonePickerActivity
Test: make && vendor/google/tools/flashall, plus manual testing with associated CL
Bug: 30658854
Change-Id: I2b291847c5430e1fc2c3fc6a351b6111a49fcbf3
Issue detail:
https://code.google.com/p/android/issues/detail?id=231417
setSubtitleAnchor() is a synchronized method and has checked
mSubtitleController. So checking for null pointer is not
needed in scanInternalSubtitleTracks() method.
Signed-off-by: qinzhichao <qinzhichao@xiaomi.com>
* Added a new class BluetoothCodecConfig that contains codec-related
configuration or capabilities: codec type, priority, sample rate,
bits per sample, channel mode, and codec specific fields.
* Extended the Bluetooth A2DP AIDL interface to get/set the current
codec configuration
* Added new call handleBluetoothA2dpDeviceConfigChange() to the Media
Framework that is called when there are changes in the
Bluetooth A2DP device configuration - e.g., the A2DP codec is changed.
Test: A2DP streaming to headsets, TestPlans/71390
Bug: 30958229
Change-Id: I9a82716cbc2a5efbe77352a031ac80c88f6a2459
Make beginning of player tracking synchronous, init uid/pid/piid
on the server side, and return the piid.
Anonymize configurations in the getter of active configurations
when the client isn't privileged.
Test: run cts -m CtsMediaTestCases -t android.media.cts.AudioPlaybackConfigurationTest
Bug: 30955183
Change-Id: I1610ae0067fd26d297057663352e679c8963a2d7
Prevent NPE when the instance is running without a context.
This enables writing command-line test apps.
Test: vendor/google_toolbox/team/audio/cmds/ClMediaPlayer
Change-Id: Ie74112334675c5d9d3efdb28c7178c49d8729acb
Define USAGE_ASSISTANT for new use cases involving audio help,
query responses and more.
Test: make offline-sdk-docs
Bug: 30947943
Change-Id: Idf93ce4c0f014dbc9b491244cbad9e643cc03413
Define new player types to describe the two types of AudioPlayer
in OpenSL ES: those with a buffer queue source, those that
play from a given URI or FD.
Add a warning in the interface description of AudioService
that changes should be reflected in the native interface too.
Test: make, NDK tests to follow
Bug: 30955183
Change-Id: I7b530ea6e3b13f238f662ce8b9612e7df574a9c5
AudioService keeps track of status of implementations of PlayerBase.
AudioService's PlaybackActivityMonitor maintains a list of
playback configurations for each PlayerBase, and a list
of clients that want to receive updates about the playback.
Playback activity clients can query the playback configuration
of the system through AudioManager, or register a callback
for updates. For clients with MODIFY_AUDIO_ROUTING permission
(system), the playback configurations contain more information
about each player (player type, uid, pid, state), and can see
all players, not just the "active" ones. The act of stripping
off data about the players that is not supposed to be seen
by non-system clients, is referred to as "anonymization". It
is implemented in system server, so no system data is ever
sent to playback activity clients without system permission.
More information about the AudioPlaybackConfiguration is
available in the SystemApi (uid, pid, player type, player state).
Test: run cts -m CtsMediaTestCases -t android.media.cts.AudioPlaybackConfigurationTest
Bug: 30955183
Change-Id: I85997594c0378216419f5f0fdaa0714996fd3573
This is part of weaning apps off accessing system identifiers via
system properties API. Apps should use android.os.Build API instead.
Bug: 33700679
Test: Enable MTP mode then check that mtp-detect output same as before this commit
Change-Id: I4e6696cdee18b9c3e987c432c095911e85a997db
This was caught by clang's static analyzer. Warning:
frameworks/base/media/mca/filterfw/native/core/shader_program.cpp:1031:3:
warning: Potential leak of memory pointed to by 'attrib.owned_data'
return StoreAttribute(attrib);
Bug: None.
Test: The static analyzer no longer complains.
Change-Id: Ibef0368dfa48ba57e38019a5a3e33d5bacd847a2