Loading include/media/AudioIoDescriptor.h +7 −7 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ public: audio_format_t mFormat; audio_channel_mask_t mChannelMask; size_t mFrameCount; uint32_t mLatency; uint32_t mLatency; // only valid for output }; Loading include/media/AudioSystem.h +5 −4 Original line number Diff line number Diff line Loading @@ -114,11 +114,12 @@ public: // FIXME This API assumes a route, and so should be deprecated. static status_t getOutputLatency(uint32_t* latency, audio_stream_type_t stream); static status_t getSamplingRate(audio_io_handle_t output, // returns the audio HAL sample rate static status_t getSamplingRate(audio_io_handle_t ioHandle, uint32_t* samplingRate); // returns the number of frames per audio HAL write buffer. Corresponds to // audio_stream->get_buffer_size()/audio_stream_out_frame_size() static status_t getFrameCount(audio_io_handle_t output, // returns the number of frames per audio HAL buffer. Corresponds to // audio_stream->get_buffer_size()/audio_stream_out/in_frame_size() static status_t getFrameCount(audio_io_handle_t ioHandle, size_t* frameCount); // returns the audio output latency in ms. Corresponds to // audio_stream_out->get_latency() Loading include/media/IAudioFlinger.h +3 −3 Original line number Diff line number Diff line Loading @@ -97,14 +97,14 @@ public: sp<IMemory>& buffers, // return value 0 means it follows cblk status_t *status) = 0; // FIXME Surprisingly, sampleRate/format/frameCount/latency don't work for input handles // FIXME Surprisingly, format/latency don't work for input handles /* query the audio hardware state. This state never changes, * and therefore can be cached. */ virtual uint32_t sampleRate(audio_io_handle_t output) const = 0; virtual uint32_t sampleRate(audio_io_handle_t ioHandle) const = 0; virtual audio_format_t format(audio_io_handle_t output) const = 0; virtual size_t frameCount(audio_io_handle_t output) const = 0; virtual size_t frameCount(audio_io_handle_t ioHandle) const = 0; // return estimated latency in milliseconds virtual uint32_t latency(audio_io_handle_t output) const = 0; Loading media/libmedia/AudioSystem.cpp +14 −16 Original line number Diff line number Diff line Loading @@ -264,25 +264,23 @@ status_t AudioSystem::getOutputSamplingRate(uint32_t* samplingRate, audio_stream return getSamplingRate(output, samplingRate); } status_t AudioSystem::getSamplingRate(audio_io_handle_t output, status_t AudioSystem::getSamplingRate(audio_io_handle_t ioHandle, uint32_t* samplingRate) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; sp<AudioIoDescriptor> outputDesc = getIoDescriptor(output); if (outputDesc == 0) { ALOGV("getOutputSamplingRate() no output descriptor for output %d in gOutputs", output); *samplingRate = af->sampleRate(output); sp<AudioIoDescriptor> desc = getIoDescriptor(ioHandle); if (desc == 0) { *samplingRate = af->sampleRate(ioHandle); } else { ALOGV("getOutputSamplingRate() reading from output desc"); *samplingRate = outputDesc->mSamplingRate; *samplingRate = desc->mSamplingRate; } if (*samplingRate == 0) { ALOGE("AudioSystem::getSamplingRate failed for output %d", output); ALOGE("AudioSystem::getSamplingRate failed for ioHandle %d", ioHandle); return BAD_VALUE; } ALOGV("getSamplingRate() output %d, sampling rate %u", output, *samplingRate); ALOGV("getSamplingRate() ioHandle %d, sampling rate %u", ioHandle, *samplingRate); return NO_ERROR; } Loading @@ -303,23 +301,23 @@ status_t AudioSystem::getOutputFrameCount(size_t* frameCount, audio_stream_type_ return getFrameCount(output, frameCount); } status_t AudioSystem::getFrameCount(audio_io_handle_t output, status_t AudioSystem::getFrameCount(audio_io_handle_t ioHandle, size_t* frameCount) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; sp<AudioIoDescriptor> outputDesc = getIoDescriptor(output); if (outputDesc == 0) { *frameCount = af->frameCount(output); sp<AudioIoDescriptor> desc = getIoDescriptor(ioHandle); if (desc == 0) { *frameCount = af->frameCount(ioHandle); } else { *frameCount = outputDesc->mFrameCount; *frameCount = desc->mFrameCount; } if (*frameCount == 0) { ALOGE("AudioSystem::getFrameCount failed for output %d", output); ALOGE("AudioSystem::getFrameCount failed for ioHandle %d", ioHandle); return BAD_VALUE; } ALOGV("getFrameCount() output %d, frameCount %zu", output, *frameCount); ALOGV("getFrameCount() ioHandle %d, frameCount %zu", ioHandle, *frameCount); return NO_ERROR; } Loading media/libmedia/IAudioFlinger.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -265,11 +265,11 @@ public: return record; } virtual uint32_t sampleRate(audio_io_handle_t output) const virtual uint32_t sampleRate(audio_io_handle_t ioHandle) const { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); data.writeInt32((int32_t) output); data.writeInt32((int32_t) ioHandle); remote()->transact(SAMPLE_RATE, data, &reply); return reply.readInt32(); } Loading @@ -283,11 +283,11 @@ public: return (audio_format_t) reply.readInt32(); } virtual size_t frameCount(audio_io_handle_t output) const virtual size_t frameCount(audio_io_handle_t ioHandle) const { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); data.writeInt32((int32_t) output); data.writeInt32((int32_t) ioHandle); remote()->transact(FRAME_COUNT, data, &reply); return reply.readInt64(); } Loading Loading
include/media/AudioIoDescriptor.h +7 −7 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ public: audio_format_t mFormat; audio_channel_mask_t mChannelMask; size_t mFrameCount; uint32_t mLatency; uint32_t mLatency; // only valid for output }; Loading
include/media/AudioSystem.h +5 −4 Original line number Diff line number Diff line Loading @@ -114,11 +114,12 @@ public: // FIXME This API assumes a route, and so should be deprecated. static status_t getOutputLatency(uint32_t* latency, audio_stream_type_t stream); static status_t getSamplingRate(audio_io_handle_t output, // returns the audio HAL sample rate static status_t getSamplingRate(audio_io_handle_t ioHandle, uint32_t* samplingRate); // returns the number of frames per audio HAL write buffer. Corresponds to // audio_stream->get_buffer_size()/audio_stream_out_frame_size() static status_t getFrameCount(audio_io_handle_t output, // returns the number of frames per audio HAL buffer. Corresponds to // audio_stream->get_buffer_size()/audio_stream_out/in_frame_size() static status_t getFrameCount(audio_io_handle_t ioHandle, size_t* frameCount); // returns the audio output latency in ms. Corresponds to // audio_stream_out->get_latency() Loading
include/media/IAudioFlinger.h +3 −3 Original line number Diff line number Diff line Loading @@ -97,14 +97,14 @@ public: sp<IMemory>& buffers, // return value 0 means it follows cblk status_t *status) = 0; // FIXME Surprisingly, sampleRate/format/frameCount/latency don't work for input handles // FIXME Surprisingly, format/latency don't work for input handles /* query the audio hardware state. This state never changes, * and therefore can be cached. */ virtual uint32_t sampleRate(audio_io_handle_t output) const = 0; virtual uint32_t sampleRate(audio_io_handle_t ioHandle) const = 0; virtual audio_format_t format(audio_io_handle_t output) const = 0; virtual size_t frameCount(audio_io_handle_t output) const = 0; virtual size_t frameCount(audio_io_handle_t ioHandle) const = 0; // return estimated latency in milliseconds virtual uint32_t latency(audio_io_handle_t output) const = 0; Loading
media/libmedia/AudioSystem.cpp +14 −16 Original line number Diff line number Diff line Loading @@ -264,25 +264,23 @@ status_t AudioSystem::getOutputSamplingRate(uint32_t* samplingRate, audio_stream return getSamplingRate(output, samplingRate); } status_t AudioSystem::getSamplingRate(audio_io_handle_t output, status_t AudioSystem::getSamplingRate(audio_io_handle_t ioHandle, uint32_t* samplingRate) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; sp<AudioIoDescriptor> outputDesc = getIoDescriptor(output); if (outputDesc == 0) { ALOGV("getOutputSamplingRate() no output descriptor for output %d in gOutputs", output); *samplingRate = af->sampleRate(output); sp<AudioIoDescriptor> desc = getIoDescriptor(ioHandle); if (desc == 0) { *samplingRate = af->sampleRate(ioHandle); } else { ALOGV("getOutputSamplingRate() reading from output desc"); *samplingRate = outputDesc->mSamplingRate; *samplingRate = desc->mSamplingRate; } if (*samplingRate == 0) { ALOGE("AudioSystem::getSamplingRate failed for output %d", output); ALOGE("AudioSystem::getSamplingRate failed for ioHandle %d", ioHandle); return BAD_VALUE; } ALOGV("getSamplingRate() output %d, sampling rate %u", output, *samplingRate); ALOGV("getSamplingRate() ioHandle %d, sampling rate %u", ioHandle, *samplingRate); return NO_ERROR; } Loading @@ -303,23 +301,23 @@ status_t AudioSystem::getOutputFrameCount(size_t* frameCount, audio_stream_type_ return getFrameCount(output, frameCount); } status_t AudioSystem::getFrameCount(audio_io_handle_t output, status_t AudioSystem::getFrameCount(audio_io_handle_t ioHandle, size_t* frameCount) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; sp<AudioIoDescriptor> outputDesc = getIoDescriptor(output); if (outputDesc == 0) { *frameCount = af->frameCount(output); sp<AudioIoDescriptor> desc = getIoDescriptor(ioHandle); if (desc == 0) { *frameCount = af->frameCount(ioHandle); } else { *frameCount = outputDesc->mFrameCount; *frameCount = desc->mFrameCount; } if (*frameCount == 0) { ALOGE("AudioSystem::getFrameCount failed for output %d", output); ALOGE("AudioSystem::getFrameCount failed for ioHandle %d", ioHandle); return BAD_VALUE; } ALOGV("getFrameCount() output %d, frameCount %zu", output, *frameCount); ALOGV("getFrameCount() ioHandle %d, frameCount %zu", ioHandle, *frameCount); return NO_ERROR; } Loading
media/libmedia/IAudioFlinger.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -265,11 +265,11 @@ public: return record; } virtual uint32_t sampleRate(audio_io_handle_t output) const virtual uint32_t sampleRate(audio_io_handle_t ioHandle) const { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); data.writeInt32((int32_t) output); data.writeInt32((int32_t) ioHandle); remote()->transact(SAMPLE_RATE, data, &reply); return reply.readInt32(); } Loading @@ -283,11 +283,11 @@ public: return (audio_format_t) reply.readInt32(); } virtual size_t frameCount(audio_io_handle_t output) const virtual size_t frameCount(audio_io_handle_t ioHandle) const { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); data.writeInt32((int32_t) output); data.writeInt32((int32_t) ioHandle); remote()->transact(FRAME_COUNT, data, &reply); return reply.readInt64(); } Loading