| 78 | } |
| 79 | |
| 80 | ProcessingResultsPromise::FutureImpl ImageGenericDecoder::decode( |
| 81 | const std::vector<ICodeStream*>& code_streams, const std::vector<IImage*>& images, const nvimgcodecDecodeParams_t* params) noexcept { |
| 82 | try { |
| 83 | NVIMGCODEC_LOG_INFO(logger_, "ImageGenericDecoder::decode num_samples=" << code_streams.size()); |
| 84 | curr_params_ = params; |
| 85 | return process(code_streams, images); |
| 86 | } catch (const std::exception& e) { |
| 87 | NVIMGCODEC_LOG_ERROR(logger_, "Exception during decode: " << e.what()); |
| 88 | auto promise = std::make_shared<ProcessingResultsPromise>(code_streams.size()); |
| 89 | for (size_t i = 0; i < code_streams.size(); i++) { |
| 90 | promise->set(i, ProcessingResult::failure(NVIMGCODEC_PROCESSING_STATUS_FAIL)); |
| 91 | } |
| 92 | return promise->getFuture(); |
| 93 | } |
| 94 | } |
| 95 | |
| 96 | void ImageGenericDecoder::sortSamples() { |
| 97 | nvtx3::scoped_range marker{"sort samples"}; |
no test coverage detected