view libmpcodecs/vd_internal.h @ 8575:1d15ca298dda

Fix DVD authentication on Solaris 9. Solaris 9 does not allow USCSICMD ioctls for non-root users on vold devices any more; they are failing with an EPERM "permission denied" error. Now, only root is allowed to run USCSICMD ioctls on vold devices. Fortunatelly there's a new subroutine exported from libsmedia.so (smedia_uscsi_cmd) which allows non-root users to perform user mode SCSI commands on a vold device. (This works with a help of a daemon running as user root, /usr/lib/smedia/rpc.smserverd) This change detects the presence of function "smedia_uscsi_cmd" in library libsmedia.so at runtime, and uses this function if it's found (i.e. on solaris 9 smedia_uscsi_cmd() is used to execture user mode scsi commands). On solaris 8 or older, "smedia_uscsi_cmd" is not available and the code falls back to the old ioctl(.. USCSICMD ..) method.
author jkeil
date Fri, 27 Dec 2002 16:29:11 +0000
parents 1972c3475d93
children 4faee1254928
line wrap: on
line source


#include "codec-cfg.h"
#include "img_format.h"

#include "stream.h"
#include "demuxer.h"
#include "stheader.h"

#include "vd.h"

extern int divx_quality;

// prototypes:
//static vd_info_t info;
static int control(sh_video_t *sh,int cmd,void* arg,...);
static int init(sh_video_t *sh);
static void uninit(sh_video_t *sh);
static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags);

#define LIBVD_EXTERN(x) vd_functions_t mpcodecs_vd_##x = {\
	&info,\
	init,\
        uninit,\
	control,\
	decode\
};