Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4d68916 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6841706 from fd90fdfe to rvc-qpr1-release

Change-Id: Id2a26f376c20f0fc3776aa5ce9f9708eeddab657
parents 0df4c023 fd90fdfe
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -210,7 +210,11 @@ status_t AudioTrack::getMetrics(mediametrics::Item * &item)
    return NO_ERROR;
}

AudioTrack::AudioTrack()
AudioTrack::AudioTrack() : AudioTrack("" /*opPackageName*/)
{
}

AudioTrack::AudioTrack(const std::string& opPackageName)
    : mStatus(NO_INIT),
      mState(STATE_STOPPED),
      mPreviousPriority(ANDROID_PRIORITY_NORMAL),
@@ -218,6 +222,7 @@ AudioTrack::AudioTrack()
      mPausedPosition(0),
      mSelectedDeviceId(AUDIO_PORT_HANDLE_NONE),
      mRoutedDeviceId(AUDIO_PORT_HANDLE_NONE),
      mOpPackageName(opPackageName),
      mAudioTrackCallback(new AudioTrackCallback())
{
    mAttributes.content_type = AUDIO_CONTENT_TYPE_UNKNOWN;
@@ -244,12 +249,14 @@ AudioTrack::AudioTrack(
        const audio_attributes_t* pAttributes,
        bool doNotReconnect,
        float maxRequiredSpeed,
        audio_port_handle_t selectedDeviceId)
        audio_port_handle_t selectedDeviceId,
        const std::string& opPackageName)
    : mStatus(NO_INIT),
      mState(STATE_STOPPED),
      mPreviousPriority(ANDROID_PRIORITY_NORMAL),
      mPreviousSchedulingGroup(SP_DEFAULT),
      mPausedPosition(0),
      mOpPackageName(opPackageName),
      mAudioTrackCallback(new AudioTrackCallback())
{
    mAttributes = AUDIO_ATTRIBUTES_INITIALIZER;
@@ -277,13 +284,15 @@ AudioTrack::AudioTrack(
        pid_t pid,
        const audio_attributes_t* pAttributes,
        bool doNotReconnect,
        float maxRequiredSpeed)
        float maxRequiredSpeed,
        const std::string& opPackageName)
    : mStatus(NO_INIT),
      mState(STATE_STOPPED),
      mPreviousPriority(ANDROID_PRIORITY_NORMAL),
      mPreviousSchedulingGroup(SP_DEFAULT),
      mPausedPosition(0),
      mSelectedDeviceId(AUDIO_PORT_HANDLE_NONE),
      mOpPackageName(opPackageName),
      mAudioTrackCallback(new AudioTrackCallback())
{
    mAttributes = AUDIO_ATTRIBUTES_INITIALIZER;
@@ -1555,6 +1564,7 @@ status_t AudioTrack::createTrack_l()
    input.selectedDeviceId = mSelectedDeviceId;
    input.sessionId = mSessionId;
    input.audioTrackCallback = mAudioTrackCallback;
    input.opPackageName = mOpPackageName;

    IAudioFlinger::CreateTrackOutput output;

+10 −2
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@
#include <media/Modulo.h>
#include <utils/threads.h>

#include <string>

#include "android/media/BnAudioTrackCallback.h"
#include "android/media/IAudioTrackCallback.h"

@@ -177,6 +179,8 @@ public:
     */
                        AudioTrack();

                        AudioTrack(const std::string& opPackageName);

    /* Creates an AudioTrack object and registers it with AudioFlinger.
     * Once created, the track needs to be started before it can be used.
     * Unspecified values are set to appropriate default values.
@@ -258,7 +262,8 @@ public:
                                    const audio_attributes_t* pAttributes = NULL,
                                    bool doNotReconnect = false,
                                    float maxRequiredSpeed = 1.0f,
                                    audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE);
                                    audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE,
                                    const std::string& opPackageName = "");

    /* Creates an audio track and registers it with AudioFlinger.
     * With this constructor, the track is configured for static buffer mode.
@@ -288,7 +293,8 @@ public:
                                    pid_t pid = -1,
                                    const audio_attributes_t* pAttributes = NULL,
                                    bool doNotReconnect = false,
                                    float maxRequiredSpeed = 1.0f);
                                    float maxRequiredSpeed = 1.0f,
                                    const std::string& opPackageName = "");

    /* Terminates the AudioTrack and unregisters it from AudioFlinger.
     * Also destroys all resources associated with the AudioTrack.
@@ -1236,6 +1242,8 @@ public:

    sp<media::VolumeHandler>       mVolumeHandler;

    const std::string      mOpPackageName;

private:
    class DeathNotifier : public IBinder::DeathRecipient {
    public:
+8 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@
#include <media/IEffectClient.h>
#include <utils/String8.h>
#include <media/MicrophoneInfo.h>
#include <string>
#include <vector>

#include "android/media/IAudioRecord.h"
@@ -85,6 +86,11 @@ public:
            speed = parcel->readFloat();
            audioTrackCallback = interface_cast<media::IAudioTrackCallback>(
                    parcel->readStrongBinder());
            const char* opPackageNamePtr = parcel->readCString();
            if (opPackageNamePtr == nullptr) {
                return FAILED_TRANSACTION;
            }
            opPackageName = opPackageNamePtr;

            /* input/output arguments*/
            (void)parcel->read(&flags, sizeof(audio_output_flags_t));
@@ -109,6 +115,7 @@ public:
            (void)parcel->writeInt32(notificationsPerBuffer);
            (void)parcel->writeFloat(speed);
            (void)parcel->writeStrongBinder(IInterface::asBinder(audioTrackCallback));
            (void)parcel->writeCString(opPackageName.c_str());

            /* input/output arguments*/
            (void)parcel->write(&flags, sizeof(audio_output_flags_t));
@@ -127,6 +134,7 @@ public:
        uint32_t notificationsPerBuffer;
        float speed;
        sp<media::IAudioTrackCallback> audioTrackCallback;
        std::string opPackageName;

        /* input/output */
        audio_output_flags_t flags;
+9 −2
Original line number Diff line number Diff line
@@ -62,11 +62,13 @@ public:
    }

    virtual sp<IMediaPlayer> create(
            const sp<IMediaPlayerClient>& client, audio_session_t audioSessionId) {
            const sp<IMediaPlayerClient>& client, audio_session_t audioSessionId,
            const std::string opPackageName) {
        Parcel data, reply;
        data.writeInterfaceToken(IMediaPlayerService::getInterfaceDescriptor());
        data.writeStrongBinder(IInterface::asBinder(client));
        data.writeInt32(audioSessionId);
        data.writeCString(opPackageName.c_str());

        remote()->transact(CREATE, data, &reply);
        return interface_cast<IMediaPlayer>(reply.readStrongBinder());
@@ -127,7 +129,12 @@ status_t BnMediaPlayerService::onTransact(
            sp<IMediaPlayerClient> client =
                interface_cast<IMediaPlayerClient>(data.readStrongBinder());
            audio_session_t audioSessionId = (audio_session_t) data.readInt32();
            sp<IMediaPlayer> player = create(client, audioSessionId);
            const char* opPackageName = data.readCString();
            if (opPackageName == nullptr) {
                return FAILED_TRANSACTION;
            }
            std::string opPackageNameStr(opPackageName);
            sp<IMediaPlayer> player = create(client, audioSessionId, opPackageNameStr);
            reply->writeStrongBinder(IInterface::asBinder(player));
            return NO_ERROR;
        } break;
+4 −1
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@
#include <media/IMediaPlayerClient.h>
#include <media/IMediaMetadataRetriever.h>

#include <string>

namespace android {

class IMediaPlayer;
@@ -47,7 +49,8 @@ public:
    virtual sp<IMediaRecorder> createMediaRecorder(const String16 &opPackageName) = 0;
    virtual sp<IMediaMetadataRetriever> createMetadataRetriever() = 0;
    virtual sp<IMediaPlayer> create(const sp<IMediaPlayerClient>& client,
            audio_session_t audioSessionId = AUDIO_SESSION_ALLOCATE) = 0;
            audio_session_t audioSessionId = AUDIO_SESSION_ALLOCATE,
            const std::string opPackage = "") = 0;
    virtual sp<IMediaCodecList> getCodecList() const = 0;

    // Connects to a remote display.
Loading