summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.cpp7
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.h6
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp18
3 files changed, 30 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index f238e89..5b88f5f 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -1357,6 +1357,13 @@ uint32_t MediaPlayerService::AudioOutput::latency () const
return mTrack->latency();
}
+#ifdef QCOM_HARDWARE
+audio_stream_type_t MediaPlayerService::AudioOutput::streamType () const
+{
+ return mStreamType;
+}
+#endif
+
float MediaPlayerService::AudioOutput::msecsPerFrame() const
{
return mMsecsPerFrame;
diff --git a/media/libmediaplayerservice/MediaPlayerService.h b/media/libmediaplayerservice/MediaPlayerService.h
index 54df9d2..972de37 100644
--- a/media/libmediaplayerservice/MediaPlayerService.h
+++ b/media/libmediaplayerservice/MediaPlayerService.h
@@ -1,6 +1,9 @@
/*
**
** Copyright 2008, The Android Open Source Project
+** Copyright (c) 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.
@@ -85,6 +88,9 @@ class MediaPlayerService : public BnMediaPlayerService
virtual ssize_t channelCount() const;
virtual ssize_t frameSize() const;
virtual uint32_t latency() const;
+#ifdef QCOM_HARDWARE
+ virtual audio_stream_type_t streamType() const;
+#endif
virtual float msecsPerFrame() const;
virtual status_t getPosition(uint32_t *position) const;
virtual status_t getFramesWritten(uint32_t *frameswritten) const;
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index 94886e8..ad6d1cc 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -448,6 +448,11 @@ status_t StagefrightRecorder::setParamMaxFileSizeBytes(int64_t bytes) {
ALOGW("Target file size (%lld bytes) is too small to be respected", bytes);
}
+ if (bytes >= 0xffffffffLL) {
+ ALOGW("Target file size (%lld bytes) too larger than supported, clip to 4GB", bytes);
+ bytes = 0xffffffffLL;
+ }
+
mMaxFileSizeBytes = bytes;
return OK;
}
@@ -765,7 +770,18 @@ status_t StagefrightRecorder::setListener(const sp<IMediaRecorderClient> &listen
}
status_t StagefrightRecorder::prepare() {
- return OK;
+ ALOGV(" %s E", __func__ );
+
+ if(mVideoSource != VIDEO_SOURCE_LIST_END && mVideoEncoder != VIDEO_ENCODER_LIST_END && mVideoHeight && mVideoWidth && /*Video recording*/
+ (mMaxFileDurationUs <=0 || /*Max duration is not set*/
+ (mVideoHeight * mVideoWidth < 720 * 1280 && mMaxFileDurationUs > 30*60*1000*1000) ||
+ (mVideoHeight * mVideoWidth >= 720 * 1280 && mMaxFileDurationUs > 10*60*1000*1000))) {
+ /*Above Check can be further optimized for lower resolutions to reduce file size*/
+ ALOGV("File is huge so setting 64 bit file offsets");
+ setParam64BitFileOffset(true);
+ }
+ ALOGV(" %s X", __func__ );
+ return OK;
}
status_t StagefrightRecorder::start() {