diff options
author | James Dong <jdong@google.com> | 2010-08-13 14:16:26 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-08-16 10:38:35 -0700 |
commit | eff30e3d1b005fd0696390d1dd47ec4ff0c52784 (patch) | |
tree | d190d0b98e0c2ebdb417d54d859d7c45d063d753 /media/libmediaplayerservice | |
parent | 997dc32b6bef1c9cc8ac6d4d598698507b2c4934 (diff) | |
download | frameworks_base-eff30e3d1b005fd0696390d1dd47ec4ff0c52784.zip frameworks_base-eff30e3d1b005fd0696390d1dd47ec4ff0c52784.tar.gz frameworks_base-eff30e3d1b005fd0696390d1dd47ec4ff0c52784.tar.bz2 |
Change the default time scale for audio/video track during recording
and reduce rounding errors in calculating the sample duration
- Default time scale for tracks other than audio is set to 90000.
- Audio track by default uses the audio sampling rate as the time scale.
- Default movie time scale remains to be 1000.
- The default time scale values will be overwritten by a user-supplied value if exits.
Change-Id: I81b40ed0626ea45e9fd24a89e21a2c5a4a2c3415
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 8481d49..94448c1 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -675,7 +675,9 @@ sp<MediaSource> StagefrightRecorder::createAudioSource() { encMeta->setInt32(kKeyChannelCount, mAudioChannels); encMeta->setInt32(kKeySampleRate, mSampleRate); encMeta->setInt32(kKeyBitRate, mAudioBitRate); - encMeta->setInt32(kKeyTimeScale, mAudioTimeScale); + if (mAudioTimeScale > 0) { + encMeta->setInt32(kKeyTimeScale, mAudioTimeScale); + } OMXClient client; CHECK_EQ(client.connect(), OK); @@ -961,7 +963,9 @@ status_t StagefrightRecorder::setupVideoEncoder(sp<MediaSource> *source) { enc_meta->setInt32(kKeyStride, stride); enc_meta->setInt32(kKeySliceHeight, sliceHeight); enc_meta->setInt32(kKeyColorFormat, colorFormat); - enc_meta->setInt32(kKeyTimeScale, mVideoTimeScale); + if (mVideoTimeScale > 0) { + enc_meta->setInt32(kKeyTimeScale, mVideoTimeScale); + } if (mVideoEncoderProfile != -1) { enc_meta->setInt32(kKeyVideoProfile, mVideoEncoderProfile); } @@ -1041,7 +1045,9 @@ status_t StagefrightRecorder::startMPEG4Recording() { meta->setInt32(kKeyFileType, mOutputFormat); meta->setInt32(kKeyBitRate, totalBitRate); meta->setInt32(kKey64BitFileOffset, mUse64BitFileOffset); - meta->setInt32(kKeyTimeScale, mMovieTimeScale); + if (mMovieTimeScale > 0) { + meta->setInt32(kKeyTimeScale, mMovieTimeScale); + } if (mTrackEveryTimeDurationUs > 0) { meta->setInt64(kKeyTrackTimeStatus, mTrackEveryTimeDurationUs); } @@ -1117,9 +1123,9 @@ status_t StagefrightRecorder::reset() { mIFramesIntervalSec = 1; mAudioSourceNode = 0; mUse64BitFileOffset = false; - mMovieTimeScale = 1000; - mAudioTimeScale = 1000; - mVideoTimeScale = 1000; + mMovieTimeScale = -1; + mAudioTimeScale = -1; + mVideoTimeScale = -1; mCameraId = 0; mVideoEncoderProfile = -1; mVideoEncoderLevel = -1; |