Mercurial > mplayer.hg
comparison libmpcodecs/vd_raw.c @ 6667:15efad628385
yuv handling simplified (using new mpi fields)
author | alex |
---|---|
date | Sun, 07 Jul 2002 16:25:36 +0000 |
parents | 01ada897cc89 |
children | 28677d779205 |
comparison
equal
deleted
inserted
replaced
6666:349138a7b414 | 6667:15efad628385 |
---|---|
62 | 62 |
63 if(mpi->flags&MP_IMGFLAG_PLANAR){ | 63 if(mpi->flags&MP_IMGFLAG_PLANAR){ |
64 // TODO !!! | 64 // TODO !!! |
65 mpi->planes[0]=data; | 65 mpi->planes[0]=data; |
66 mpi->stride[0]=mpi->width; | 66 mpi->stride[0]=mpi->width; |
67 if(mpi->bpp == 12 && mpi->flags&MP_IMGFLAG_YUV) { | 67 if(mpi->flags&MP_IMGFLAG_YUV) { |
68 // Support for some common Planar YUV formats | 68 // Support for some common Planar YUV formats |
69 /* YV12,I420,IYUV */ | 69 /* YV12,I420,IYUV */ |
70 int cb=2, cr=1; | 70 int cb=2, cr=1; |
71 if(mpi->flags&MP_IMGFLAG_SWAPPED) { | 71 if(mpi->flags&MP_IMGFLAG_SWAPPED) { |
72 cb=1; cr=2; | 72 cb=1; cr=2; |
73 } | 73 } |
74 mpi->planes[cb]=data+mpi->width*mpi->height; | 74 mpi->planes[cb]=mpi->planes[0]+mpi->width*mpi->height; |
75 mpi->stride[cb]=mpi->width/2; | 75 mpi->stride[cb]=mpi->chroma_width; |
76 mpi->planes[cr]=data+5*mpi->width*mpi->height/4; | 76 mpi->planes[cr]=mpi->planes[cb]+mpi->chroma_width*mpi->chroma_height; |
77 mpi->stride[cr]=mpi->width/2; | 77 mpi->stride[cr]=mpi->chroma_width; |
78 } | 78 } |
79 else if (mpi->bpp==9 && mpi->flags&MP_IMGFLAG_YUV) { | |
80 /* YVU9 ! */ | |
81 mpi->stride[1]=mpi->stride[2]=mpi->width/4; | |
82 mpi->planes[2]=mpi->planes[0]+mpi->width*mpi->height; | |
83 mpi->planes[1]=mpi->planes[2]+(mpi->width>>2)*(mpi->height>>2); | |
84 } | |
85 } else { | 79 } else { |
86 mpi->planes[0]=data; | 80 mpi->planes[0]=data; |
87 mpi->stride[0]=mpi->width*(mpi->bpp/8); | 81 mpi->stride[0]=mpi->width*(mpi->bpp/8); |
88 // .AVI files has uncompressed lines 4-byte aligned: | 82 // .AVI files has uncompressed lines 4-byte aligned: |
89 if(sh->format==0 || sh->format==3) mpi->stride[0]=(mpi->stride[0]+3)&(~3); | 83 if(sh->format==0 || sh->format==3) mpi->stride[0]=(mpi->stride[0]+3)&(~3); |
93 } | 87 } |
94 } | 88 } |
95 | 89 |
96 return mpi; | 90 return mpi; |
97 } | 91 } |
98 |