[MPlayer-cvslog] r31038 - in trunk/libmpcodecs: mp_image.c mp_image.h

reimar subversion at mplayerhq.hu
Thu Apr 15 07:39:36 CEST 2010


Author: reimar
Date: Thu Apr 15 07:39:36 2010
New Revision: 31038

Log:
Move functions that really do not need to be inlined from the header
to the .c file.

Modified:
   trunk/libmpcodecs/mp_image.c
   trunk/libmpcodecs/mp_image.h

Modified: trunk/libmpcodecs/mp_image.c
==============================================================================
--- trunk/libmpcodecs/mp_image.c	Wed Apr 14 10:53:19 2010	(r31037)
+++ trunk/libmpcodecs/mp_image.c	Thu Apr 15 07:39:36 2010	(r31038)
@@ -93,3 +93,108 @@ void copy_mpi(mp_image_t *dmpi, mp_image
 	       dmpi->stride[0],mpi->stride[0]);
   }
 }
+
+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;
+}
+
+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;
+}
+
+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);
+}
+

Modified: trunk/libmpcodecs/mp_image.h
==============================================================================
--- trunk/libmpcodecs/mp_image.h	Wed Apr 14 10:53:19 2010	(r31037)
+++ trunk/libmpcodecs/mp_image.h	Thu Apr 15 07:39:36 2010	(r31038)
@@ -122,111 +122,9 @@ typedef struct mp_image_s {
     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);


More information about the MPlayer-cvslog mailing list