mirror of https://github.com/mpv-player/mpv
new info for tuning
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4434 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
ebdb9bffa3
commit
b587a3d642
|
@ -65,6 +65,12 @@ typedef struct vo_vaa_s
|
|||
int (*set_deint)(const vidix_deinterlace_t *info);
|
||||
}vo_vaa_t;
|
||||
|
||||
/* Misc info to tuneup vo driver */
|
||||
typedef struct vo_tune_info_s
|
||||
{
|
||||
int pitch[3]; /* Should be 0 if unknown else power of 2 */
|
||||
}vo_tune_info_t;
|
||||
|
||||
typedef struct vo_functions_s
|
||||
{
|
||||
/*
|
||||
|
@ -83,7 +89,9 @@ typedef struct vo_functions_s
|
|||
* format: fourcc of pixel format
|
||||
* returns : zero on successful initialization, non-zero on error.
|
||||
*/
|
||||
uint32_t (*init)(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format);
|
||||
uint32_t (*config)(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title,
|
||||
uint32_t format,const vo_tune_info_t *);
|
||||
|
||||
/*
|
||||
* Query that given pixel format is supported or not.
|
||||
|
|
|
@ -21,7 +21,9 @@
|
|||
*
|
||||
*/
|
||||
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format);
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title,
|
||||
uint32_t format,const vo_tune_info_t *);
|
||||
static const vo_info_t* get_info(void);
|
||||
static uint32_t draw_frame(uint8_t *src[]);
|
||||
static uint32_t draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y);
|
||||
|
@ -36,7 +38,7 @@ static void query_vaa(vo_vaa_t *);
|
|||
#define LIBVO_EXTERN(x) vo_functions_t video_out_##x =\
|
||||
{\
|
||||
preinit,\
|
||||
init,\
|
||||
config,\
|
||||
query_format,\
|
||||
get_info,\
|
||||
draw_frame,\
|
||||
|
|
|
@ -312,7 +312,7 @@ update_target(void)
|
|||
}
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
int fd;
|
||||
char *name = ":0.0";
|
||||
|
|
|
@ -205,9 +205,9 @@ printosdprogbar(){
|
|||
}
|
||||
}
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title,
|
||||
uint32_t format) {
|
||||
uint32_t format,const vo_tune_info_t *info) {
|
||||
/*
|
||||
* main init
|
||||
* called by mplayer
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
* - works only on x86 architectures
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.37 2002/01/26 16:01:26 nick
|
||||
* Extensions for video accelerated architecture
|
||||
* Revision 1.38 2002/01/31 09:52:45 nick
|
||||
* new info for tuning
|
||||
*
|
||||
* Revision 1.35 2001/12/28 20:52:54 alex
|
||||
* use XF86VidMode later in init (at line 1031) only if we've got support (if have_vm==1)
|
||||
|
@ -803,9 +803,9 @@ int check_res( int num, int x, int y, int bpp,
|
|||
|
||||
//---------------------------------------------------------
|
||||
|
||||
static uint32_t init( uint32_t width, uint32_t height,
|
||||
static uint32_t config( uint32_t width, uint32_t height,
|
||||
uint32_t d_width,uint32_t d_height,
|
||||
uint32_t flags,char *title,uint32_t format )
|
||||
uint32_t flags,char *title,uint32_t format,const vo_tune_info_t *info )
|
||||
{
|
||||
|
||||
int x_off, y_off;
|
||||
|
|
|
@ -326,9 +326,9 @@ static uint32_t preinit(const char *arg)
|
|||
}
|
||||
|
||||
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title,
|
||||
uint32_t format)
|
||||
uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
/*
|
||||
* (Locals)
|
||||
|
|
|
@ -96,7 +96,7 @@ void write_dxr3(rte_context *context, void *data, size_t size, void *user_data)
|
|||
}
|
||||
#endif
|
||||
|
||||
static uint32_t init(uint32_t scr_width, uint32_t scr_height, uint32_t width, uint32_t height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
static uint32_t config(uint32_t scr_width, uint32_t scr_height, uint32_t width, uint32_t height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
int tmp1, tmp2;
|
||||
em8300_register_t reg;
|
||||
|
|
|
@ -896,9 +896,9 @@ static void vt_set_textarea(int u, int l)
|
|||
fflush(vt_fp);
|
||||
}
|
||||
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title,
|
||||
uint32_t format)
|
||||
uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
struct fb_cmap *cmap;
|
||||
int vm = fullscreen & 0x02;
|
||||
|
|
|
@ -307,9 +307,9 @@ uninit(void)
|
|||
|
||||
|
||||
|
||||
static uint32_t init( uint32_t width, uint32_t height,
|
||||
static uint32_t config( uint32_t width, uint32_t height,
|
||||
uint32_t d_width,uint32_t d_height,
|
||||
uint32_t fullscreen,char *title,uint32_t format )
|
||||
uint32_t fullscreen,char *title,uint32_t format,const vo_tune_info_t *info )
|
||||
{
|
||||
|
||||
int bank, ram;
|
||||
|
|
|
@ -235,8 +235,8 @@ static ggi_aspect_ret aspect_size(int srcw, int srch, int dstw, int dsth)
|
|||
return(ret);
|
||||
}
|
||||
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
vo_depthonscreen = 32;
|
||||
printf("ggi-init: This driver has got bugs, if you can, fix them.\n");
|
||||
|
|
|
@ -96,7 +96,7 @@ static void resize(int x,int y){
|
|||
* allocate colors and (shared) memory
|
||||
*/
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format)
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
// int screen;
|
||||
unsigned int fg, bg;
|
||||
|
|
|
@ -602,7 +602,7 @@ static void draw_alpha_null(int x0,int y0, int w,int h, unsigned char* src, unsi
|
|||
* allocate colors and (shared) memory
|
||||
*/
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
// int screen;
|
||||
unsigned int fg, bg;
|
||||
|
|
|
@ -37,10 +37,10 @@ extern char vo_pgm_filename[24];
|
|||
static FILE * md5_file;
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
md5_file = fopen ("md5", "w");
|
||||
return video_out_pgm.init (width, height, d_width,d_height,fullscreen, title, format);
|
||||
return video_out_pgm.config (width, height, d_width,d_height,fullscreen, title, format,info);
|
||||
}
|
||||
|
||||
static const vo_info_t*
|
||||
|
|
|
@ -55,7 +55,7 @@ static vo_info_t vo_info =
|
|||
#include "mga_common.c"
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
char *devname=vo_subdevice?vo_subdevice:"/dev/mga_vid";
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ static vo_info_t vo_info =
|
|||
};
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t s_width, uint32_t s_height, uint32_t width, uint32_t height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
config(uint32_t s_width, uint32_t s_height, uint32_t width, uint32_t height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
#ifdef HAVE_DVB
|
||||
//|O_NONBLOCK
|
||||
|
|
|
@ -67,7 +67,7 @@ query_format(uint32_t format)
|
|||
}
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
image_width = width;
|
||||
image_height = height;
|
||||
|
|
|
@ -199,7 +199,7 @@ query_format(uint32_t format)
|
|||
extern int encode_bitrate;
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
uint32_t frame_size;
|
||||
ENC_PARAM enc_param;
|
||||
|
|
|
@ -41,7 +41,7 @@ static uint8_t *image=NULL;
|
|||
char vo_pgm_filename[24];
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
image_height = height;
|
||||
image_width = width;
|
||||
|
|
|
@ -63,7 +63,7 @@ static void draw_alpha(int x0,int y0, int w,int h, unsigned char* src, unsigned
|
|||
}
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
if (fullscreen&0x04 && (width != d_width || height != d_height) &&
|
||||
((format==IMGFMT_YV12) /*|| (format == IMGFMT_I420) || (format == IMGFMT_IYUV)*/)) {
|
||||
|
|
|
@ -609,7 +609,7 @@ static void set_fullmode (int mode) {
|
|||
**/
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
//static int sdl_setup (int width, int height)
|
||||
{
|
||||
struct sdl_priv_s *priv = &sdl_priv;
|
||||
|
|
|
@ -121,9 +121,9 @@ static int checksupportedmodes() {
|
|||
return(0);
|
||||
}
|
||||
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title,
|
||||
uint32_t format) {
|
||||
uint32_t format,const vo_tune_info_t *info) {
|
||||
uint32_t req_w = (d_width > 0 ? d_width : width);
|
||||
uint32_t req_h = (d_height > 0 ? d_height : height);
|
||||
uint16_t vid_mode = 0;
|
||||
|
|
|
@ -60,7 +60,7 @@ static int vo_conf_deinterlace = 0;
|
|||
static int vo_conf_cinemode = 0;
|
||||
|
||||
|
||||
static syncfb_config_t config;
|
||||
static syncfb_config_t _config;
|
||||
static syncfb_capability_t sfb_caps;
|
||||
|
||||
static syncfb_buffer_info_t bufinfo;
|
||||
|
@ -90,26 +90,26 @@ write_frame_YUV422(uint_8 *y,uint_8 *cr, uint_8 *cb)
|
|||
uint_32 bespitch,h,w;
|
||||
|
||||
|
||||
bespitch = config.src_pitch;
|
||||
bespitch = _config.src_pitch;
|
||||
dest32 = (uint_32 *)vid_data;
|
||||
|
||||
for(h=0; h < config.src_height/2; h++)
|
||||
for(h=0; h < _config.src_height/2; h++)
|
||||
{
|
||||
cbp = cb;
|
||||
crp = cr;
|
||||
for(w=0; w < config.src_width/2; w++)
|
||||
for(w=0; w < _config.src_width/2; w++)
|
||||
{
|
||||
*dest32++ = (*y) + ((*cr)<<8) + ((*(y+1))<<16) + ((*cb)<<24);
|
||||
y++; y++; cb++; cr++;
|
||||
}
|
||||
dest32 += (bespitch - config.src_width) / 2;
|
||||
dest32 += (bespitch - _config.src_width) / 2;
|
||||
|
||||
for(w=0; w < config.src_width/2; w++)
|
||||
for(w=0; w < _config.src_width/2; w++)
|
||||
{
|
||||
*dest32++ = (*y) + ((*crp)<<8) + ((*(y+1))<<16) + ((*cbp)<<24);
|
||||
y++; y++; cbp++; crp++;
|
||||
}
|
||||
dest32 += (bespitch - config.src_width) / 2;
|
||||
dest32 += (bespitch - _config.src_width) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -120,21 +120,21 @@ write_frame_YUV420P2(uint_8 *y,uint_8 *cr, uint_8 *cb)
|
|||
uint_8 *dest, *tmp;
|
||||
uint_32 bespitch,h,w;
|
||||
|
||||
bespitch = config.src_pitch;
|
||||
bespitch = _config.src_pitch;
|
||||
dest = frame_mem + bufinfo.offset;
|
||||
|
||||
for(h=0; h < config.src_height; h++)
|
||||
for(h=0; h < _config.src_height; h++)
|
||||
{
|
||||
memcpy(dest, y, config.src_width);
|
||||
y += config.src_width;
|
||||
memcpy(dest, y, _config.src_width);
|
||||
y += _config.src_width;
|
||||
dest += bespitch;
|
||||
}
|
||||
|
||||
dest = frame_mem + bufinfo.offset_p2;
|
||||
for(h=0; h < config.src_height/2; h++)
|
||||
for(h=0; h < _config.src_height/2; h++)
|
||||
{
|
||||
tmp = dest;
|
||||
for(w=0; w < config.src_width/2; w++)
|
||||
for(w=0; w < _config.src_width/2; w++)
|
||||
{
|
||||
*tmp++ = *cr++;
|
||||
*tmp++ = *cb++;
|
||||
|
@ -154,13 +154,13 @@ write_slice_YUV420P2(uint_8 *y,uint_8 *cr, uint_8 *cb,uint_32 slice_num)
|
|||
uint_8 *dest, *tmp;
|
||||
uint_32 bespitch,h,w;
|
||||
|
||||
bespitch = config.src_pitch;
|
||||
bespitch = _config.src_pitch;
|
||||
dest = frame_mem + bufinfo.offset + (bespitch * 16 * slice_num);
|
||||
|
||||
for(h=0; h < 16; h++)
|
||||
{
|
||||
memcpy(dest, y, config.src_width);
|
||||
y += config.src_width;
|
||||
memcpy(dest, y, _config.src_width);
|
||||
y += _config.src_width;
|
||||
dest += bespitch;
|
||||
}
|
||||
|
||||
|
@ -168,7 +168,7 @@ write_slice_YUV420P2(uint_8 *y,uint_8 *cr, uint_8 *cb,uint_32 slice_num)
|
|||
for(h=0; h < 8; h++)
|
||||
{
|
||||
tmp = dest;
|
||||
for(w=0; w < config.src_width/2; w++)
|
||||
for(w=0; w < _config.src_width/2; w++)
|
||||
{
|
||||
*tmp++ = *cr++;
|
||||
*tmp++ = *cb++;
|
||||
|
@ -183,7 +183,7 @@ write_slice_YUV420P3(uint_8 *y,uint_8 *cr, uint_8 *cb,int stride[],uint_32 ypos,
|
|||
uint_8 *dest;
|
||||
uint_32 bespitch,h;
|
||||
|
||||
bespitch = config.src_pitch;
|
||||
bespitch = _config.src_pitch;
|
||||
|
||||
dest = frame_mem + bufinfo.offset + (bespitch * ypos);
|
||||
for(h=0; h < ysize; h++)
|
||||
|
@ -224,26 +224,26 @@ write_slice_YUV422(uint_8 *y,uint_8 *cr, uint_8 *cb,uint_32 slice_num)
|
|||
uint_32 bespitch,h,w;
|
||||
|
||||
|
||||
bespitch = config.src_pitch;
|
||||
bespitch = _config.src_pitch;
|
||||
dest32 = (uint_32 *)(vid_data + (bespitch * 16 * slice_num) * 2);
|
||||
|
||||
for(h=0; h < 8; h++)
|
||||
{
|
||||
cbp = cb;
|
||||
crp = cr;
|
||||
for(w=0; w < config.src_width/2; w++)
|
||||
for(w=0; w < _config.src_width/2; w++)
|
||||
{
|
||||
*dest32++ = (*y) + ((*cr)<<8) + ((*(y+1))<<16) + ((*cb)<<24);
|
||||
y++; y++; cb++; cr++;
|
||||
}
|
||||
dest32 += (bespitch - config.src_width) / 2;
|
||||
dest32 += (bespitch - _config.src_width) / 2;
|
||||
|
||||
for(w=0; w < config.src_width/2; w++)
|
||||
for(w=0; w < _config.src_width/2; w++)
|
||||
{
|
||||
*dest32++ = (*y) + ((*crp)<<8) + ((*(y+1))<<16) + ((*cbp)<<24);
|
||||
y++; y++; cbp++; crp++;
|
||||
}
|
||||
dest32 += (bespitch - config.src_width) / 2;
|
||||
dest32 += (bespitch - _config.src_width) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -280,7 +280,7 @@ static void
|
|||
flip_page(void)
|
||||
{
|
||||
|
||||
// memset(frame_mem + bufinfo.offset_p2, 0x80, config.src_width*config.src_height);
|
||||
// memset(frame_mem + bufinfo.offset_p2, 0x80, _config.src_width*config.src_height);
|
||||
ioctl(f,SYNCFB_COMMIT_BUFFER,&bufinfo);
|
||||
|
||||
if ( dbg_singleframe ) {
|
||||
|
@ -346,7 +346,7 @@ query_format(uint32_t format)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
uint_32 frame_size;
|
||||
|
||||
|
@ -366,54 +366,54 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t
|
|||
if (ioctl(f,SYNCFB_GET_CONFIG,&config)) perror("Error in mga_vid_config ioctl");
|
||||
|
||||
if (sfb_caps.palettes & (1<<VIDEO_PALETTE_YUV420P3) ) {
|
||||
config.src_palette= VIDEO_PALETTE_YUV420P3;
|
||||
_config.src_palette= VIDEO_PALETTE_YUV420P3;
|
||||
printf("using palette yuv420p3\n");
|
||||
}else if ( sfb_caps.palettes & (1<<VIDEO_PALETTE_YUV420P2) ) {
|
||||
config.src_palette= VIDEO_PALETTE_YUV420P2;
|
||||
_config.src_palette= VIDEO_PALETTE_YUV420P2;
|
||||
printf("using palette yuv420p2\n");
|
||||
} else if ( sfb_caps.palettes & (1<<VIDEO_PALETTE_YUV422) ) {
|
||||
config.src_palette= VIDEO_PALETTE_YUV422;
|
||||
_config.src_palette= VIDEO_PALETTE_YUV422;
|
||||
printf("using palette yuv422\n");
|
||||
} else {
|
||||
printf("no supported palette found\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// config.src_palette= VIDEO_PALETTE_YUV422;
|
||||
// _config.src_palette= VIDEO_PALETTE_YUV422;
|
||||
|
||||
if ( vo_conf_cinemode ) {
|
||||
config.default_repeat = 3;
|
||||
_config.default_repeat = 3;
|
||||
} else {
|
||||
config.default_repeat = 2;
|
||||
_config.default_repeat = 2;
|
||||
}
|
||||
|
||||
conf_palette = config.src_palette;
|
||||
conf_palette = _config.src_palette;
|
||||
if ( vo_conf_deinterlace ) {
|
||||
config.syncfb_mode = SYNCFB_FEATURE_SCALE | SYNCFB_FEATURE_BLOCK_REQUEST | SYNCFB_FEATURE_DEINTERLACE;
|
||||
config.default_repeat = 1;
|
||||
_config.syncfb_mode = SYNCFB_FEATURE_SCALE | SYNCFB_FEATURE_BLOCK_REQUEST | SYNCFB_FEATURE_DEINTERLACE;
|
||||
_config.default_repeat = 1;
|
||||
} else {
|
||||
config.syncfb_mode = SYNCFB_FEATURE_SCALE | SYNCFB_FEATURE_BLOCK_REQUEST;
|
||||
_config.syncfb_mode = SYNCFB_FEATURE_SCALE | SYNCFB_FEATURE_BLOCK_REQUEST;
|
||||
}
|
||||
|
||||
config.fb_screen_size = (RAM_SIZE-4)*0x100000; //(1280 * 1024 * 32) / 8;
|
||||
config.src_width = width;
|
||||
config.src_height= height;
|
||||
_config.fb_screen_size = (RAM_SIZE-4)*0x100000; //(1280 * 1024 * 32) / 8;
|
||||
_config.src_width = width;
|
||||
_config.src_height= height;
|
||||
|
||||
config.image_width = d_width;
|
||||
config.image_height= d_height;
|
||||
//config.image_width = 1024;
|
||||
//config.image_height= 576;
|
||||
_config.image_width = d_width;
|
||||
_config.image_height= d_height;
|
||||
//_config.image_width = 1024;
|
||||
//_config.image_height= 576;
|
||||
|
||||
config.image_xorg= 0;
|
||||
config.image_yorg= 0;
|
||||
_config.image_xorg= 0;
|
||||
_config.image_yorg= 0;
|
||||
|
||||
|
||||
printf ("BES Sourcer size: %d x %d\n", width, height);
|
||||
|
||||
ioctl(f,SYNCFB_ON,0);
|
||||
if (ioctl(f,SYNCFB_SET_CONFIG,&config)) perror("Error in mga_vid_config ioctl");
|
||||
if (ioctl(f,SYNCFB_SET_CONFIG,&_config)) perror("Error in mga_vid_config ioctl");
|
||||
|
||||
printf ("Framebuffer memory: %ld in %ld buffers\n", sfb_caps.memory_size, config.buffers);
|
||||
printf ("Framebuffer memory: %ld in %ld buffers\n", sfb_caps.memory_size, _config.buffers);
|
||||
|
||||
frame_size = ((width + 31) & ~31) * height + (((width + 31) & ~31) * height) / 2;
|
||||
frame_mem = (uint_8*)mmap(0,sfb_caps.memory_size,PROT_WRITE,MAP_SHARED,f,0);
|
||||
|
|
|
@ -298,8 +298,8 @@ extern void **our_out_buffer;
|
|||
#endif
|
||||
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,
|
||||
uint32_t fullscreen, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,
|
||||
uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
|
||||
if (verbose) {
|
||||
|
|
|
@ -542,7 +542,7 @@ unsigned fillMultiBuffer( unsigned long vsize, unsigned nbuffs )
|
|||
* bit 3 (0x08) enables flipping (-flip) (NK: and for what?)
|
||||
*/
|
||||
static uint32_t
|
||||
init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format)
|
||||
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
struct VbeInfoBlock vib;
|
||||
struct VesaModeInfoBlock vmib;
|
||||
|
|
|
@ -237,7 +237,7 @@ static void freeMyXImage()
|
|||
}
|
||||
}
|
||||
|
||||
static uint32_t init( uint32_t width,uint32_t height,uint32_t d_width,uint32_t d_height,uint32_t flags,char *title,uint32_t format )
|
||||
static uint32_t config( uint32_t width,uint32_t height,uint32_t d_width,uint32_t d_height,uint32_t flags,char *title,uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
// int screen;
|
||||
int fullscreen=0;
|
||||
|
|
|
@ -200,7 +200,7 @@ static void flip_page(void){
|
|||
vo_mga_flip_page();
|
||||
}
|
||||
|
||||
static uint32_t init( uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format )
|
||||
static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t* info)
|
||||
{
|
||||
char * frame_mem;
|
||||
// uint32_t frame_size;
|
||||
|
|
|
@ -309,7 +309,7 @@ static void set_gamma_correction( void )
|
|||
* connect to server, create and map window,
|
||||
* allocate colors and (shared) memory
|
||||
*/
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format)
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
// int screen;
|
||||
char *hello = (title == NULL) ? "Xv render" : title;
|
||||
|
|
|
@ -183,8 +183,8 @@ static void set_window(int force_update)
|
|||
/* connect to server, create and map window,
|
||||
* allocate colors and (shared) memory
|
||||
*/
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t flags, char *title, uint32_t format)
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t flags, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
XVisualInfo vinfo;
|
||||
XSizeHints hint;
|
||||
|
|
|
@ -194,8 +194,8 @@ void uninit_zoran(void) {
|
|||
close(vdes);
|
||||
}
|
||||
|
||||
static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
|
||||
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
|
||||
uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info)
|
||||
{
|
||||
int j, stretchx, stretchy;
|
||||
/* this allows to crop parts from incoming picture,
|
||||
|
|
|
@ -1346,10 +1346,10 @@ current_module="init_libvo";
|
|||
sh_video->disp_w,sh_video->disp_h,out_fmt,0,
|
||||
fullscreen|(vidmode<<1)|(softzoom<<2)|(flip<<3) )){
|
||||
#else
|
||||
if(video_out->init(sh_video->disp_w,sh_video->disp_h,
|
||||
if(video_out->config(sh_video->disp_w,sh_video->disp_h,
|
||||
screen_size_x,screen_size_y,
|
||||
fullscreen|(vidmode<<1)|(softzoom<<2)|(flip<<3),
|
||||
title,out_fmt)){
|
||||
title,out_fmt,NULL)){
|
||||
#endif
|
||||
mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_CannotInitVO);
|
||||
goto goto_next_file; // exit_player(MSGTR_Exit_error);
|
||||
|
|
12
tvision.c
12
tvision.c
|
@ -109,10 +109,12 @@ unsigned int stride2[3];
|
|||
gb2.width = gb1.width;
|
||||
gb2.height = gb1.height;
|
||||
|
||||
video_out->init(gb1.width,gb1.height,1024,768,0,0,IMGFMT_YV12);
|
||||
// video_out->init(gb1.width,gb1.height,1024,768,0,0,IMGFMT_UYVY);
|
||||
// video_out->init(gb1.width,gb1.height,1024,768,0,0,IMGFMT_YUY2);
|
||||
// video_out->init(gb1.width,gb1.height,1024,768,0,0,IMGFMT_RGB|24);
|
||||
// video_out->preinit() LOST here ?
|
||||
|
||||
video_out->config(gb1.width,gb1.height,1024,768,0,0,IMGFMT_YV12,NULL);
|
||||
// video_out->config(gb1.width,gb1.height,1024,768,0,0,IMGFMT_UYVY,NULL);
|
||||
// video_out->config(gb1.width,gb1.height,1024,768,0,0,IMGFMT_YUY2,NULL);
|
||||
// video_out->config(gb1.width,gb1.height,1024,768,0,0,IMGFMT_RGB|24,NULL);
|
||||
|
||||
tmpframe=malloc(gb1.width*gb1.height*3/2);
|
||||
stride[0]=(gb1.width+15)&(~15);
|
||||
|
@ -178,7 +180,7 @@ unsigned int stride2[3];
|
|||
fwrite(map,320*240*2,1,f);
|
||||
fclose(f);
|
||||
}
|
||||
video_out->init(320,240,800,600,0,0,IMGFMT_YUY2);
|
||||
video_out->config(320,240,800,600,0,0,IMGFMT_YUY2,NULL);
|
||||
video_out->draw_frame(count?map1:map2);
|
||||
video_out->flip_page();
|
||||
|
||||
|
|
Loading…
Reference in New Issue