jetson_jpeg_decoder_pool.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "sora/hwenc_jetson/jetson_jpeg_decoder_pool.h"
  2. // WebRTC
  3. #include <rtc_base/logging.h>
  4. // Jetson Linux Multimedia API
  5. #include <NvJpegDecoder.h>
  6. namespace sora {
  7. std::shared_ptr<JetsonJpegDecoder> JetsonJpegDecoderPool::Pop() {
  8. std::shared_ptr<NvJPEGDecoder> nv_decoder;
  9. // JetPack 5.1.2 で同じフレームが送信され続ける問題が発生したため、キューを無効化した
  10. // JetPack 5.1.1 では正常に動作していた
  11. // momo で同様の問題に対応した際の PR: https://github.com/shiguredo/momo/pull/297/
  12. // {
  13. // std::lock_guard<std::mutex> lock(mtx_);
  14. // if (decoder_queue_.size() == 0) {
  15. // nv_decoder.reset(NvJPEGDecoder::createJPEGDecoder("jpegdec"));
  16. // } else {
  17. // nv_decoder = std::move(decoder_queue_.front());
  18. // decoder_queue_.pop();
  19. // }
  20. // }
  21. nv_decoder.reset(NvJPEGDecoder::createJPEGDecoder("jpegdec"));
  22. std::shared_ptr<JetsonJpegDecoder> decoder(
  23. new JetsonJpegDecoder(shared_from_this(), std::move(nv_decoder)));
  24. return decoder;
  25. }
  26. void JetsonJpegDecoderPool::Push(std::shared_ptr<NvJPEGDecoder> decoder) {
  27. std::lock_guard<std::mutex> lock(mtx_);
  28. // decoder_queue_.push(std::move(decoder));
  29. }
  30. } // namespace sora