Loading media/libmediatranscoding/TranscoderWrapper.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -366,6 +366,12 @@ media_status_t TranscoderWrapper::setupTranscoder( return AMEDIA_ERROR_INVALID_OPERATION; } // Unwrap the callback and send heartbeats to the client after each operation during setup. auto callback = mCallback.lock(); if (callback == nullptr) { return AMEDIA_ERROR_INVALID_OPERATION; } Status status; ::ndk::ScopedFileDescriptor srcFd, dstFd; int srcFdInt = request.sourceFd.get(); Loading @@ -379,6 +385,8 @@ media_status_t TranscoderWrapper::setupTranscoder( srcFdInt = srcFd.get(); } callback->onHeartBeat(clientId, sessionId); int dstFdInt = request.destinationFd.get(); if (dstFdInt < 0) { // Open dest file with "rw", as the transcoder could potentially reuse part of it Loading @@ -393,6 +401,8 @@ media_status_t TranscoderWrapper::setupTranscoder( dstFdInt = dstFd.get(); } callback->onHeartBeat(clientId, sessionId); mCurrentClientId = clientId; mCurrentSessionId = sessionId; mCurrentCallingUid = callingUid; Loading @@ -405,6 +415,8 @@ media_status_t TranscoderWrapper::setupTranscoder( return AMEDIA_ERROR_UNKNOWN; } callback->onHeartBeat(clientId, sessionId); media_status_t err = mTranscoder->configureSource(srcFdInt); if (err != AMEDIA_OK) { ALOGE("failed to configure source: %d", err); Loading @@ -412,6 +424,8 @@ media_status_t TranscoderWrapper::setupTranscoder( return err; } callback->onHeartBeat(clientId, sessionId); std::vector<std::shared_ptr<AMediaFormat>> trackFormats = mTranscoder->getTrackFormats(); if (trackFormats.size() == 0) { ALOGE("failed to get track formats!"); Loading @@ -419,6 +433,8 @@ media_status_t TranscoderWrapper::setupTranscoder( return AMEDIA_ERROR_MALFORMED; } callback->onHeartBeat(clientId, sessionId); for (int i = 0; i < trackFormats.size(); ++i) { std::shared_ptr<AMediaFormat> format; const char* mime = nullptr; Loading @@ -437,6 +453,8 @@ media_status_t TranscoderWrapper::setupTranscoder( *failureReason = TranscodingLogger::SessionEndedReason::CONFIG_TRACK_FAILED; return err; } callback->onHeartBeat(clientId, sessionId); } err = mTranscoder->configureDestination(dstFdInt); Loading @@ -446,6 +464,8 @@ media_status_t TranscoderWrapper::setupTranscoder( return err; } callback->onHeartBeat(clientId, sessionId); return AMEDIA_OK; } Loading media/libmediatranscoding/transcoder/MediaSampleWriter.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -328,8 +328,8 @@ media_status_t MediaSampleWriter::runWriterLoop(bool* wasStopped) NO_THREAD_SAFE } lastProgressUpdate = progress; } progressSinceLastReport = true; } progressSinceLastReport = true; } return AMEDIA_OK; Loading media/libmediatranscoding/transcoder/MediaTranscoder.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,11 @@ void MediaTranscoder::onTrackFormatAvailable(const MediaTrackTranscoder* transco return; } // The sample writer is not yet started so notify the caller that progress is still made. if (mHeartBeatIntervalUs > 0) { mCallbacks->onHeartBeat(this); } MediaTrackTranscoder* mutableTranscoder = const_cast<MediaTrackTranscoder*>(transcoder); mutableTranscoder->setSampleConsumer(consumer); Loading Loading
media/libmediatranscoding/TranscoderWrapper.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -366,6 +366,12 @@ media_status_t TranscoderWrapper::setupTranscoder( return AMEDIA_ERROR_INVALID_OPERATION; } // Unwrap the callback and send heartbeats to the client after each operation during setup. auto callback = mCallback.lock(); if (callback == nullptr) { return AMEDIA_ERROR_INVALID_OPERATION; } Status status; ::ndk::ScopedFileDescriptor srcFd, dstFd; int srcFdInt = request.sourceFd.get(); Loading @@ -379,6 +385,8 @@ media_status_t TranscoderWrapper::setupTranscoder( srcFdInt = srcFd.get(); } callback->onHeartBeat(clientId, sessionId); int dstFdInt = request.destinationFd.get(); if (dstFdInt < 0) { // Open dest file with "rw", as the transcoder could potentially reuse part of it Loading @@ -393,6 +401,8 @@ media_status_t TranscoderWrapper::setupTranscoder( dstFdInt = dstFd.get(); } callback->onHeartBeat(clientId, sessionId); mCurrentClientId = clientId; mCurrentSessionId = sessionId; mCurrentCallingUid = callingUid; Loading @@ -405,6 +415,8 @@ media_status_t TranscoderWrapper::setupTranscoder( return AMEDIA_ERROR_UNKNOWN; } callback->onHeartBeat(clientId, sessionId); media_status_t err = mTranscoder->configureSource(srcFdInt); if (err != AMEDIA_OK) { ALOGE("failed to configure source: %d", err); Loading @@ -412,6 +424,8 @@ media_status_t TranscoderWrapper::setupTranscoder( return err; } callback->onHeartBeat(clientId, sessionId); std::vector<std::shared_ptr<AMediaFormat>> trackFormats = mTranscoder->getTrackFormats(); if (trackFormats.size() == 0) { ALOGE("failed to get track formats!"); Loading @@ -419,6 +433,8 @@ media_status_t TranscoderWrapper::setupTranscoder( return AMEDIA_ERROR_MALFORMED; } callback->onHeartBeat(clientId, sessionId); for (int i = 0; i < trackFormats.size(); ++i) { std::shared_ptr<AMediaFormat> format; const char* mime = nullptr; Loading @@ -437,6 +453,8 @@ media_status_t TranscoderWrapper::setupTranscoder( *failureReason = TranscodingLogger::SessionEndedReason::CONFIG_TRACK_FAILED; return err; } callback->onHeartBeat(clientId, sessionId); } err = mTranscoder->configureDestination(dstFdInt); Loading @@ -446,6 +464,8 @@ media_status_t TranscoderWrapper::setupTranscoder( return err; } callback->onHeartBeat(clientId, sessionId); return AMEDIA_OK; } Loading
media/libmediatranscoding/transcoder/MediaSampleWriter.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -328,8 +328,8 @@ media_status_t MediaSampleWriter::runWriterLoop(bool* wasStopped) NO_THREAD_SAFE } lastProgressUpdate = progress; } progressSinceLastReport = true; } progressSinceLastReport = true; } return AMEDIA_OK; Loading
media/libmediatranscoding/transcoder/MediaTranscoder.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,11 @@ void MediaTranscoder::onTrackFormatAvailable(const MediaTrackTranscoder* transco return; } // The sample writer is not yet started so notify the caller that progress is still made. if (mHeartBeatIntervalUs > 0) { mCallbacks->onHeartBeat(this); } MediaTrackTranscoder* mutableTranscoder = const_cast<MediaTrackTranscoder*>(transcoder); mutableTranscoder->setSampleConsumer(consumer); Loading