summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2009-05-22 09:18:15 -0700
committerEric Laurent <elaurent@google.com>2009-05-26 07:44:28 -0700
commitf5879c1448cc6aebc51b26d3ec2399d66144f8f4 (patch)
treed5ef576af674468ebff2b7d39c60ca0c9a53a39e /media
parent260b80b02d35a29c7010b10e5bea504164441665 (diff)
downloadframeworks_av-f5879c1448cc6aebc51b26d3ec2399d66144f8f4.zip
frameworks_av-f5879c1448cc6aebc51b26d3ec2399d66144f8f4.tar.gz
frameworks_av-f5879c1448cc6aebc51b26d3ec2399d66144f8f4.tar.bz2
Fix issue 1846343 - part 1
This change is the first part of a fix for issue 1846343, : - Added new enum values for input sources in AudioRecord and MediaRecorder for voice uplink, downlink and uplink+downlink sources. - renamed streamType to inputSource in all native functions handling audio record. A second change is required in opencore author driver and android audio input to completely fix the issue.
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/AudioRecord.cpp18
-rw-r--r--media/libmedia/IAudioFlinger.cpp8
2 files changed, 16 insertions, 10 deletions
diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp
index 1720af0..4c8b02a 100644
--- a/media/libmedia/AudioRecord.cpp
+++ b/media/libmedia/AudioRecord.cpp
@@ -50,7 +50,7 @@ AudioRecord::AudioRecord()
}
AudioRecord::AudioRecord(
- int streamType,
+ int inputSource,
uint32_t sampleRate,
int format,
int channelCount,
@@ -61,7 +61,7 @@ AudioRecord::AudioRecord(
int notificationFrames)
: mStatus(NO_INIT)
{
- mStatus = set(streamType, sampleRate, format, channelCount,
+ mStatus = set(inputSource, sampleRate, format, channelCount,
frameCount, flags, cbf, user, notificationFrames);
}
@@ -82,7 +82,7 @@ AudioRecord::~AudioRecord()
}
status_t AudioRecord::set(
- int streamType,
+ int inputSource,
uint32_t sampleRate,
int format,
int channelCount,
@@ -104,8 +104,8 @@ status_t AudioRecord::set(
return NO_INIT;
}
- if (streamType == DEFAULT_INPUT) {
- streamType = MIC_INPUT;
+ if (inputSource == DEFAULT_INPUT) {
+ inputSource = MIC_INPUT;
}
if (sampleRate == 0) {
@@ -157,7 +157,7 @@ status_t AudioRecord::set(
// open record channel
status_t status;
- sp<IAudioRecord> record = audioFlinger->openRecord(getpid(), streamType,
+ sp<IAudioRecord> record = audioFlinger->openRecord(getpid(), inputSource,
sampleRate, format,
channelCount,
frameCount,
@@ -201,6 +201,7 @@ status_t AudioRecord::set(
mMarkerReached = false;
mNewPosition = 0;
mUpdatePeriod = 0;
+ mInputSource = (uint8_t)inputSource;
return NO_ERROR;
}
@@ -242,6 +243,11 @@ int AudioRecord::frameSize() const
return channelCount()*((format() == AudioSystem::PCM_8_BIT) ? sizeof(uint8_t) : sizeof(int16_t));
}
+int AudioRecord::inputSource() const
+{
+ return (int)mInputSource;
+}
+
// -------------------------------------------------------------------------
status_t AudioRecord::start()
diff --git a/media/libmedia/IAudioFlinger.cpp b/media/libmedia/IAudioFlinger.cpp
index 52bd7d4..eeaa54f 100644
--- a/media/libmedia/IAudioFlinger.cpp
+++ b/media/libmedia/IAudioFlinger.cpp
@@ -99,7 +99,7 @@ public:
virtual sp<IAudioRecord> openRecord(
pid_t pid,
- int streamType,
+ int inputSource,
uint32_t sampleRate,
int format,
int channelCount,
@@ -110,7 +110,7 @@ public:
Parcel data, reply;
data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor());
data.writeInt32(pid);
- data.writeInt32(streamType);
+ data.writeInt32(inputSource);
data.writeInt32(sampleRate);
data.writeInt32(format);
data.writeInt32(channelCount);
@@ -384,14 +384,14 @@ status_t BnAudioFlinger::onTransact(
case OPEN_RECORD: {
CHECK_INTERFACE(IAudioFlinger, data, reply);
pid_t pid = data.readInt32();
- int streamType = data.readInt32();
+ int inputSource = data.readInt32();
uint32_t sampleRate = data.readInt32();
int format = data.readInt32();
int channelCount = data.readInt32();
size_t bufferCount = data.readInt32();
uint32_t flags = data.readInt32();
status_t status;
- sp<IAudioRecord> record = openRecord(pid, streamType,
+ sp<IAudioRecord> record = openRecord(pid, inputSource,
sampleRate, format, channelCount, bufferCount, flags, &status);
reply->writeInt32(status);
reply->writeStrongBinder(record->asBinder());