Mercurial > mplayer.hg
changeset 11766:a80ae8896d6a
fix for nv12 swapped chroma
patch by From: John Wehle <john@feith.com>
author | attila |
---|---|
date | Sat, 10 Jan 2004 10:00:18 +0000 |
parents | e0b096f0e640 |
children | e6db1c939c25 |
files | libmpcodecs/vd_hmblck.c |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/vd_hmblck.c Sat Jan 10 09:48:15 2004 +0000 +++ b/libmpcodecs/vd_hmblck.c Sat Jan 10 10:00:18 2004 +0000 @@ -64,8 +64,8 @@ unsigned int UV_size = mpi->chroma_width * mpi->chroma_height; unsigned int idx; unsigned char *dst_Y = mpi->planes[0]; - unsigned char *dst_U = swapped?mpi->planes[2]:mpi->planes[1]; - unsigned char *dst_V = swapped?mpi->planes[1]:mpi->planes[2]; + unsigned char *dst_U = mpi->planes[1]; + unsigned char *dst_V = mpi->planes[2]; unsigned char *src = data + Y_size; // sanity check raw stream @@ -90,8 +90,8 @@ // chroma data is interlaced UVUV... so deinterlace it for(idx=0; idx<UV_size; idx++ ) { - *(dst_U + idx) = *(src + (idx<<1) + 0); - *(dst_V + idx) = *(src + (idx<<1) + 1); + *(dst_U + idx) = *(src + (idx<<1) + (swapped ? 1 : 0)); + *(dst_V + idx) = *(src + (idx<<1) + (swapped ? 0 : 1)); } return 1; } @@ -130,7 +130,7 @@ de_macro_y(mpi->planes[0],data,mpi->stride[0],mpi->w,mpi->h); de_macro_uv(mpi->planes[1],mpi->planes[2],data+mpi->w*mpi->h,mpi->stride[1],mpi->w/2,mpi->h/2); } else { - if(!nv12_to_yv12(data, len, mpi,(sh->format == IMGFMT_NV12))) return NULL; + if(!nv12_to_yv12(data, len, mpi,(sh->format == IMGFMT_NV21))) return NULL; } return mpi;