}
TIZEN_MEDIA_LOG(ERROR) << "Resource conflict, release decoder";
+
+ // As we'll release decoder, we need to take care of pictures
+ // that has reference to decoder allocated memory.
+ RemoveDecoderDependentResults();
+
decoder_state_ = DecoderState::kResourceTaken;
decoder_facade_.reset();
std::move(token_provider).Run(std::move(allocated_decoder_));
- // Decoder is release, ensure that won't access decoder mapped data
- // after releasing.
- RemoveDecoderDependentResults();
// Mark failure of any pending decodes. `kKeyFrameRequired` is used
// to mark such situation in other places (see `Decode()`).
// reinitialization is seamless decoder switch is not possible.
decoder_state_ = DecoderState::kResourceTaken;
}
- decoder_facade_.reset();
- allocated_decoder_.reset();
- // Decoder is released, ensure that won't access decoder mapped data
- // after releasing.
+ // As we'll release decoder, we need to take care of pictures
+ // that has reference to decoder allocated memory.
RemoveDecoderDependentResults();
+
+ decoder_facade_.reset();
+ allocated_decoder_.reset();
}
bool TTvdVideoDecoderImpl::AllocateDecoder() {