diff options
Diffstat (limited to 'cmds')
-rw-r--r-- | cmds/stagefright/codec.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/cmds/stagefright/codec.cpp b/cmds/stagefright/codec.cpp index 5cbfbfe5..ece3c09e 100644 --- a/cmds/stagefright/codec.cpp +++ b/cmds/stagefright/codec.cpp @@ -296,15 +296,28 @@ static int decode( if (sampleFlags & NuMediaExtractor::SAMPLE_FLAG_ENCRYPTED) { CHECK(decryptInputBuffers); - bufferFlags |= MediaCodec::BUFFER_FLAG_ENCRYPTED; - } + CryptoPlugin::SubSample ss; + ss.mNumBytesOfClearData = 0; + ss.mNumBytesOfEncryptedData = buffer->size(); - err = state->mCodec->queueInputBuffer( - index, - 0 /* offset */, - buffer->size(), - timeUs, - bufferFlags); + err = state->mCodec->queueSecureInputBuffer( + index, + 0 /* offset */, + &ss, + 1 /* numSubSamples */, + NULL /* key */, + NULL /* iv */, + CryptoPlugin::kMode_AES_WV, + timeUs, + bufferFlags); + } else { + err = state->mCodec->queueInputBuffer( + index, + 0 /* offset */, + buffer->size(), + timeUs, + bufferFlags); + } CHECK_EQ(err, (status_t)OK); |