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 | c059860c73678a202bfa33062723e8f82fb779d9 (patch) | |
tree | 94b5887059eabda7d8fabe686eba50f5c7963f94 /media/libmediaplayerservice/StagefrightRecorder.cpp | |
parent | e259531ce59ab1f31de5a23124b22536f6a5a767 (diff) | |
download | frameworks_av-c059860c73678a202bfa33062723e8f82fb779d9.zip frameworks_av-c059860c73678a202bfa33062723e8f82fb779d9.tar.gz frameworks_av-c059860c73678a202bfa33062723e8f82fb779d9.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/StagefrightRecorder.cpp')
-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; |