diff options
author | Marco Nelissen <marcone@google.com> | 2014-05-20 02:13:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-05-20 02:13:05 +0000 |
commit | 93c6fa7508cd0f5bb0ec80ea29ef8bfab4a6015f (patch) | |
tree | 87551526160ae3969bf2e760968ffe5134f90464 /media | |
parent | 00ddac6f47a066a545342a81c40425e3a153e8a1 (diff) | |
parent | 79e2b622702fb148ccff12d6f38643466555c4eb (diff) | |
download | frameworks_av-93c6fa7508cd0f5bb0ec80ea29ef8bfab4a6015f.zip frameworks_av-93c6fa7508cd0f5bb0ec80ea29ef8bfab4a6015f.tar.gz frameworks_av-93c6fa7508cd0f5bb0ec80ea29ef8bfab4a6015f.tar.bz2 |
Merge "Add docs, releaseOutputBufferAtTime, seekTo."
Diffstat (limited to 'media')
-rw-r--r-- | media/ndk/NdkMediaCodec.cpp | 15 | ||||
-rw-r--r-- | media/ndk/NdkMediaExtractor.cpp | 16 |
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); } |