Mercurial > mplayer.hg
changeset 5609:25882b51e65f
mp_image moved to libmpcodecs
author | arpi |
---|---|
date | Sat, 13 Apr 2002 19:17:34 +0000 |
parents | 6f21be35b6cd |
children | fd196de4f1e9 |
files | dec_audio.h dec_video.h libmpcodecs/dec_audio.h libmpcodecs/dec_video.h libmpcodecs/mp_image.h mp_image.h |
diffstat | 6 files changed, 123 insertions(+), 123 deletions(-) [+] |
line wrap: on
line diff
--- a/dec_audio.h Sat Apr 13 19:17:24 2002 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ - -// dec_audio.c: -extern int init_audio(sh_audio_t *sh_audio); -extern int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen); -extern void resync_audio_stream(sh_audio_t *sh_audio); -extern void skip_audio_frame(sh_audio_t *sh_audio); -
--- a/dec_video.h Sat Apr 13 19:17:24 2002 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ - -// dec_video.c: -extern int video_read_properties(sh_video_t *sh_video); - -//extern int init_video(sh_video_t *sh_video, int *pitches); -extern int init_video(sh_video_t *sh_video,char* codecname,int vfm,int status); -extern void uninit_video(sh_video_t *sh_video); - -extern int decode_video(sh_video_t *sh_video,unsigned char *start,int in_size,int drop_frame); - -extern int get_video_quality_max(sh_video_t *sh_video); -extern void set_video_quality(sh_video_t *sh_video,int quality); - -extern int set_video_colors(sh_video_t *sh_video,char *item,int value); - -extern int divx_quality;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libmpcodecs/dec_audio.h Sat Apr 13 19:17:34 2002 +0000 @@ -0,0 +1,7 @@ + +// dec_audio.c: +extern int init_audio(sh_audio_t *sh_audio); +extern int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen); +extern void resync_audio_stream(sh_audio_t *sh_audio); +extern void skip_audio_frame(sh_audio_t *sh_audio); +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libmpcodecs/dec_video.h Sat Apr 13 19:17:34 2002 +0000 @@ -0,0 +1,16 @@ + +// dec_video.c: +extern int video_read_properties(sh_video_t *sh_video); + +//extern int init_video(sh_video_t *sh_video, int *pitches); +extern int init_video(sh_video_t *sh_video,char* codecname,int vfm,int status); +extern void uninit_video(sh_video_t *sh_video); + +extern int decode_video(sh_video_t *sh_video,unsigned char *start,int in_size,int drop_frame); + +extern int get_video_quality_max(sh_video_t *sh_video); +extern void set_video_quality(sh_video_t *sh_video,int quality); + +extern int set_video_colors(sh_video_t *sh_video,char *item,int value); + +extern int divx_quality;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libmpcodecs/mp_image.h Sat Apr 13 19:17:34 2002 +0000 @@ -0,0 +1,100 @@ +#ifndef __MP_IMAGE_H +#define __MP_IMAGE_H 1 + +// set if buffer content shouldn't be modified: +#define MP_IMGFLAG_PRESERVE 0x01 +// set if buffer content will be READED for next frame's MC: (I/P mpeg frames) +#define MP_IMGFLAG_READABLE 0x02 +// set if buffer is allocated (used in destination images): +#define MP_IMGFLAG_ALLOCATED 0x04 +// set if it's in video buffer/memory: +#define MP_IMGFLAG_DIRECT 0x08 +// codec accept any stride (>=width): +#define MP_IMGFLAG_ACCEPT_STRIDE 0x10 +// codec accept any width (width*bpp=stride) (>=width): +#define MP_IMGFLAG_ACCEPT_WIDTH 0x20 +// stride should be aligned to 16-byte (MB) boundary: +#define MP_IMGFLAG_ALIGNED_STRIDE 0x40 +// codec uses drawing/rendering callbacks (draw_slice()-like thing, DR method 2) +#define MP_IMGFLAG_DRAW_CALLBACK 0x80 + +// set if number of planes > 1 +#define MP_IMGFLAG_PLANAR 0x100 +// set if it's YUV colorspace +#define MP_IMGFLAG_YUV 0x200 +// set if it's swapped plane/byteorder +#define MP_IMGFLAG_SWAPPED 0x400 +// type displayed (do not set this flag - it's for internal use!) +#define MP_IMGFLAG_TYPE_DISPLAYED 0x800 + +// codec doesn't support any form of direct rendering - it has own buffer +// allocation. so we just export its buffer pointers: +#define MP_IMGTYPE_EXPORT 0 +// codec requires a static WO buffer, but it does only partial updates later: +#define MP_IMGTYPE_STATIC 1 +// codec just needs some WO memory, where it writes/copies the whole frame to: +#define MP_IMGTYPE_TEMP 2 +// I+P type, requires 2+ independent static R/W buffers +#define MP_IMGTYPE_IP 3 +// I+P+B type, requires 2+ independent static R/W and 1+ temp WO buffers +#define MP_IMGTYPE_IPB 4 + +typedef struct mp_image_s { + unsigned short flags; + unsigned char type; + unsigned char bpp; // bits/pixel. NOT depth! for RGB it will be n*8 + unsigned int imgfmt; + int width,height; // stored dimensions + int x,y,w,h; // visible dimensions + unsigned char* planes[3]; + unsigned int stride[3]; + int* qscale; + int qstride; +} mp_image_t; + +#ifdef IMGFMT_YUY2 +static inline void mp_image_setfmt(mp_image_t* mpi,unsigned int out_fmt){ + mpi->flags&=~(MP_IMGFLAG_PLANAR|MP_IMGFLAG_YUV|MP_IMGFLAG_SWAPPED); + mpi->imgfmt=out_fmt; + if( (out_fmt&IMGFMT_RGB_MASK) == IMGFMT_RGB ){ + mpi->bpp=((out_fmt&255)+7)&(~7); + return; + } + if( (out_fmt&IMGFMT_BGR_MASK) == IMGFMT_BGR ){ + mpi->bpp=((out_fmt&255)+7)&(~7); + mpi->flags|=MP_IMGFLAG_SWAPPED; + return; + } + mpi->flags|=MP_IMGFLAG_YUV; + switch(out_fmt){ + case IMGFMT_I420: + case IMGFMT_IYUV: + mpi->flags|=MP_IMGFLAG_SWAPPED; + case IMGFMT_YV12: + mpi->flags|=MP_IMGFLAG_PLANAR; + mpi->bpp=12; + return; + case IMGFMT_UYVY: + mpi->flags|=MP_IMGFLAG_SWAPPED; + case IMGFMT_YUY2: + mpi->bpp=16; + return; + case IMGFMT_MPEGPES: + mpi->bpp=0; + return; + } + printf("mp_image: Unknown out_fmt: 0x%X\n",out_fmt); + mpi->bpp=0; +} +#endif + +static inline mp_image_t* new_mp_image(int w,int h){ + mp_image_t* mpi=malloc(sizeof(mp_image_t)); + if(!mpi) return NULL; // error! + memset(mpi,0,sizeof(mp_image_t)); + mpi->width=mpi->w=w; + mpi->height=mpi->h=h; + return mpi; +} + +#endif
--- a/mp_image.h Sat Apr 13 19:17:24 2002 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -#ifndef __MP_IMAGE_H -#define __MP_IMAGE_H 1 - -// set if buffer content shouldn't be modified: -#define MP_IMGFLAG_PRESERVE 0x01 -// set if buffer content will be READED for next frame's MC: (I/P mpeg frames) -#define MP_IMGFLAG_READABLE 0x02 -// set if buffer is allocated (used in destination images): -#define MP_IMGFLAG_ALLOCATED 0x04 -// set if it's in video buffer/memory: -#define MP_IMGFLAG_DIRECT 0x08 -// codec accept any stride (>=width): -#define MP_IMGFLAG_ACCEPT_STRIDE 0x10 -// codec accept any width (width*bpp=stride) (>=width): -#define MP_IMGFLAG_ACCEPT_WIDTH 0x20 -// stride should be aligned to 16-byte (MB) boundary: -#define MP_IMGFLAG_ALIGNED_STRIDE 0x40 -// codec uses drawing/rendering callbacks (draw_slice()-like thing, DR method 2) -#define MP_IMGFLAG_DRAW_CALLBACK 0x80 - -// set if number of planes > 1 -#define MP_IMGFLAG_PLANAR 0x100 -// set if it's YUV colorspace -#define MP_IMGFLAG_YUV 0x200 -// set if it's swapped plane/byteorder -#define MP_IMGFLAG_SWAPPED 0x400 -// type displayed (do not set this flag - it's for internal use!) -#define MP_IMGFLAG_TYPE_DISPLAYED 0x800 - -// codec doesn't support any form of direct rendering - it has own buffer -// allocation. so we just export its buffer pointers: -#define MP_IMGTYPE_EXPORT 0 -// codec requires a static WO buffer, but it does only partial updates later: -#define MP_IMGTYPE_STATIC 1 -// codec just needs some WO memory, where it writes/copies the whole frame to: -#define MP_IMGTYPE_TEMP 2 -// I+P type, requires 2+ independent static R/W buffers -#define MP_IMGTYPE_IP 3 -// I+P+B type, requires 2+ independent static R/W and 1+ temp WO buffers -#define MP_IMGTYPE_IPB 4 - -typedef struct mp_image_s { - unsigned short flags; - unsigned char type; - unsigned char bpp; // bits/pixel. NOT depth! for RGB it will be n*8 - unsigned int imgfmt; - int width,height; // stored dimensions - int x,y,w,h; // visible dimensions - unsigned char* planes[3]; - unsigned int stride[3]; - int* qscale; - int qstride; -} mp_image_t; - -#ifdef IMGFMT_YUY2 -static inline void mp_image_setfmt(mp_image_t* mpi,unsigned int out_fmt){ - mpi->flags&=~(MP_IMGFLAG_PLANAR|MP_IMGFLAG_YUV|MP_IMGFLAG_SWAPPED); - mpi->imgfmt=out_fmt; - if( (out_fmt&IMGFMT_RGB_MASK) == IMGFMT_RGB ){ - mpi->bpp=((out_fmt&255)+7)&(~7); - return; - } - if( (out_fmt&IMGFMT_BGR_MASK) == IMGFMT_BGR ){ - mpi->bpp=((out_fmt&255)+7)&(~7); - mpi->flags|=MP_IMGFLAG_SWAPPED; - return; - } - mpi->flags|=MP_IMGFLAG_YUV; - switch(out_fmt){ - case IMGFMT_I420: - case IMGFMT_IYUV: - mpi->flags|=MP_IMGFLAG_SWAPPED; - case IMGFMT_YV12: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=12; - return; - case IMGFMT_UYVY: - mpi->flags|=MP_IMGFLAG_SWAPPED; - case IMGFMT_YUY2: - mpi->bpp=16; - return; - case IMGFMT_MPEGPES: - mpi->bpp=0; - return; - } - printf("mp_image: Unknown out_fmt: 0x%X\n",out_fmt); - mpi->bpp=0; -} -#endif - -static inline mp_image_t* new_mp_image(int w,int h){ - mp_image_t* mpi=malloc(sizeof(mp_image_t)); - if(!mpi) return NULL; // error! - memset(mpi,0,sizeof(mp_image_t)); - mpi->width=mpi->w=w; - mpi->height=mpi->h=h; - return mpi; -} - -#endif