summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-09 18:58:25 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-09 18:58:25 +0000
commit1f6944f4cbe7f58038281a2ff0aaa8d521e21a09 (patch)
tree5f47da09e86f4415c8eee2a9a8df10bad5d8974c /vidix
parent9e2284fe3ea7ec48f1042e2f3356e59787109b4e (diff)
downloadmpv-1f6944f4cbe7f58038281a2ff0aaa8d521e21a09.tar.bz2
mpv-1f6944f4cbe7f58038281a2ff0aaa8d521e21a09.tar.xz
Minor interface changes: color and video keys are moved out from playback configuring
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4071 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/radeon_vid.c1
-rw-r--r--vidix/vidix.h25
-rw-r--r--vidix/vidixlib.c14
-rw-r--r--vidix/vidixlib.h6
4 files changed, 39 insertions, 7 deletions
diff --git a/vidix/drivers/radeon_vid.c b/vidix/drivers/radeon_vid.c
index a04040d251..065adbc3c8 100644
--- a/vidix/drivers/radeon_vid.c
+++ b/vidix/drivers/radeon_vid.c
@@ -672,6 +672,7 @@ int vixInit( void )
/* mem size is bits [28:0], mask off the rest. Range: from 1Mb up to 512 Mb */
radeon_ram_size &= CONFIG_MEMSIZE_MASK;
if((radeon_mem_base = map_phys_mem(pci_info.base0,radeon_ram_size))==(void *)-1) return ENOMEM;
+ memset(&besr,0,sizeof(bes_registers_t));
radeon_vid_make_default();
printf(RADEON_MSG" Video memory = %uMb\n",radeon_ram_size/0x100000);
return 0;
diff --git a/vidix/vidix.h b/vidix/vidix.h
index ac3a51df05..869ec84e84 100644
--- a/vidix/vidix.h
+++ b/vidix/vidix.h
@@ -137,13 +137,6 @@ typedef struct vidix_playback_s
unsigned blend_factor; /* app -> driver: blenfing factor */
vidix_rect_t src; /* app -> driver: original movie size */
vidix_rect_t dest; /* app -> driver: destinition movie size. driver->app dest_pitch */
- vidix_ckey_t ckey; /* app -> driver: color key */
- vidix_vkey_t vkey; /* app -> driver: video key */
-#define KEYS_PUT 0
-#define KEYS_AND 1
-#define KEYS_OR 2
-#define KEYS_XOR 3
- unsigned key_op; /* app -> driver: keys operations */
/* memory model */
unsigned frame_size; /* driver -> app; destinition frame size */
unsigned num_frames; /* app -> driver; after call: driver -> app */
@@ -165,6 +158,24 @@ extern int vixPlaybackOff( void );
/* Returns 0 if ok else errno */
extern int vixPlaybackFrameSelect( unsigned frame_idx );
+typedef struct vidix_grkey_s
+{
+ vidix_ckey_t ckey; /* app -> driver: color key */
+ vidix_vkey_t vkey; /* app -> driver: video key */
+#define KEYS_PUT 0
+#define KEYS_AND 1
+#define KEYS_OR 2
+#define KEYS_XOR 3
+ unsigned key_op; /* app -> driver: keys operations */
+}vidix_grkey_t;
+
+ /* Returns 0 if ok else errno */
+extern int vixGetGrKeys( vidix_grkey_t * );
+
+ /* Returns 0 if ok else errno */
+extern int vixSetGrKeys( const vidix_grkey_t * );
+
+
typedef struct vidix_video_eq_s
{
/* end-user app can have presets like: cold-normal-hot picture and so on */
diff --git a/vidix/vidixlib.c b/vidix/vidixlib.c
index f869fd09a0..5092921b25 100644
--- a/vidix/vidixlib.c
+++ b/vidix/vidixlib.c
@@ -43,6 +43,8 @@ typedef struct vdl_stream_s
int (*get_eq)( vidix_video_eq_t * );
int (*set_eq)( const vidix_video_eq_t * );
int (*copy_frame)( const vidix_dma_t * );
+ int (*get_gkey)( vidix_grkey_t * );
+ int (*set_gkey)( const vidix_grkey_t * );
}vdl_stream_t;
#define t_vdl(p) (((vdl_stream_t *)p))
@@ -64,6 +66,8 @@ static int vdl_fill_driver(VDL_HANDLE stream)
t_vdl(stream)->frame_sel = dlsym(t_vdl(stream)->handle,"vixPlaybackFrameSelect");
t_vdl(stream)->get_eq = dlsym(t_vdl(stream)->handle,"vixPlaybackGetEq");
t_vdl(stream)->set_eq = dlsym(t_vdl(stream)->handle,"vixPlaybackSetEq");
+ t_vdl(stream)->get_gkey = dlsym(t_vdl(stream)->handle,"vixGetGrKeys");
+ t_vdl(stream)->set_gkey = dlsym(t_vdl(stream)->handle,"vixSetGrKeys");
t_vdl(stream)->copy_frame = dlsym(t_vdl(stream)->handle,"vixPlaybackCopyFrame");
/* check driver viability */
if(!( t_vdl(stream)->get_caps && t_vdl(stream)->query_fourcc &&
@@ -250,3 +254,13 @@ int vdlPlaybackCopyFrame(VDL_HANDLE handle, const vidix_dma_t * f)
{
return t_vdl(handle)->copy_frame ? t_vdl(handle)->copy_frame(f) : ENOSYS;
}
+
+int vdlGetGrKeys(VDL_HANDLE handle, vidix_grkey_t * k)
+{
+ return t_vdl(handle)->get_gkey ? t_vdl(handle)->get_gkey(k) : ENOSYS;
+}
+
+int vdlSetGrKeys(VDL_HANDLE handle, const vidix_grkey_t * k)
+{
+ return t_vdl(handle)->set_gkey ? t_vdl(handle)->set_gkey(k) : ENOSYS;
+}
diff --git a/vidix/vidixlib.h b/vidix/vidixlib.h
index 4381fe5198..84dc3efd26 100644
--- a/vidix/vidixlib.h
+++ b/vidix/vidixlib.h
@@ -61,6 +61,12 @@ extern int vdlPlaybackOff(VDL_HANDLE);
extern int vdlPlaybackFrameSelect(VDL_HANDLE, unsigned frame_idx );
/* Returns 0 if ok else errno */
+extern int vdlGetGrKeys(VDL_HANDLE, vidix_grkey_t * );
+
+ /* Returns 0 if ok else errno */
+extern int vdlSetGrKeys(VDL_HANDLE, const vidix_grkey_t * );
+
+ /* Returns 0 if ok else errno */
extern int vdlPlaybackGetEq(VDL_HANDLE, vidix_video_eq_t * );
/* Returns 0 if ok else errno */