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

Commit b3ec8aaf authored by ziyang zhang's avatar ziyang zhang Committed by Dorin Drimus
Browse files

Add format value for NULL offload info

CTS case "android.media.audio.cts.DirectAudioProfilesForAttributesTest" fail due to create AudioTrack fail.
The case want to create AudioTrack with format=AUDIO_FORMAT_MP3 but no specific offload_info, AudioTrack::set() will use AUDIO_INFO_INITIALIZER as default offload_info which is_streaming is disabled, but next, SwAudioOutputDescriptor::open() will set is_streaming as enabled as default.
Not all platforms support streaming offload, may encounter create AudioTrack fail.

So, here add format value to offloadinfo in AudioTrack::set(), then is_streaming disabled value can be transmitted correctly.

Bug: 232048775
Test: cts android.media.audio.cts.DirectAudioProfilesForAttributesTest#testCreateDirectAudioTracksOnlyForGetDirectProfilesForAttributes
Change-Id: I077673aaa4d7f60dd1de280b5eab3ae4a6a45809
Merged-In: I077673aaa4d7f60dd1de280b5eab3ae4a6a45809
parent c328f1ba
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -572,11 +572,13 @@ status_t AudioTrack::set(
    //  (b) we can support re-creation of offloaded tracks
    if (offloadInfo != NULL) {
        mOffloadInfoCopy = *offloadInfo;
        mOffloadInfo = &mOffloadInfoCopy;
    } else {
        mOffloadInfo = NULL;
        memset(&mOffloadInfoCopy, 0, sizeof(audio_offload_info_t));
        mOffloadInfoCopy = AUDIO_INFO_INITIALIZER;
        mOffloadInfoCopy.format = format;
        mOffloadInfoCopy.sample_rate = sampleRate;
        mOffloadInfoCopy.channel_mask = channelMask;
        mOffloadInfoCopy.stream_type = streamType;
    }

    mVolume[AUDIO_INTERLEAVE_LEFT] = 1.0f;
+0 −1
Original line number Diff line number Diff line
@@ -1182,7 +1182,6 @@ public:
    sp<IMemory>             mSharedBuffer;
    transfer_type           mTransfer;
    audio_offload_info_t    mOffloadInfoCopy;
    const audio_offload_info_t* mOffloadInfo;
    audio_attributes_t      mAttributes;

    size_t                  mFrameSize;             // frame size in bytes