    AVPixelFormat hw_pix_fmt = AV_PIX_FMT_NONE;
    AVBufferRef *hw_device_ctx = nullptr;
    std::vector<uint8_t> nv12toyuv_buffer;
    int prev_idx = -1;
    inline static std::atomic<bool> has_cuda_device = true;
  };
 
</s> remove     has_cuda_device = false;
 </s> add     has_hw_decoder = false; </s> remove   rWarning("Please run replay with the --no-cuda flag!");
 </s> add   rWarning("Please run replay with the --no-hw-decoder flag!"); </s> remove   bool load(const std::string &url, bool no_cuda = false, std::atomic<bool> *abort = nullptr, bool local_cache = false, int chunk_size = -1, int retries = 0);
  bool load(const std::byte *data, size_t size, bool no_cuda = false, std::atomic<bool> *abort = nullptr);
 </s> add   bool load(const std::string &url, bool no_hw_decoder = false, std::atomic<bool> *abort = nullptr, bool local_cache = false, int chunk_size = -1, int retries = 0);
  bool load(const std::byte *data, size_t size, bool no_hw_decoder = false, std::atomic<bool> *abort = nullptr); </s> remove   REPLAY_FLAG_NO_CUDA = 0x0100,
 </s> add   REPLAY_FLAG_NO_HW_DECODER = 0x0100, </s> remove bool FrameReader::load(const std::byte *data, size_t size, bool no_cuda, std::atomic<bool> *abort) {
 </s> add bool FrameReader::load(const std::byte *data, size_t size, bool no_hw_decoder, std::atomic<bool> *abort) {
  inline static std::atomic<bool> has_hw_decoder = true;
    AVPixelFormat hw_pix_fmt = AV_PIX_FMT_NONE;
    AVBufferRef *hw_device_ctx = nullptr;
    std::vector<uint8_t> nv12toyuv_buffer;
    int prev_idx = -1;
  inline static std::atomic<bool> has_hw_decoder = true;
  };
keep keep keep keep replace keep
 replay: use VideoToolbox HW decoder on Mac (#23832)

* replay: support VideoToolbox HW decoding

* rename flag

* remove debug assert 
selfdrive/ui/replay/framereader.h