63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
#ifndef F4486E13_26A4_47A9_B4C0_193369C1A700
|
|
#define F4486E13_26A4_47A9_B4C0_193369C1A700
|
|
/*
|
|
*******************************************************************************
|
|
* INCLUDE
|
|
*******************************************************************************
|
|
*/
|
|
#include "VideoScanMode.h"
|
|
#include <Poco/BasicEvent.h>
|
|
|
|
namespace Video
|
|
{
|
|
namespace Core
|
|
{
|
|
/*
|
|
*******************************************************************************
|
|
* CLASS DECLARE
|
|
*******************************************************************************
|
|
*/
|
|
class Frontend
|
|
{
|
|
public:
|
|
using Ptr = Poco::SharedPtr<Frontend>;
|
|
|
|
struct MediaInfo
|
|
{
|
|
bool haveVideo;
|
|
bool haveAudio;
|
|
|
|
struct
|
|
{
|
|
uint32_t width;
|
|
uint32_t height;
|
|
uint32_t frameRate;
|
|
VideoScanMode scanMode;
|
|
} video;
|
|
|
|
struct
|
|
{
|
|
uint32_t sampleRate;
|
|
} audio;
|
|
};
|
|
|
|
public:
|
|
Poco::BasicEvent<MediaInfo> StatusChanged;
|
|
|
|
public:
|
|
Frontend(std::string name);
|
|
virtual ~Frontend();
|
|
|
|
std::string name();
|
|
virtual void read(MediaInfo& info) = 0;
|
|
|
|
protected:
|
|
void notifyStatusChanged();
|
|
void notifyStatusChanged(MediaInfo& info);
|
|
|
|
private:
|
|
std::string _name;
|
|
};
|
|
}
|
|
}
|
|
#endif
|