summaryrefslogtreecommitdiffstats
path: root/media/ndk
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2014-05-16 08:07:28 -0700
committerMarco Nelissen <marcone@google.com>2014-05-19 10:45:41 -0700
commit79e2b622702fb148ccff12d6f38643466555c4eb (patch)
treecdd30838c98f75104c5b90f9c9f189406e947c06 /media/ndk
parent7c96d53a65085f42ac2b6d416cbc16fd36ed72ff (diff)
downloadframeworks_av-79e2b622702fb148ccff12d6f38643466555c4eb.zip
frameworks_av-79e2b622702fb148ccff12d6f38643466555c4eb.tar.gz
frameworks_av-79e2b622702fb148ccff12d6f38643466555c4eb.tar.bz2
Add docs, releaseOutputBufferAtTime, seekTo.
Change-Id: Iadd231b63e75b7937c13d2ebfef47aedeaeef5a1
Diffstat (limited to 'media/ndk')
-rw-r--r--media/ndk/NdkMediaCodec.cpp15
-rw-r--r--media/ndk/NdkMediaExtractor.cpp16
2 files changed, 26 insertions, 5 deletions
diff --git a/media/ndk/NdkMediaCodec.cpp b/media/ndk/NdkMediaCodec.cpp
index 9e2aa67..bd2541f 100644
--- a/media/ndk/NdkMediaCodec.cpp
+++ b/media/ndk/NdkMediaCodec.cpp
@@ -341,6 +341,13 @@ media_status_t AMediaCodec_releaseOutputBuffer(AMediaCodec *mData, size_t idx, b
}
EXPORT
+media_status_t AMediaCodec_releaseOutputBufferAtTime(
+ AMediaCodec *mData, size_t idx, int64_t timestampNs) {
+ ALOGV("render @ %lld", timestampNs);
+ return translate_error(mData->mCodec->renderOutputBufferAndRelease(idx, timestampNs));
+}
+
+EXPORT
media_status_t AMediaCodec_setNotificationCallback(AMediaCodec *mData, OnCodecEvent callback, void *userdata) {
mData->mCallback = callback;
mData->mCallbackUserData = userdata;
@@ -351,7 +358,7 @@ typedef struct AMediaCodecCryptoInfo {
int numsubsamples;
uint8_t key[16];
uint8_t iv[16];
- uint32_t mode;
+ cryptoinfo_mode_t mode;
size_t *clearbytes;
size_t *encryptedbytes;
} AMediaCodecCryptoInfo;
@@ -396,7 +403,7 @@ AMediaCodecCryptoInfo *AMediaCodecCryptoInfo_new(
int numsubsamples,
uint8_t key[16],
uint8_t iv[16],
- uint32_t mode,
+ cryptoinfo_mode_t mode,
size_t *clearbytes,
size_t *encryptedbytes) {
@@ -459,9 +466,9 @@ media_status_t AMediaCodecCryptoInfo_getIV(AMediaCodecCryptoInfo* ci, uint8_t *d
}
EXPORT
-uint32_t AMediaCodecCryptoInfo_getMode(AMediaCodecCryptoInfo* ci) {
+cryptoinfo_mode_t AMediaCodecCryptoInfo_getMode(AMediaCodecCryptoInfo* ci) {
if (!ci) {
- return AMEDIA_ERROR_INVALID_OBJECT;
+ return (cryptoinfo_mode_t) AMEDIA_ERROR_INVALID_OBJECT;
}
return ci->mode;
}
diff --git a/media/ndk/NdkMediaExtractor.cpp b/media/ndk/NdkMediaExtractor.cpp
index 563358f..b0a9590 100644
--- a/media/ndk/NdkMediaExtractor.cpp
+++ b/media/ndk/NdkMediaExtractor.cpp
@@ -150,6 +150,20 @@ bool AMediaExtractor_advance(AMediaExtractor *mData) {
}
EXPORT
+media_status_t AMediaExtractor_seekTo(AMediaExtractor *ex, int64_t seekPosUs, SeekMode mode) {
+ android::MediaSource::ReadOptions::SeekMode sfmode;
+ if (mode == AMEDIAEXTRACTOR_SEEK_PREVIOUS_SYNC) {
+ sfmode = android::MediaSource::ReadOptions::SEEK_PREVIOUS_SYNC;
+ } else if (mode == AMEDIAEXTRACTOR_SEEK_CLOSEST_SYNC) {
+ sfmode = android::MediaSource::ReadOptions::SEEK_CLOSEST_SYNC;
+ } else {
+ sfmode = android::MediaSource::ReadOptions::SEEK_NEXT_SYNC;
+ }
+
+ return translate_error(ex->mImpl->seekTo(seekPosUs, sfmode));
+}
+
+EXPORT
ssize_t AMediaExtractor_readSampleData(AMediaExtractor *mData, uint8_t *buffer, size_t capacity) {
//ALOGV("readSampleData");
sp<ABuffer> tmp = new ABuffer(buffer, capacity);
@@ -331,7 +345,7 @@ AMediaCodecCryptoInfo *AMediaExtractor_getSampleCryptoInfo(AMediaExtractor *ex)
numSubSamples,
(uint8_t*) key,
(uint8_t*) iv,
- mode,
+ (cryptoinfo_mode_t) mode,
(size_t*) cleardata,
(size_t*) crypteddata);
}