diff options
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.cpp | 7 | ||||
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.h | 6 | ||||
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.cpp | 18 |
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() { |