mirror of
https://github.com/mpv-player/mpv
synced 2025-03-25 04:38:01 +00:00
Embedding vidix
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4031 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
cb6aa3b4a8
commit
75c0b3169b
21
Makefile
21
Makefile
@ -13,6 +13,9 @@ PRG_FIBMAP = fibmap_mplayer
|
|||||||
PRG_TV = tvision
|
PRG_TV = tvision
|
||||||
PRG_CFG = codec-cfg
|
PRG_CFG = codec-cfg
|
||||||
PRG_MENCODER = mencoder
|
PRG_MENCODER = mencoder
|
||||||
|
# these subdirectories required installation due binaries within them
|
||||||
|
SUBDIRS = libdha vidix
|
||||||
|
DO_MAKE = @ for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done
|
||||||
|
|
||||||
#prefix = /usr/local
|
#prefix = /usr/local
|
||||||
BINDIR = ${prefix}/bin
|
BINDIR = ${prefix}/bin
|
||||||
@ -42,11 +45,12 @@ AO_LIBS = -Llibao2 -lao2
|
|||||||
A_LIBS = $(ALSA_LIB) $(NAS_LIB) $(MAD_LIB) $(VORBIS_LIB) $(SGIAUDIO_LIB)
|
A_LIBS = $(ALSA_LIB) $(NAS_LIB) $(MAD_LIB) $(VORBIS_LIB) $(SGIAUDIO_LIB)
|
||||||
|
|
||||||
CODEC_LIBS = -Lg72x -lg72x -Lmp3lib -lMP3 -Llibac3 -lac3 -Lliba52 -la52 -Lxa -lxa -Llibmpeg2 -lmpeg2 $(AV_LIB)
|
CODEC_LIBS = -Lg72x -lg72x -Lmp3lib -lMP3 -Llibac3 -lac3 -Lliba52 -la52 -Lxa -lxa -Llibmpeg2 -lmpeg2 $(AV_LIB)
|
||||||
COMMON_LIBS = -Llinux -losdep -Lpostproc -lpostproc
|
COMMON_LIBS = -Llinux -losdep -Lpostproc -lpostproc -Lvidix -lvidix
|
||||||
|
MISC_LIBS = -Llibdha -ldha
|
||||||
|
|
||||||
CFLAGS = $(OPTFLAGS) -Ilibmpdemux -Iloader $(VO_INC) $(EXTRA_INC) # -Wall
|
CFLAGS = $(OPTFLAGS) -Ilibmpdemux -Iloader $(VO_INC) $(EXTRA_INC) # -Wall
|
||||||
|
|
||||||
PARTS = g72x libmpdemux mp3lib libac3 liba52 libmp1e libmpeg2 opendivx libavcodec libao2 drivers drivers/syncfb linux postproc xa
|
PARTS = g72x libmpdemux mp3lib libac3 liba52 libmp1e libmpeg2 opendivx libavcodec libao2 drivers drivers/syncfb linux postproc xa libdha vidix
|
||||||
ifeq ($(VO2),yes)
|
ifeq ($(VO2),yes)
|
||||||
PARTS += libvo2
|
PARTS += libvo2
|
||||||
else
|
else
|
||||||
@ -85,7 +89,7 @@ all: $(ALL_PRG)
|
|||||||
.c.o:
|
.c.o:
|
||||||
$(CC) -c $(CFLAGS) -o $@ $<
|
$(CC) -c $(CFLAGS) -o $@ $<
|
||||||
|
|
||||||
COMMON_DEPS = g72x/libg72x.a libmpdemux/libmpdemux.a libao2/libao2.a libac3/libac3.a liba52/liba52.a mp3lib/libMP3.a libmpeg2/libmpeg2.a opendivx/libdecore.a linux/libosdep.a postproc/libpostproc.a xa/libxa.a
|
COMMON_DEPS = g72x/libg72x.a libmpdemux/libmpdemux.a libao2/libao2.a libac3/libac3.a liba52/liba52.a mp3lib/libMP3.a libmpeg2/libmpeg2.a opendivx/libdecore.a linux/libosdep.a postproc/libpostproc.a libdha/libdha.so vidix/libvidix.a xa/libxa.a
|
||||||
|
|
||||||
ifeq ($(VO2),yes)
|
ifeq ($(VO2),yes)
|
||||||
COMMON_DEPS += libvo2/libvo2.a
|
COMMON_DEPS += libvo2/libvo2.a
|
||||||
@ -135,6 +139,12 @@ mp3lib/libMP3.a:
|
|||||||
opendivx/libdecore.a:
|
opendivx/libdecore.a:
|
||||||
$(MAKE) -C opendivx
|
$(MAKE) -C opendivx
|
||||||
|
|
||||||
|
libdha/libdha.so:
|
||||||
|
$(MAKE) -C libdha
|
||||||
|
|
||||||
|
vidix/libvidix.a:
|
||||||
|
$(MAKE) -C vidix
|
||||||
|
|
||||||
# encore/libencore.a:
|
# encore/libencore.a:
|
||||||
# $(MAKE) -C encore
|
# $(MAKE) -C encore
|
||||||
|
|
||||||
@ -162,8 +172,10 @@ MENCODER_DEP += Gui/libgui.a
|
|||||||
GUI_LIBS = -LGui -lgui
|
GUI_LIBS = -LGui -lgui
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
VIDIX_LIBS = -Lvidix -lvidix
|
||||||
|
|
||||||
$(PRG): $(MPLAYER_DEP)
|
$(PRG): $(MPLAYER_DEP)
|
||||||
$(CC) $(CFLAGS) -o $(PRG) $(OBJS_MPLAYER) $(CODEC_LIBS) -Llibmpdemux -lmpdemux $(VO_LIBS) $(AO_LIBS) $(LIB_LOADER) $(GUI_LIBS) $(COMMON_LIBS) $(EXTRA_LIB) $(A_LIBS) $(V_LIBS) $(LIRC_LIB) $(CSS_LIB) $(ARCH_LIB) $(DECORE_LIB) $(TERMCAP_LIB) $(STATIC_LIB) $(GTK_LIBS) $(PNG_LIB) $(Z_LIB) $(STREAMING_LIB) -lm
|
$(CC) $(CFLAGS) -o $(PRG) $(OBJS_MPLAYER) $(CODEC_LIBS) -Llibmpdemux -lmpdemux $(VO_LIBS) $(AO_LIBS) $(LIB_LOADER) $(GUI_LIBS) $(COMMON_LIBS) $(EXTRA_LIB) $(A_LIBS) $(V_LIBS) $(LIRC_LIB) $(CSS_LIB) $(ARCH_LIB) $(DECORE_LIB) $(TERMCAP_LIB) $(STATIC_LIB) $(GTK_LIBS) $(PNG_LIB) $(Z_LIB) $(STREAMING_LIB) $(VIDIX_LIBS) -lm
|
||||||
|
|
||||||
$(PRG_FIBMAP): fibmap_mplayer.o
|
$(PRG_FIBMAP): fibmap_mplayer.o
|
||||||
$(CC) -o $(PRG_FIBMAP) fibmap_mplayer.o
|
$(CC) -o $(PRG_FIBMAP) fibmap_mplayer.o
|
||||||
@ -185,6 +197,7 @@ $(PRG_CFG): version.h codec-cfg.c codec-cfg.h
|
|||||||
$(CC) $(CFLAGS) -g codec-cfg.c -o $(PRG_CFG) -DCODECS2HTML
|
$(CC) $(CFLAGS) -g codec-cfg.c -o $(PRG_CFG) -DCODECS2HTML
|
||||||
|
|
||||||
install: $(ALL_PRG)
|
install: $(ALL_PRG)
|
||||||
|
$(DO_MAKE)
|
||||||
if test ! -d $(BINDIR) ; then mkdir -p $(BINDIR) ; fi
|
if test ! -d $(BINDIR) ; then mkdir -p $(BINDIR) ; fi
|
||||||
$(INSTALL) -m 755 -s $(PRG) $(BINDIR)/$(PRG)
|
$(INSTALL) -m 755 -s $(PRG) $(BINDIR)/$(PRG)
|
||||||
ifeq ($(GUI),yes)
|
ifeq ($(GUI),yes)
|
||||||
|
@ -41,7 +41,7 @@ depend:
|
|||||||
|
|
||||||
install:
|
install:
|
||||||
cp $(LIBNAME) $(prefix)/lib/$(LIBNAME)
|
cp $(LIBNAME) $(prefix)/lib/$(LIBNAME)
|
||||||
rm $(prefix)/lib/libdha.so
|
rm -f $(prefix)/lib/libdha.so
|
||||||
ln -sf $(LIBNAME) $(prefix)/lib/libdha.so
|
ln -sf $(LIBNAME) $(prefix)/lib/libdha.so
|
||||||
ldconfig
|
ldconfig
|
||||||
|
|
||||||
|
@ -3,10 +3,10 @@ include config.mak
|
|||||||
|
|
||||||
LIBNAME = libvo.a
|
LIBNAME = libvo.a
|
||||||
|
|
||||||
SRCS=aspect.c aclib.c osd.c font_load.c video_out.c vo_null.c vo_pgm.c vo_md5.c vo_mpegpes.c x11_common.c $(OPTIONAL_SRCS) img_format.c
|
SRCS=aspect.c aclib.c osd.c font_load.c video_out.c vo_null.c vo_pgm.c vo_md5.c vo_mpegpes.c x11_common.c $(OPTIONAL_SRCS) img_format.c vosub_vidix.c
|
||||||
OBJS=$(SRCS:.c=.o)
|
OBJS=$(SRCS:.c=.o)
|
||||||
|
|
||||||
CFLAGS = $(OPTFLAGS) -I. -I.. $(SDL_INC) $(X11_INC) $(EXTRA_INC) $(DVB_INC) -DMPG12PLAY #-Wall
|
CFLAGS = $(OPTFLAGS) -I. -I.. $(SDL_INC) $(X11_INC) $(EXTRA_INC) $(DVB_INC) -DMPG12PLAY -DVIDIX_PATH='"$(prefix)/lib/mplayer/vidix/"' #-Wall
|
||||||
# -I/usr/X11R6/include/
|
# -I/usr/X11R6/include/
|
||||||
|
|
||||||
.SUFFIXES: .c .o
|
.SUFFIXES: .c .o
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include "bswap.h"
|
#include "bswap.h"
|
||||||
#include "aspect.h"
|
#include "aspect.h"
|
||||||
#include "vesa_lvo.h"
|
#include "vesa_lvo.h"
|
||||||
|
#include "vosub_vidix.h"
|
||||||
|
|
||||||
#include "../postproc/swscale.h"
|
#include "../postproc/swscale.h"
|
||||||
#include "../postproc/rgb2rgb.h"
|
#include "../postproc/rgb2rgb.h"
|
||||||
@ -99,6 +100,7 @@ uint8_t multi_idx=0; /* active buffer */
|
|||||||
|
|
||||||
/* Linux Video Overlay */
|
/* Linux Video Overlay */
|
||||||
static const char *lvo_name = NULL;
|
static const char *lvo_name = NULL;
|
||||||
|
static const char *vidix_name = NULL;
|
||||||
static int pre_init_err = 0;
|
static int pre_init_err = 0;
|
||||||
|
|
||||||
#define HAS_DGA() (win.idx == -1)
|
#define HAS_DGA() (win.idx == -1)
|
||||||
@ -133,6 +135,7 @@ static void vesa_term( void )
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
if(lvo_name) vlvo_term();
|
if(lvo_name) vlvo_term();
|
||||||
|
else if(vidix_name) vidix_term();
|
||||||
if((err=vbeRestoreState(init_state)) != VBE_OK) PRINT_VBE_ERR("vbeRestoreState",err);
|
if((err=vbeRestoreState(init_state)) != VBE_OK) PRINT_VBE_ERR("vbeRestoreState",err);
|
||||||
if((err=vbeSetMode(init_mode,NULL)) != VBE_OK) PRINT_VBE_ERR("vbeSetMode",err);
|
if((err=vbeSetMode(init_mode,NULL)) != VBE_OK) PRINT_VBE_ERR("vbeSetMode",err);
|
||||||
if(HAS_DGA()) vbeUnmapVideoBuffer((unsigned long)win.ptr,win.high);
|
if(HAS_DGA()) vbeUnmapVideoBuffer((unsigned long)win.ptr,win.high);
|
||||||
@ -330,7 +333,7 @@ static void flip_page(void)
|
|||||||
if(!HAS_DGA()) __vbeCopyData(dga_buffer);
|
if(!HAS_DGA()) __vbeCopyData(dga_buffer);
|
||||||
flip_trigger = 0;
|
flip_trigger = 0;
|
||||||
}
|
}
|
||||||
if(vo_doublebuffering && multi_size > 1 && !lvo_name)
|
if(vo_doublebuffering && multi_size > 1 && !lvo_name && !vidix_name)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
if((err=vbeSetDisplayStart(multi_buff[multi_idx],1)) != VBE_OK)
|
if((err=vbeSetDisplayStart(multi_buff[multi_idx],1)) != VBE_OK)
|
||||||
@ -388,7 +391,7 @@ static uint32_t draw_frame(uint8_t *src[])
|
|||||||
if(verbose > 2)
|
if(verbose > 2)
|
||||||
printf("vo_vesa: rgb2rgb_fnc was called\n");
|
printf("vo_vesa: rgb2rgb_fnc was called\n");
|
||||||
}
|
}
|
||||||
if((!rgb2rgb_fnc || !HAS_DGA()) && !lvo_name) __vbeCopyData(data);
|
if((!rgb2rgb_fnc || !HAS_DGA()) && !lvo_name && !vidix_name) __vbeCopyData(data);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -403,7 +406,9 @@ static uint32_t parseSubDevice(const char *sd)
|
|||||||
if(strcmp(sd,"dga") == 0) { flags &= ~(SUBDEV_NODGA); flags |= SUBDEV_FORCEDGA; }
|
if(strcmp(sd,"dga") == 0) { flags &= ~(SUBDEV_NODGA); flags |= SUBDEV_FORCEDGA; }
|
||||||
else
|
else
|
||||||
if(memcmp(sd,"lvo:",4) == 0) lvo_name = &sd[4]; /* lvo_name will be valid within init() */
|
if(memcmp(sd,"lvo:",4) == 0) lvo_name = &sd[4]; /* lvo_name will be valid within init() */
|
||||||
else { printf("vo_vesa: Unknown subdevice: %s\n", sd); return -1; }
|
else
|
||||||
|
if(memcmp(sd,"vidix",5) == 0) vidix_name = &sd[5]; /* vidix_name will be valid within init() */
|
||||||
|
else { printf("vo_vesa: Unknown subdevice: '%s'\n", sd); return -1; }
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,11 +424,16 @@ static uint32_t query_format(uint32_t format)
|
|||||||
printf("vo_vesa: subdevice %s have been initialized\n",vo_subdevice);
|
printf("vo_vesa: subdevice %s have been initialized\n",vo_subdevice);
|
||||||
if(vo_subdevice) parseSubDevice(vo_subdevice);
|
if(vo_subdevice) parseSubDevice(vo_subdevice);
|
||||||
if(lvo_name) pre_init_err = vlvo_preinit(lvo_name);
|
if(lvo_name) pre_init_err = vlvo_preinit(lvo_name);
|
||||||
|
else if(vidix_name) pre_init_err = vidix_preinit(vidix_name);
|
||||||
if(verbose > 2)
|
if(verbose > 2)
|
||||||
printf("vo_subdevice: initialization returns: %i\n",pre_init_err);
|
printf("vo_subdevice: initialization returns: %i\n",pre_init_err);
|
||||||
first = 0;
|
first = 0;
|
||||||
}
|
}
|
||||||
if(!pre_init_err && lvo_name) return vlvo_query_info(format);
|
if(!pre_init_err)
|
||||||
|
{
|
||||||
|
if(lvo_name) return vlvo_query_info(format);
|
||||||
|
else if(vidix_name) return vidix_query_fourcc(format);
|
||||||
|
}
|
||||||
switch(format)
|
switch(format)
|
||||||
{
|
{
|
||||||
case IMGFMT_YV12:
|
case IMGFMT_YV12:
|
||||||
@ -706,7 +716,7 @@ init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint3
|
|||||||
if(sd_flags & SUBDEV_NODGA) video_mode_info.PhysBasePtr = 0;
|
if(sd_flags & SUBDEV_NODGA) video_mode_info.PhysBasePtr = 0;
|
||||||
if( vesa_zoom || fs_mode )
|
if( vesa_zoom || fs_mode )
|
||||||
{
|
{
|
||||||
if( format==IMGFMT_YV12 || lvo_name )
|
if(format==IMGFMT_YV12 || lvo_name || vidix_name)
|
||||||
{
|
{
|
||||||
/* software scale */
|
/* software scale */
|
||||||
if(vesa_zoom > 1)
|
if(vesa_zoom > 1)
|
||||||
@ -725,7 +735,7 @@ init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint3
|
|||||||
}
|
}
|
||||||
scale_srcW=width;
|
scale_srcW=width;
|
||||||
scale_srcH=height;
|
scale_srcH=height;
|
||||||
if(!lvo_name) SwScale_Init();
|
if(!lvo_name && !vidix_name) SwScale_Init();
|
||||||
if(verbose) printf("vo_vesa: Using SCALE\n");
|
if(verbose) printf("vo_vesa: Using SCALE\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -734,7 +744,7 @@ init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint3
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(format != IMGFMT_YV12 && image_bpp != video_mode_info.BitsPerPixel && !lvo_name)
|
if(format != IMGFMT_YV12 && image_bpp != video_mode_info.BitsPerPixel && !lvo_name && !vidix_name)
|
||||||
{
|
{
|
||||||
if(image_bpp == 24 && video_mode_info.BitsPerPixel == 32) rgb2rgb_fnc = rgb24to32;
|
if(image_bpp == 24 && video_mode_info.BitsPerPixel == 32) rgb2rgb_fnc = rgb24to32;
|
||||||
else
|
else
|
||||||
@ -830,7 +840,7 @@ init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint3
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
cpy_blk_fnc = __vbeCopyBlock;
|
cpy_blk_fnc = __vbeCopyBlock;
|
||||||
if((yuv_fmt || rgb2rgb_fnc) && !lvo_name)
|
if((yuv_fmt || rgb2rgb_fnc) && !lvo_name && !vidix_name)
|
||||||
{
|
{
|
||||||
if(!(dga_buffer = memalign(64,video_mode_info.XResolution*video_mode_info.YResolution*video_mode_info.BitsPerPixel)))
|
if(!(dga_buffer = memalign(64,video_mode_info.XResolution*video_mode_info.YResolution*video_mode_info.BitsPerPixel)))
|
||||||
{
|
{
|
||||||
@ -868,6 +878,20 @@ init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint3
|
|||||||
}
|
}
|
||||||
else printf("vo_vesa: Using video overlay: %s\n",lvo_name);
|
else printf("vo_vesa: Using video overlay: %s\n",lvo_name);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
if(vidix_name)
|
||||||
|
{
|
||||||
|
if(vidix_init(width,height,x_offset,y_offset,image_width,
|
||||||
|
image_height,format,video_mode_info.BitsPerPixel,
|
||||||
|
video_mode_info.XResolution,video_mode_info.YResolution) != 0)
|
||||||
|
{
|
||||||
|
printf("vo_vesa: Can't initialize VIDIX driver\n");
|
||||||
|
vidix_name = NULL;
|
||||||
|
vesa_term();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else printf("vo_vesa: Using VIDIX\n",lvo_name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
LIBNAME = libvidix.a
|
LIBNAME = libvidix.a
|
||||||
|
SUBDIRS = drivers
|
||||||
|
DO_MAKE = @ for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done
|
||||||
|
|
||||||
include ../config.mak
|
include ../config.mak
|
||||||
|
|
||||||
@ -15,22 +16,30 @@ CFLAGS = $(OPTFLAGS) -W -Wall
|
|||||||
.c.o:
|
.c.o:
|
||||||
$(CC) -c $(CFLAGS) -o $@ $<
|
$(CC) -c $(CFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
all: $(SUBDIRS) $(LIBNAME)
|
||||||
|
$(DO_MAKE)
|
||||||
|
|
||||||
$(LIBNAME): $(OBJS)
|
$(LIBNAME): $(OBJS)
|
||||||
$(AR) r $(LIBNAME) $(OBJS)
|
$(AR) r $(LIBNAME) $(OBJS)
|
||||||
|
|
||||||
all: $(LIBNAME)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *.a *~
|
rm -f *.o *.a *~
|
||||||
|
$(DO_MAKE)
|
||||||
|
|
||||||
distclean:
|
distclean:
|
||||||
rm -f test *.o *.a *~ .depend
|
rm -f test *.o *.a *~ .depend
|
||||||
|
$(DO_MAKE)
|
||||||
|
|
||||||
dep: depend
|
dep: depend
|
||||||
|
$(DO_MAKE)
|
||||||
|
|
||||||
depend:
|
depend:
|
||||||
$(CC) -MM $(CFLAGS) $(SRCS) 1>.depend
|
$(CC) -MM $(CFLAGS) $(SRCS) 1>.depend
|
||||||
|
|
||||||
|
install:
|
||||||
|
$(DO_MAKE)
|
||||||
|
|
||||||
#
|
#
|
||||||
# include dependency files if they exist
|
# include dependency files if they exist
|
||||||
#
|
#
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
include ../../config.mak
|
include ../../config.mak
|
||||||
|
|
||||||
|
BINDIR = $(prefix)/lib/mplayer/vidix
|
||||||
|
|
||||||
|
|
||||||
RADEON_VID=radeon_vid.so
|
RADEON_VID=radeon_vid.so
|
||||||
RADEON_SRCS=radeon_vid.c
|
RADEON_SRCS=radeon_vid.c
|
||||||
@ -26,13 +28,13 @@ $(RADEON_OBJS): $(RADEON_SRCS)
|
|||||||
$(CC) -c $(RADEON_CFLAGS) -o $@ $<
|
$(CC) -c $(RADEON_CFLAGS) -o $@ $<
|
||||||
|
|
||||||
$(RADEON_VID): $(RADEON_OBJS)
|
$(RADEON_VID): $(RADEON_OBJS)
|
||||||
$(CC) $(RADEON_LIBS) -shared -o $(RADEON_VID) $(RADEON_OBJS)
|
$(LD) $(RADEON_LIBS) -shared -soname $(RADEON_VID) -o $(RADEON_VID) $(RADEON_OBJS)
|
||||||
|
|
||||||
$(RAGE128_OBJS): $(RAGE128_SRCS)
|
$(RAGE128_OBJS): $(RAGE128_SRCS)
|
||||||
$(CC) -c $(RAGE128_CFLAGS) -o $@ $<
|
$(CC) -c $(RAGE128_CFLAGS) -o $@ $<
|
||||||
|
|
||||||
$(RAGE128_VID): $(RAGE128_OBJS)
|
$(RAGE128_VID): $(RAGE128_OBJS)
|
||||||
$(CC) $(RAGE128_LIBS) -shared -o $(RAGE128_VID) $(RAGE128_OBJS)
|
$(LD) $(RAGE128_LIBS) -shared -soname $(RAGE128_VID) -o $(RAGE128_VID) $(RAGE128_OBJS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *.so *~
|
rm -f *.o *.so *~
|
||||||
@ -46,7 +48,8 @@ depend:
|
|||||||
$(CC) -MM $(CFLAGS) $(SRCS) 1>.depend
|
$(CC) -MM $(CFLAGS) $(SRCS) 1>.depend
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
mkdir -p $(BINDIR)
|
||||||
|
cp *.so $(BINDIR)
|
||||||
#
|
#
|
||||||
# include dependency files if they exist
|
# include dependency files if they exist
|
||||||
#
|
#
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
radeon_vid - VIDIX based video driver for Radeon and Rage128 chips
|
radeon_vid - VIDIX based video driver for Radeon and Rage128 chips
|
||||||
|
Copyrights 2002 Nick Kurshev. This file is based on sources from
|
||||||
|
GATOS (gatos.sf.net) and X11 (www.xfree86.org)
|
||||||
|
Licence: GPL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/pci_ids.h>
|
#include <linux/pci_ids.h>
|
||||||
@ -25,7 +28,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEBUG 1
|
static int __verbose = 0;
|
||||||
|
|
||||||
typedef struct bes_registers_s
|
typedef struct bes_registers_s
|
||||||
{
|
{
|
||||||
@ -83,9 +86,7 @@ typedef struct bes_registers_s
|
|||||||
|
|
||||||
typedef struct video_registers_s
|
typedef struct video_registers_s
|
||||||
{
|
{
|
||||||
#ifdef DEBUG
|
|
||||||
const char * sname;
|
const char * sname;
|
||||||
#endif
|
|
||||||
uint32_t name;
|
uint32_t name;
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
}video_registers_t;
|
}video_registers_t;
|
||||||
@ -94,12 +95,7 @@ static bes_registers_t besr;
|
|||||||
#ifndef RAGE128
|
#ifndef RAGE128
|
||||||
static int IsR200=0;
|
static int IsR200=0;
|
||||||
#endif
|
#endif
|
||||||
#ifdef DEBUG
|
|
||||||
#define DECLARE_VREG(name) { #name, name, 0 }
|
#define DECLARE_VREG(name) { #name, name, 0 }
|
||||||
#else
|
|
||||||
#define DECLARE_VREG(name) { name, 0 }
|
|
||||||
#endif
|
|
||||||
#ifdef DEBUG
|
|
||||||
static video_registers_t vregs[] =
|
static video_registers_t vregs[] =
|
||||||
{
|
{
|
||||||
DECLARE_VREG(VIDEOMUX_CNTL),
|
DECLARE_VREG(VIDEOMUX_CNTL),
|
||||||
@ -194,7 +190,7 @@ static video_registers_t vregs[] =
|
|||||||
DECLARE_VREG(IDCT_AUTH),
|
DECLARE_VREG(IDCT_AUTH),
|
||||||
DECLARE_VREG(IDCT_CONTROL)
|
DECLARE_VREG(IDCT_CONTROL)
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
static void * radeon_mmio_base = 0;
|
static void * radeon_mmio_base = 0;
|
||||||
static void * radeon_mem_base = 0;
|
static void * radeon_mem_base = 0;
|
||||||
static int32_t radeon_overlay_off = 0;
|
static int32_t radeon_overlay_off = 0;
|
||||||
@ -629,6 +625,7 @@ int vixProbe( int verbose )
|
|||||||
pciinfo_t lst[MAX_PCI_DEVICES];
|
pciinfo_t lst[MAX_PCI_DEVICES];
|
||||||
unsigned i,num_pci;
|
unsigned i,num_pci;
|
||||||
int err;
|
int err;
|
||||||
|
__verbose = verbose;
|
||||||
err = pci_scan(lst,&num_pci);
|
err = pci_scan(lst,&num_pci);
|
||||||
if(err)
|
if(err)
|
||||||
{
|
{
|
||||||
@ -724,7 +721,6 @@ int vixQueryFourcc(vidix_fourcc_t *to)
|
|||||||
return ENOSYS;
|
return ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
static void radeon_vid_dump_regs( void )
|
static void radeon_vid_dump_regs( void )
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
@ -738,7 +734,6 @@ static void radeon_vid_dump_regs( void )
|
|||||||
printf(RADEON_MSG"%s = %08X\n",vregs[i].sname,INREG(vregs[i].name));
|
printf(RADEON_MSG"%s = %08X\n",vregs[i].sname,INREG(vregs[i].name));
|
||||||
printf(RADEON_MSG"*** End of OV0 registers dump ***\n");
|
printf(RADEON_MSG"*** End of OV0 registers dump ***\n");
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void radeon_vid_stop_video( void )
|
static void radeon_vid_stop_video( void )
|
||||||
{
|
{
|
||||||
@ -848,9 +843,7 @@ static void radeon_vid_display_video( void )
|
|||||||
}
|
}
|
||||||
OUTREG(OV0_SCALE_CNTL, bes_flags);
|
OUTREG(OV0_SCALE_CNTL, bes_flags);
|
||||||
OUTREG(OV0_REG_LOAD_CNTL, 0);
|
OUTREG(OV0_REG_LOAD_CNTL, 0);
|
||||||
#ifdef DEBUG
|
if(__verbose > 1) radeon_vid_dump_regs();
|
||||||
radeon_vid_dump_regs();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned radeon_query_pitch(unsigned fourcc)
|
static unsigned radeon_query_pitch(unsigned fourcc)
|
||||||
@ -1050,9 +1043,7 @@ int vixPlaybackFrameSel(unsigned frame)
|
|||||||
OUTREG(OV0_VID_BUF1_BASE_ADRS, off1);
|
OUTREG(OV0_VID_BUF1_BASE_ADRS, off1);
|
||||||
OUTREG(OV0_VID_BUF2_BASE_ADRS, off2);
|
OUTREG(OV0_VID_BUF2_BASE_ADRS, off2);
|
||||||
OUTREG(OV0_REG_LOAD_CNTL, 0);
|
OUTREG(OV0_REG_LOAD_CNTL, 0);
|
||||||
#ifdef DEBUG
|
if(__verbose > 1) radeon_vid_dump_regs();
|
||||||
radeon_vid_dump_regs();
|
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user