Mercurial > mplayer.hg
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 |