You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SimpleSkyCam/videoframe.h

77 lines
1.3 KiB

#ifndef _VIDEOFRAME_H_
#define _VIDEOFRAME_H_
#include "gui.h"
#include "config.h"
class FloatImage {
public:
int w;
int h;
uint32_t size;
float *data;
FloatImage();
~FloatImage();
FloatImage operator=(FloatImage rightside);
void SetSize(int nw, int nh);
void SetW(int nw) { SetSize(nw, h); };
void SetH(int nh) { SetSize(w, nh); };
void CopyFrom(FloatImage *source);
void Delete() { w = 0; h = 0; };
};
/*
* contains RGB data
*/
class VideoFrame {
private:
public:
int w;
int h;
uint32_t size;
unsigned char *data;
VideoFrame();
~VideoFrame();
VideoFrame operator=(VideoFrame rightside);
void SetSize(int nw, int nh);
void SetW(int nw) { SetSize(nw, h); };
void SetH(int nh) { SetSize(w, nh); };
void CopyFrom(VideoFrame *source);
void CopyFrom(FloatImage *source);
void CopyTo(FloatImage *dest);
void ToPixbuf(GdkPixbuf* dest);
void Delete() { w = 0; h = 0; };
};
class VideoFrameRaw {
private:
public:
unsigned char *data;
int size;
int w;
int h;
uint32_t pixfmt;
VideoFrameRaw();
~VideoFrameRaw();
int ReAlloc(int newsize);
int CopyFrom(VideoFrame *src);
int CopyFrom(VideoFrameRaw *src);
int CopyFrom(int spixfmt, int sw, int sh, int ssize, unsigned char *sdata);
int RectCopyFrom(VideoFrameRaw *src, int rectx, int recty, int rectw, int recth);
void Delete() { w = 0; h = 0; pixfmt = 0;};
};
#endif