diff options
| author | James Dong <jdong@google.com> | 2010-08-31 13:29:39 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-08-31 13:29:39 -0700 |
| commit | f827a0cf1d42e3f69050c2888221e901d7f80330 (patch) | |
| tree | 8e0e9525b0de99f4993e4d7a3ca40a9cfd368f9a | |
| parent | e0801bd0d1aaf3902c7b1a86aa9399aefbb46935 (diff) | |
| parent | aa40b834985023642b30fa2e0563c414a994bd3a (diff) | |
| download | frameworks_base-f827a0cf1d42e3f69050c2888221e901d7f80330.zip frameworks_base-f827a0cf1d42e3f69050c2888221e901d7f80330.tar.gz frameworks_base-f827a0cf1d42e3f69050c2888221e901d7f80330.tar.bz2 | |
am aa40b834: am 6aacad66: Merge "Add some encoding parameters for the "record" utility" into gingerbread
Merge commit 'aa40b834985023642b30fa2e0563c414a994bd3a'
* commit 'aa40b834985023642b30fa2e0563c414a994bd3a':
Add some encoding parameters for the "record" utility
| -rw-r--r-- | cmds/stagefright/record.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/cmds/stagefright/record.cpp b/cmds/stagefright/record.cpp index 5a87f4c..c424281 100644 --- a/cmds/stagefright/record.cpp +++ b/cmds/stagefright/record.cpp @@ -32,9 +32,15 @@ using namespace android; +static const int32_t kFramerate = 24; // fps +static const int32_t kIFramesIntervalSec = 1; +static const int32_t kVideoBitRate = 512 * 1024; +static const int32_t kAudioBitRate = 12200; +static const int32_t kColorFormat = OMX_COLOR_FormatYUV420SemiPlanar; +static const int64_t kDurationUs = 10000000LL; // 10 seconds + #if 1 class DummySource : public MediaSource { - static const int32_t kFramerate = 24; // fps public: DummySource(int width, int height) @@ -176,6 +182,12 @@ int main(int argc, char **argv) { enc_meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_VIDEO_AVC); enc_meta->setInt32(kKeyWidth, width); enc_meta->setInt32(kKeyHeight, height); + enc_meta->setInt32(kKeySampleRate, kFramerate); + enc_meta->setInt32(kKeyBitRate, kVideoBitRate); + enc_meta->setInt32(kKeyStride, width); + enc_meta->setInt32(kKeySliceHeight, height); + enc_meta->setInt32(kKeyIFramesInterval, kIFramesIntervalSec); + enc_meta->setInt32(kKeyColorFormat, kColorFormat); sp<MediaSource> encoder = OMXCodec::Create( @@ -184,8 +196,10 @@ int main(int argc, char **argv) { #if 1 sp<MPEG4Writer> writer = new MPEG4Writer("/sdcard/output.mp4"); writer->addSource(encoder); + writer->setMaxFileDuration(kDurationUs); writer->start(); while (!writer->reachedEOS()) { + fprintf(stderr, "."); usleep(100000); } writer->stop(); @@ -194,6 +208,8 @@ int main(int argc, char **argv) { MediaBuffer *buffer; while (encoder->read(&buffer) == OK) { + printf("."); + fflush(stdout); int32_t isSync; if (!buffer->meta_data()->findInt32(kKeyIsSyncFrame, &isSync)) { isSync = false; @@ -209,6 +225,7 @@ int main(int argc, char **argv) { encoder->stop(); #endif + printf("$\n"); client.disconnect(); #endif @@ -267,6 +284,7 @@ int main(int argc, char **argv) { encMeta->setInt32(kKeySampleRate, kSampleRate); encMeta->setInt32(kKeyChannelCount, kNumChannels); encMeta->setInt32(kKeyMaxInputSize, 8192); + encMeta->setInt32(kKeyBitRate, kAudioBitRate); sp<MediaSource> encoder = OMXCodec::Create(client.interface(), encMeta, true, audioSource); |
