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

Commit 13bb4d0d authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 12273892 from d1e20428 to 24Q4-release

Change-Id: I9e2c63b82cd02392c4c38802849cbe7f1b397ba8
parents 5d1a33ec d1e20428
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
#include <C2Debug.h>
#include <codec2/common/HalSelection.h>
#include <codec2/hidl/client.h>
#include <com_android_graphics_libgui_flags.h>
#include <gui/BufferQueue.h>
#include <gui/IConsumerListener.h>
#include <gui/IProducerListener.h>
@@ -423,7 +424,6 @@ void setOutputSurface(const std::shared_ptr<android::Codec2Client::Component>& c
                      surfaceMode_t surfMode) {
    using namespace android;
    sp<IGraphicBufferProducer> producer = nullptr;
    sp<IGraphicBufferConsumer> consumer = nullptr;
    sp<GLConsumer> texture = nullptr;
    sp<ANativeWindow> surface = nullptr;
    static std::atomic_uint32_t surfaceGeneration{0};
@@ -442,6 +442,16 @@ void setOutputSurface(const std::shared_ptr<android::Codec2Client::Component>& c
    }

    if (surfMode == SURFACE) {
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
        texture = new GLConsumer(0 /* tex */, GLConsumer::TEXTURE_EXTERNAL, true /* useFenceSync */,
                                 false /* isControlledByApp */);
        sp<Surface> s = texture->getSurface();
        surface = s;
        ASSERT_NE(surface, nullptr) << "failed to create Surface object";

        producer = s->getIGraphicBufferProducer();
#else
        sp<IGraphicBufferConsumer> consumer = nullptr;
        BufferQueue::createBufferQueue(&producer, &consumer);
        ASSERT_NE(producer, nullptr) << "createBufferQueue returned invalid producer";
        ASSERT_NE(consumer, nullptr) << "createBufferQueue returned invalid consumer";
@@ -452,6 +462,7 @@ void setOutputSurface(const std::shared_ptr<android::Codec2Client::Component>& c

        surface = new Surface(producer);
        ASSERT_NE(surface, nullptr) << "failed to create Surface object";
#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)

        producer->setGenerationNumber(generation);
    }
+1 −15
Original line number Diff line number Diff line
@@ -322,18 +322,6 @@ status_t AudioSystem::setStreamMute(audio_stream_type_t stream, bool mute) {
    return NO_ERROR;
}

status_t AudioSystem::setPortsVolume(
        const std::vector<audio_port_handle_t>& portIds, float volume, audio_io_handle_t output) {
    const sp<IAudioFlinger> af = get_audio_flinger();
    if (af == 0) return PERMISSION_DENIED;
    std::vector<int32_t> portIdsAidl = VALUE_OR_RETURN_STATUS(
            convertContainer<std::vector<int32_t>>(
                    portIds, legacy2aidl_audio_port_handle_t_int32_t));
    int32_t outputAidl = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_io_handle_t_int32_t(output));
    af->setPortsVolume(portIdsAidl, volume, outputAidl);
    return NO_ERROR;
}

status_t AudioSystem::setMode(audio_mode_t mode) {
    if (uint32_t(mode) >= AUDIO_MODE_CNT) return BAD_VALUE;
    const sp<IAudioFlinger> af = get_audio_flinger();
@@ -1093,8 +1081,7 @@ status_t AudioSystem::getOutputForAttr(audio_attributes_t* attr,
                                       audio_port_handle_t* portId,
                                       std::vector<audio_io_handle_t>* secondaryOutputs,
                                       bool *isSpatialized,
                                       bool *isBitPerfect,
                                       float *volume) {
                                       bool *isBitPerfect) {
    if (attr == nullptr) {
        ALOGE("%s NULL audio attributes", __func__);
        return BAD_VALUE;
@@ -1160,7 +1147,6 @@ status_t AudioSystem::getOutputForAttr(audio_attributes_t* attr,
    *isBitPerfect = responseAidl.isBitPerfect;
    *attr = VALUE_OR_RETURN_STATUS(
            aidl2legacy_AudioAttributes_audio_attributes_t(responseAidl.attr));
    *volume = responseAidl.volume;

    return OK;
}
+0 −19
Original line number Diff line number Diff line
@@ -350,15 +350,6 @@ status_t AudioFlingerClientAdapter::setStreamMute(audio_stream_type_t stream, bo
    return statusTFromBinderStatus(mDelegate->setStreamMute(streamAidl, muted));
}

status_t AudioFlingerClientAdapter::setPortsVolume(
        const std::vector<audio_port_handle_t>& portIds, float volume, audio_io_handle_t output) {
    std::vector<int32_t> portIdsAidl = VALUE_OR_RETURN_STATUS(
            convertContainer<std::vector<int32_t>>(
                    portIds, legacy2aidl_audio_port_handle_t_int32_t));
    int32_t outputAidl = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_io_handle_t_int32_t(output));
    return statusTFromBinderStatus(mDelegate->setPortsVolume(portIdsAidl, volume, outputAidl));
}

status_t AudioFlingerClientAdapter::setMode(audio_mode_t mode) {
    AudioMode modeAidl = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_mode_t_AudioMode(mode));
    return statusTFromBinderStatus(mDelegate->setMode(modeAidl));
@@ -1021,16 +1012,6 @@ Status AudioFlingerServerAdapter::setStreamMute(AudioStreamType stream, bool mut
    return Status::fromStatusT(mDelegate->setStreamMute(streamLegacy, muted));
}

Status AudioFlingerServerAdapter::setPortsVolume(
        const std::vector<int32_t>& portIds, float volume, int32_t output) {
    std::vector<audio_port_handle_t> portIdsLegacy = VALUE_OR_RETURN_BINDER(
            convertContainer<std::vector<audio_port_handle_t>>(
                    portIds, aidl2legacy_int32_t_audio_port_handle_t));
    audio_io_handle_t outputLegacy = VALUE_OR_RETURN_BINDER(
            aidl2legacy_int32_t_audio_io_handle_t(output));
    return Status::fromStatusT(mDelegate->setPortsVolume(portIdsLegacy, volume, outputLegacy));
}

Status AudioFlingerServerAdapter::setMode(AudioMode mode) {
    audio_mode_t modeLegacy = VALUE_OR_RETURN_BINDER(aidl2legacy_AudioMode_audio_mode_t(mode));
    return Status::fromStatusT(mDelegate->setMode(modeLegacy));
+0 −2
Original line number Diff line number Diff line
@@ -39,6 +39,4 @@ parcelable GetOutputForAttrResponse {
    boolean isBitPerfect;
    /** The corrected audio attributes. **/
    AudioAttributes attr;
    /** initial port volume for the new audio track */
    float volume;
}
+0 −7
Original line number Diff line number Diff line
@@ -100,13 +100,6 @@ interface IAudioFlingerService {
    void setStreamVolume(AudioStreamType stream, float value, int /* audio_io_handle_t */ output);
    void setStreamMute(AudioStreamType stream, boolean muted);

    /*
     * Set AudioTrack port ids volume attribute. This is the new way of controlling volume from
     * AudioPolicyManager to AudioFlinger.
     */
    void setPortsVolume(in int[] /* audio_port_handle_t[] */ portIds, float volume,
            int /* audio_io_handle_t */ output);

    // set audio mode.
    void setMode(AudioMode mode);

Loading