summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/StagefrightRecorder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/libmediaplayerservice/StagefrightRecorder.cpp')
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index 335dd43..94886e8 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -1,6 +1,9 @@
/*
* Copyright (C) 2009 The Android Open Source Project
- * Copyright (c) 2010 - 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
+ *
+ * Not a Contribution, Apache license notifications and license are retained
+ * for attribution purposes only.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,6 +37,9 @@
#include <media/stagefright/ExtendedWriter.h>
#include <media/stagefright/WAVEWriter.h>
#endif
+#ifdef QCOM_FM_ENABLED
+#include <media/stagefright/FMA2DPWriter.h>
+#endif
#include <media/stagefright/CameraSource.h>
#include <media/stagefright/CameraSourceTimeLapse.h>
#include <media/stagefright/MPEG2TSWriter.h>
@@ -771,6 +777,10 @@ status_t StagefrightRecorder::start() {
}
status_t status = OK;
+#ifdef QCOM_FM_ENABLED
+ if(AUDIO_SOURCE_FM_RX_A2DP == mAudioSource)
+ return startFMA2DPWriter();
+#endif
switch (mOutputFormat) {
case OUTPUT_FORMAT_DEFAULT:
@@ -1036,6 +1046,23 @@ status_t StagefrightRecorder::startRawAudioRecording() {
return OK;
}
+#ifdef QCOM_FM_ENABLED
+status_t StagefrightRecorder::startFMA2DPWriter() {
+ /* FM soc outputs at 48k */
+ mSampleRate = 48000;
+ mAudioChannels = 2;
+
+ sp<MetaData> meta = new MetaData;
+ meta->setInt32(kKeyChannelCount, mAudioChannels);
+ meta->setInt32(kKeySampleRate, mSampleRate);
+
+ mWriter = new FMA2DPWriter();
+ mWriter->setListener(mListener);
+ mWriter->start(meta.get());
+ return OK;
+}
+#endif
+
status_t StagefrightRecorder::startRTPRecording() {
CHECK_EQ(mOutputFormat, OUTPUT_FORMAT_RTP_AVP);