summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonghua Wu <ronghuawu@google.com>2015-03-16 16:37:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-03-16 16:37:30 +0000
commiteb0ee0e842d3b8294aa6c0b797eaf7aff3fd2f89 (patch)
tree3a9991c2d7409caac8fca5747ea8cd1b6be83265
parentbd321b6ed912c492331216180b8677ee58c1eebd (diff)
parent8b806ea894ca098366629458bfdd1df4866afcdf (diff)
downloadframeworks_av-eb0ee0e842d3b8294aa6c0b797eaf7aff3fd2f89.zip
frameworks_av-eb0ee0e842d3b8294aa6c0b797eaf7aff3fd2f89.tar.gz
frameworks_av-eb0ee0e842d3b8294aa6c0b797eaf7aff3fd2f89.tar.bz2
Merge "libstagefright: handle MediaFormat "priority" key."
-rw-r--r--include/media/stagefright/ACodec.h2
-rw-r--r--media/libstagefright/ACodec.cpp21
2 files changed, 23 insertions, 0 deletions
diff --git a/include/media/stagefright/ACodec.h b/include/media/stagefright/ACodec.h
index 442c861..aa91485 100644
--- a/include/media/stagefright/ACodec.h
+++ b/include/media/stagefright/ACodec.h
@@ -299,6 +299,8 @@ private:
status_t setupRawAudioFormat(
OMX_U32 portIndex, int32_t sampleRate, int32_t numChannels);
+ status_t setPriority(int32_t priority);
+
status_t setMinBufferSize(OMX_U32 portIndex, size_t size);
status_t setupMPEG4EncoderParameters(const sp<AMessage> &msg);
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
index c75d4df..31e10ce 100644
--- a/media/libstagefright/ACodec.cpp
+++ b/media/libstagefright/ACodec.cpp
@@ -1676,6 +1676,11 @@ status_t ACodec::configureCodec(
err = setMinBufferSize(kPortIndexInput, 8192); // XXX
}
+ int32_t priority;
+ if (msg->findInt32("priority", &priority)) {
+ err = setPriority(priority);
+ }
+
mBaseOutputFormat = outputFormat;
CHECK_EQ(getPortFormat(kPortIndexInput, inputFormat), (status_t)OK);
@@ -1686,6 +1691,22 @@ status_t ACodec::configureCodec(
return err;
}
+status_t ACodec::setPriority(int32_t priority) {
+ if (priority < 0) {
+ return BAD_VALUE;
+ }
+ OMX_PARAM_U32TYPE config;
+ InitOMXParams(&config);
+ config.nU32 = (OMX_U32)priority;
+ status_t temp = mOMX->setConfig(
+ mNode, (OMX_INDEXTYPE)OMX_IndexConfigPriority,
+ &config, sizeof(config));
+ if (temp != OK) {
+ ALOGI("codec does not support config priority (err %d)", temp);
+ }
+ return OK;
+}
+
status_t ACodec::setMinBufferSize(OMX_U32 portIndex, size_t size) {
OMX_PARAM_PORTDEFINITIONTYPE def;
InitOMXParams(&def);