Merge branch 'master' into pu/fb-setmode

This commit is contained in:
M. Liebmann
2017-03-22 01:24:03 +01:00
5 changed files with 78 additions and 0 deletions

View File

@@ -47,6 +47,9 @@ enum CS_LOG_MODULE {
void cs_api_init(void);
void cs_api_exit(void);
/* Dummy for compatibility with HD2 */
#define cs_new_auto_videosystem();
// Memory helpers
void *cs_malloc_uncached(size_t size);
void cs_free_uncached(void *ptr);

View File

@@ -0,0 +1,16 @@
#ifndef __HELPERS_CS_H__
#define __HELPERS_CS_H__
enum {
CS_EXTRA_DEBUG_OFF = 0x00000000,
CS_EXTRA_DEBUG_VIDEO1 = 0x00000001,
CS_EXTRA_DEBUG_ALL = 0xFFFFFFFF
};
void cs_set_extra_debug(uint32_t mode);
const char* __func_ext__f(const char* _func_, int _line_, const char* _file_, bool havePathFile);
#define __func_ext__ __func_ext__f(__PRETTY_FUNCTION__, __LINE__, NULL, true)
#define __func_ext_file__ __func_ext__f(__PRETTY_FUNCTION__, __LINE__, __path_file__, true)
#endif // __HELPERS_CS_H__

View File

@@ -9,9 +9,11 @@
#ifndef __VIDEO_CS_H_
#define __VIDEO_CS_H_
#include <stdint.h>
#include <cs_vfd.h>
#include <control.h>
#include <dmx_cs.h>
#include <linux/fb.h>
#include "cs_types.h"
@@ -123,6 +125,18 @@ typedef enum
VIDEO_CONTROL_MAX = VIDEO_CONTROL_SHARPNESS
} VIDEO_CONTROL;
typedef struct cs_vs_format_t
{
char format[16];
} cs_vs_format_struct_t;
enum {
CS_FBCOPY_BB2FB = 0,
CS_FBCOPY_FB2FB = 1,
CS_FBCOPY_MEM2FB = 2,
CS_FBCOPY_FB2MEM = 3
};
class cVideo {
private:
CS_VIDEO_PDATA *privateData;
@@ -155,6 +169,11 @@ private:
vfd_icon mode_icon;
unsigned int unit;
cDemux *demux;
int current_video_system;
bool isReadScreeninfo;
fb_var_screeninfo varScreeninfo;
fb_fix_screeninfo fixScreeninfo;
//
int SelectAutoFormat();
void ScalePic();
@@ -163,6 +182,9 @@ public:
cVideo(int mode, void * hChannel, void * hBuffer, unsigned int Unit = 0);
~cVideo(void);
/* Important!
Call this function when osd resolution has been changed */
void updateOsdScreenInfo();
void * GetDRM(void);
void * GetTVEnc();
void * GetTVEncSD();
@@ -207,6 +229,11 @@ public:
int64_t GetPTS(void);
int Flush(void);
/* get video system infos */
int GetVideoSystem();
/* when system = -1 then use current video system */
void GetVideoSystemFormatName(cs_vs_format_t* format, int system = -1);
/* set video_system */
int SetVideoSystem(int video_system, bool remember = true);
int SetStreamType(VIDEO_FORMAT type);
@@ -234,6 +261,8 @@ public:
int StartVBI(unsigned short pid);
int StopVBI(void);
bool GetScreenImage(unsigned char * &data, int &xres, int &yres, bool get_video = true, bool get_osd = false, bool scale_to_video = false);
int fbCopy(uint32_t *mem_p, int width, int height, int dst_x, int dst_y, int src_x, int src_y, int mode);
int fbFill(int sx, int sy, int width, int height, fb_pixel_t col, int mode=0);
void SetDemux(cDemux *Demux);
};

View File

@@ -0,0 +1,16 @@
#ifndef __HELPERS_CS_H__
#define __HELPERS_CS_H__
enum {
CS_EXTRA_DEBUG_OFF = 0x00000000,
CS_EXTRA_DEBUG_VIDEO1 = 0x00000001,
CS_EXTRA_DEBUG_ALL = 0xFFFFFFFF
};
void cs_set_extra_debug(uint32_t mode);
const char* __func_ext__f(const char* _func_, int _line_, const char* _file_, bool havePathFile);
#define __func_ext__ __func_ext__f(__PRETTY_FUNCTION__, __LINE__, NULL, true)
#define __func_ext_file__ __func_ext__f(__PRETTY_FUNCTION__, __LINE__, __path_file__, true)
#endif // __HELPERS_CS_H__

View File

@@ -9,6 +9,7 @@
#ifndef __VIDEO_CS_H_
#define __VIDEO_CS_H_
#include <stdint.h>
#include <cs_frontpanel.h>
#include <control.h>
@@ -158,6 +159,13 @@ typedef struct cs_vs_format_t
char formatSD[16];
} cs_vs_format_struct_t;
enum {
CS_FBCOPY_BB2FB = 0,
CS_FBCOPY_FB2FB = 1,
CS_FBCOPY_MEM2FB = 2,
CS_FBCOPY_FB2MEM = 3
};
class cDemux;
class cAudio;
@@ -206,6 +214,10 @@ public:
cVideo(int mode, void * hChannel, void * hBuffer);
~cVideo(void);
/* Important!
Call this function when osd resolution has been changed */
void updateOsdScreenInfo();
void * GetVPP(void);
void * GetTVEnc();
void * GetTVEncSD();
@@ -282,6 +294,8 @@ public:
int StartVBI(unsigned short pid);
int StopVBI(void);
bool GetScreenImage(unsigned char * &data, int &xres, int &yres, bool get_video = true, bool get_osd = false, bool scale_to_video = false);
int fbCopy(uint32_t *mem_p, int width, int height, int dst_x, int dst_y, int src_x, int src_y, int mode);
int fbFill(int sx, int sy, int width, int height, fb_pixel_t col, int mode=0);
void SetDemux(cDemux *Demux);
static cVideo *GetDecoder(unsigned int Unit);
bool SyncSTC(void);