summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2011-07-22 09:52:39 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2011-07-22 14:51:51 -0700
commita05f099301ca9d5efd4db549295401ee00b439a0 (patch)
tree3e9b1bf6ce6b55d72b88662b7363826258ea13dc
parent47d4caf41b052ab88f747ccc789754be5f44f8af (diff)
downloadframeworks_base-a05f099301ca9d5efd4db549295401ee00b439a0.zip
frameworks_base-a05f099301ca9d5efd4db549295401ee00b439a0.tar.gz
frameworks_base-a05f099301ca9d5efd4db549295401ee00b439a0.tar.bz2
QueryCodecs() signature change
Restore QueryCodecs() signature exactly as used by third-party libs. Add an alternative function to select HW only codecs. Change-Id: Ibb2cb4dd36fc0c6599eb93aa5751c216397e3b6f
-rw-r--r--cmds/stagefright/stagefright.cpp2
-rw-r--r--include/media/stagefright/OMXCodec.h7
-rwxr-xr-xmedia/libstagefright/OMXCodec.cpp7
3 files changed, 15 insertions, 1 deletions
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp
index b42f1c5..34f0a64 100644
--- a/cmds/stagefright/stagefright.cpp
+++ b/cmds/stagefright/stagefright.cpp
@@ -803,9 +803,9 @@ int main(int argc, char **argv) {
printf("type '%s':\n", kMimeTypes[k]);
Vector<CodecCapabilities> results;
+ // will retrieve hardware and software codecs
CHECK_EQ(QueryCodecs(omx, kMimeTypes[k],
true, // queryDecoders
- false, // hwCodecOnly
&results), (status_t)OK);
for (size_t i = 0; i < results.size(); ++i) {
diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h
index 20fcde5..93933d9 100644
--- a/include/media/stagefright/OMXCodec.h
+++ b/include/media/stagefright/OMXCodec.h
@@ -348,6 +348,8 @@ struct CodecCapabilities {
// that encode content of the given type.
// profile and level indications only make sense for h.263, mpeg4 and avc
// video.
+// If hwCodecOnly==true, only returns hardware-based components, software and
+// hardware otherwise.
// The profile/level values correspond to
// OMX_VIDEO_H263PROFILETYPE, OMX_VIDEO_MPEG4PROFILETYPE,
// OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263LEVELTYPE, OMX_VIDEO_MPEG4LEVELTYPE
@@ -358,6 +360,11 @@ status_t QueryCodecs(
const char *mimeType, bool queryDecoders, bool hwCodecOnly,
Vector<CodecCapabilities> *results);
+status_t QueryCodecs(
+ const sp<IOMX> &omx,
+ const char *mimeType, bool queryDecoders,
+ Vector<CodecCapabilities> *results);
+
} // namespace android
#endif // OMX_CODEC_H_
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index 7bcbdcf..0a6f0bd 100755
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -4415,6 +4415,13 @@ status_t QueryCodecs(
return OK;
}
+status_t QueryCodecs(
+ const sp<IOMX> &omx,
+ const char *mimeType, bool queryDecoders,
+ Vector<CodecCapabilities> *results) {
+ return QueryCodecs(omx, mimeType, queryDecoders, false /*hwCodecOnly*/, results);
+}
+
void OMXCodec::restorePatchedDataPointer(BufferInfo *info) {
CHECK(mIsEncoder && (mQuirks & kAvoidMemcopyInputRecordingFrames));
CHECK(mOMXLivesLocally);