summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-08-31 13:25:42 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-08-31 13:25:42 -0700
commiteaae2c3d6c6877e5260be9c07a02d2fd0089de59 (patch)
tree9d5696650439c076cb0c585bc39314689cde9be3
parenteebcf36cf2db2563af8ef479e01747321aa959e8 (diff)
parentf74c8f9ee26c91b129fe9a1acc254471a9f30cb1 (diff)
downloadframeworks_av-eaae2c3d6c6877e5260be9c07a02d2fd0089de59.zip
frameworks_av-eaae2c3d6c6877e5260be9c07a02d2fd0089de59.tar.gz
frameworks_av-eaae2c3d6c6877e5260be9c07a02d2fd0089de59.tar.bz2
am 6aacad66: Merge "Add some encoding parameters for the "record" utility" into gingerbread
Merge commit '6aacad66eba2b51251f7e2dfb8c005b5242326ca' into gingerbread-plus-aosp * commit '6aacad66eba2b51251f7e2dfb8c005b5242326ca': Add some encoding parameters for the "record" utility
-rw-r--r--cmds/stagefright/record.cpp20
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);