diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-04-26 18:37:56 +0300 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-04-26 18:38:11 +0300 |
commit | 8df340271e868252e7398307e126ea12083d426b (patch) | |
tree | 0380f4e6e3b8ad983b35db712c5d1da609f15e7d /libmpcodecs/mp_image.h | |
parent | b4c7b7ce1142e676bd082952b12713bcc5f3203e (diff) | |
parent | 12d6f6b378872ca4c06a268dc33c4e045f4966e4 (diff) | |
download | mpv-8df340271e868252e7398307e126ea12083d426b.tar.bz2 mpv-8df340271e868252e7398307e126ea12083d426b.tar.xz |
Merge svn changes up to r31040
Diffstat (limited to 'libmpcodecs/mp_image.h')
-rw-r--r-- | libmpcodecs/mp_image.h | 108 |
1 files changed, 3 insertions, 105 deletions
diff --git a/libmpcodecs/mp_image.h b/libmpcodecs/mp_image.h index 36d04502b9..dd69788f26 100644 --- a/libmpcodecs/mp_image.h +++ b/libmpcodecs/mp_image.h @@ -122,111 +122,9 @@ typedef struct mp_image { void* priv; } 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; - // compressed formats - if(out_fmt == IMGFMT_MPEGPES || - out_fmt == IMGFMT_ZRMJPEGNI || out_fmt == IMGFMT_ZRMJPEGIT || out_fmt == IMGFMT_ZRMJPEGIB || - IMGFMT_IS_VDPAU(out_fmt) || IMGFMT_IS_XVMC(out_fmt)){ - mpi->bpp=0; - return; - } - mpi->num_planes=1; - if (IMGFMT_IS_RGB(out_fmt)) { - if (IMGFMT_RGB_DEPTH(out_fmt) < 8 && !(out_fmt&128)) - mpi->bpp = IMGFMT_RGB_DEPTH(out_fmt); - else - mpi->bpp=(IMGFMT_RGB_DEPTH(out_fmt)+7)&(~7); - return; - } - if (IMGFMT_IS_BGR(out_fmt)) { - if (IMGFMT_BGR_DEPTH(out_fmt) < 8 && !(out_fmt&128)) - mpi->bpp = IMGFMT_BGR_DEPTH(out_fmt); - else - mpi->bpp=(IMGFMT_BGR_DEPTH(out_fmt)+7)&(~7); - mpi->flags|=MP_IMGFLAG_SWAPPED; - return; - } - mpi->flags|=MP_IMGFLAG_YUV; - mpi->num_planes=3; - if (mp_get_chroma_shift(out_fmt, NULL, NULL)) { - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp = mp_get_chroma_shift(out_fmt, &mpi->chroma_x_shift, &mpi->chroma_y_shift); - mpi->chroma_width = mpi->width >> mpi->chroma_x_shift; - mpi->chroma_height = mpi->height >> mpi->chroma_y_shift; - } - switch(out_fmt){ - case IMGFMT_I420: - case IMGFMT_IYUV: - mpi->flags|=MP_IMGFLAG_SWAPPED; - case IMGFMT_YV12: - return; - case IMGFMT_420A: - case IMGFMT_IF09: - mpi->num_planes=4; - case IMGFMT_YVU9: - case IMGFMT_444P: - case IMGFMT_422P: - case IMGFMT_411P: - case IMGFMT_440P: - case IMGFMT_444P16_LE: - case IMGFMT_444P16_BE: - case IMGFMT_422P16_LE: - case IMGFMT_422P16_BE: - case IMGFMT_420P16_LE: - case IMGFMT_420P16_BE: - return; - case IMGFMT_Y800: - case IMGFMT_Y8: - /* they're planar ones, but for easier handling use them as packed */ -// mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=8; - mpi->num_planes=1; - return; - case IMGFMT_UYVY: - mpi->flags|=MP_IMGFLAG_SWAPPED; - case IMGFMT_YUY2: - mpi->bpp=16; - mpi->num_planes=1; - return; - case IMGFMT_NV12: - mpi->flags|=MP_IMGFLAG_SWAPPED; - case IMGFMT_NV21: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=12; - mpi->num_planes=2; - mpi->chroma_width=(mpi->width>>0); - mpi->chroma_height=(mpi->height>>1); - mpi->chroma_x_shift=0; - mpi->chroma_y_shift=1; - return; - } - mp_msg(MSGT_DECVIDEO,MSGL_WARN,"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; -} - -static inline void free_mp_image(mp_image_t* mpi){ - if(!mpi) return; - if(mpi->flags&MP_IMGFLAG_ALLOCATED){ - /* becouse we allocate the whole image in once */ - if(mpi->planes[0]) free(mpi->planes[0]); - if (mpi->flags & MP_IMGFLAG_RGB_PALETTE) - free(mpi->planes[1]); - } - free(mpi); -} +void mp_image_setfmt(mp_image_t* mpi,unsigned int out_fmt); +mp_image_t* new_mp_image(int w,int h); +void free_mp_image(mp_image_t* mpi); mp_image_t* alloc_mpi(int w, int h, unsigned long int fmt); void mp_image_alloc_planes(mp_image_t *mpi); |