[feat] remove dependence on ffmpeg for MacOSx

This commit is contained in:
dijunkun
2025-05-08 11:33:04 +08:00
parent e89d385f99
commit e2a469ed65
22 changed files with 10 additions and 2927 deletions

View File

@@ -0,0 +1,56 @@
/*
* @Author: DI JUNKUN
* @Date: 2024-10-17
* Copyright (c) 2024 by DI JUNKUN, All Rights Reserved.
*/
#ifndef _SCREEN_CAPTURER_SCK_H_
#define _SCREEN_CAPTURER_SCK_H_
#include <atomic>
#include <functional>
#include <memory>
#include <string>
#include <thread>
#include <vector>
#include "screen_capturer.h"
class ScreenCapturerSck : public ScreenCapturer {
public:
ScreenCapturerSck();
~ScreenCapturerSck();
public:
virtual int Init(const int fps, cb_desktop_data cb) override;
virtual int Destroy() override;
virtual int Start() override;
virtual int Stop() override;
int Pause();
int Resume();
void OnFrame();
protected:
void CleanUp();
private:
std::unique_ptr<ScreenCapturer> CreateScreenCapturerSck();
private:
int _fps;
cb_desktop_data on_data_;
unsigned char* nv12_frame_ = nullptr;
bool inited_ = false;
// thread
std::thread capture_thread_;
std::atomic_bool running_;
private:
std::unique_ptr<ScreenCapturer> screen_capturer_sck_impl_;
};
#endif