fix qcom decoder compilation on mac with platform check (#36131)

pull/36120/head
Jimmy 1 month ago committed by GitHub
parent 3c28188d7a
commit 994170ddb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      tools/replay/SConscript
  2. 7
      tools/replay/framereader.cc
  3. 5
      tools/replay/framereader.h

@ -12,7 +12,9 @@ else:
base_libs.append('OpenCL')
replay_lib_src = ["replay.cc", "consoleui.cc", "camera.cc", "filereader.cc", "logreader.cc", "framereader.cc",
"route.cc", "util.cc", "seg_mgr.cc", "timeline.cc", "api.cc", "qcom_decoder.cc"]
"route.cc", "util.cc", "seg_mgr.cc", "timeline.cc", "api.cc"]
if arch != "Darwin":
replay_lib_src.append("qcom_decoder.cc")
replay_lib = replay_env.Library("replay", replay_lib_src, LIBS=base_libs, FRAMEWORKS=base_frameworks)
Export('replay_lib')
replay_libs = [replay_lib, 'avutil', 'avcodec', 'avformat', 'bz2', 'zstd', 'curl', 'yuv', 'ncurses'] + base_libs

@ -39,9 +39,12 @@ struct DecoderManager {
}
std::unique_ptr<VideoDecoder> decoder;
#ifndef __APPLE__
if (Hardware::TICI() && hw_decoder) {
decoder = std::make_unique<QcomVideoDecoder>();
} else {
} else
#endif
{
decoder = std::make_unique<FFmpegVideoDecoder>();
}
@ -264,6 +267,7 @@ bool FFmpegVideoDecoder::copyBuffer(AVFrame *f, VisionBuf *buf) {
return true;
}
#ifndef __APPLE__
bool QcomVideoDecoder::open(AVCodecParameters *codecpar, bool hw_decoder) {
if (codecpar->codec_id != AV_CODEC_ID_HEVC) {
rError("Hardware decoder only supports HEVC codec");
@ -305,3 +309,4 @@ bool QcomVideoDecoder::decode(FrameReader *reader, int idx, VisionBuf *buf) {
}
return result;
}
#endif

@ -6,7 +6,10 @@
#include "msgq/visionipc/visionbuf.h"
#include "tools/replay/filereader.h"
#include "tools/replay/util.h"
#ifndef __APPLE__
#include "tools/replay/qcom_decoder.h"
#endif
extern "C" {
#include <libavcodec/avcodec.h>
@ -65,6 +68,7 @@ private:
AVBufferRef *hw_device_ctx = nullptr;
};
#ifndef __APPLE__
class QcomVideoDecoder : public VideoDecoder {
public:
QcomVideoDecoder() {};
@ -75,3 +79,4 @@ public:
private:
MsmVidc msm_vidc = MsmVidc();
};
#endif

Loading…
Cancel
Save