view libmpcodecs/vd_roqvideo.c @ 10581:4ebff25d9a05

From: Kir Kostuchenko <kir@users.sourceforge.net> Hi, I found that command line options brightness, hue, contrast and saturation does not works, becouse mplayer apply it, before open tv (kernel says invalid ioctl). Here are simple fix. Please apply. This is the correct patch, sorry for the confusion.
author gabucino
date Tue, 12 Aug 2003 13:25:52 +0000
parents a117511790c0
children
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>

#include "config.h"
#include "mp_msg.h"

#include "vd_internal.h"

static vd_info_t info = {
	"Id RoQ File Video decoder",
	"roqvideo",
	"A'rpi",
	"Mike Melanson",
	"native codec"
};

LIBVD_EXTERN(roqvideo)

// in native/roqav.c:
void *roq_decode_video_init(void);
void roq_decode_video(void *context, unsigned char *encoded, 
  int encoded_size, mp_image_t *mpi);

// to set/get/query special features/parameters
static int control(sh_video_t *sh,int cmd,void* arg,...){
    return CONTROL_UNKNOWN;
}

// init driver
static int init(sh_video_t *sh){
    sh->context = roq_decode_video_init();
    return mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h,IMGFMT_YV12);
}

// uninit driver
static void uninit(sh_video_t *sh){
}

//mp_image_t* mpcodecs_get_image(sh_video_t *sh, int mp_imgtype, int mp_imgflag, int w, int h);

// decode a frame
static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){
    mp_image_t* mpi;
    if(len<=0) return NULL; // skipped frame
    
    mpi=mpcodecs_get_image(sh, MP_IMGTYPE_IP, MP_IMGFLAG_PRESERVE | MP_IMGFLAG_READABLE, 
	sh->disp_w, sh->disp_h);
    if(!mpi) return NULL;

    roq_decode_video(sh->context, data, len, mpi);

    return mpi;
}