comparison postproc/yuv2rgb_mlib.c @ 11037:77ed12a4f0b1

Fixed the brokeness and also bgr32 should work now. Patch by Ken Mandelberg <km@mathcs.emory.edu>
author alex
date Tue, 07 Oct 2003 22:41:56 +0000
parents bc5b87370cd1
children 08cac43f1e38
comparison
equal deleted inserted replaced
11036:8e55228b6102 11037:77ed12a4f0b1
40 srcStride[2] *= 2; 40 srcStride[2] *= 2;
41 } 41 }
42 42
43 assert(srcStride[1] == srcStride[2]); 43 assert(srcStride[1] == srcStride[2]);
44 44
45 mlib_VideoColorYUV2ARGB420(dst[0], src[0], src[1], src[2], c->dstW, 45 mlib_VideoColorYUV2ARGB420(dst[0]+srcSliceY*dstStride[0], src[0], src[1], src[2], c->dstW,
46 c->dstH, dstStride[0], srcStride[0], srcStride[1]); 46 srcSliceH, dstStride[0], srcStride[0], srcStride[1]);
47 return srcSliceH; 47 return srcSliceH;
48 } 48 }
49 49
50 static int mlib_YUV2ABGR420_32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, 50 static int mlib_YUV2ABGR420_32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
51 int srcSliceH, uint8_t* dst[], int dstStride[]){ 51 int srcSliceH, uint8_t* dst[], int dstStride[]){
54 srcStride[2] *= 2; 54 srcStride[2] *= 2;
55 } 55 }
56 56
57 assert(srcStride[1] == srcStride[2]); 57 assert(srcStride[1] == srcStride[2]);
58 58
59 mlib_VideoColorYUV2ABGR420(dst[0], src[0], src[1], src[2], c->dstW, 59 mlib_VideoColorYUV2ABGR420(dst[0]+srcSliceY*dstStride[0], src[0], src[1], src[2], c->dstW,
60 c->dstH, dstStride[0], srcStride[0], srcStride[1]); 60 srcSliceH, dstStride[0], srcStride[0], srcStride[1]);
61 return srcSliceH; 61 return srcSliceH;
62 } 62 }
63 63
64 static int mlib_YUV2RGB420_24(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, 64 static int mlib_YUV2RGB420_24(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
65 int srcSliceH, uint8_t* dst[], int dstStride[]){ 65 int srcSliceH, uint8_t* dst[], int dstStride[]){
68 srcStride[2] *= 2; 68 srcStride[2] *= 2;
69 } 69 }
70 70
71 assert(srcStride[1] == srcStride[2]); 71 assert(srcStride[1] == srcStride[2]);
72 72
73 mlib_VideoColorYUV2RGB420(dst[0], src[0], src[1], src[2], c->dstW, 73 mlib_VideoColorYUV2RGB420(dst[0]+srcSliceY*dstStride[0], src[0], src[1], src[2], c->dstW,
74 c->dstH, dstStride[0], srcStride[0], srcStride[1]); 74 srcSliceH, dstStride[0], srcStride[0], srcStride[1]);
75 return srcSliceH; 75 return srcSliceH;
76 } 76 }
77 77
78 78
79 SwsFunc yuv2rgb_init_mlib(SwsContext *c) 79 SwsFunc yuv2rgb_init_mlib(SwsContext *c)
80 { 80 {
81 switch(c->dstFormat){ 81 switch(c->dstFormat){
82 case IMGFMT_RGB24: return mlib_YUV2RGB420_24; 82 case IMGFMT_RGB24: return mlib_YUV2RGB420_24;
83 case IMGFMT_RGB32: return mlib_YUV2ARGB420_32; 83 case IMGFMT_RGB32: return mlib_YUV2ARGB420_32;
84 case IMGFMT_BGR32: return mlib_YUV2ARGB420_32; 84 case IMGFMT_BGR32: return mlib_YUV2ABGR420_32;
85 default: return NULL; 85 default: return NULL;
86 } 86 }
87 } 87 }
88 88