diff options
Diffstat (limited to 'media/libmediaplayerservice/StagefrightRecorder.cpp')
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.cpp | 29 |
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); |