comparison libmpcodecs/vd_ffmpeg.c @ 32507:97738e6f82dc

Use IMGFMT to compare instead of PIX_FMT to avoid issues with the "JPEG" formats like PIX_FMT_YUVJ422P.
author reimar
date Sat, 06 Nov 2010 21:49:49 +0000
parents 49722126eba9
children 8fa2f43cb760
comparison
equal deleted inserted replaced
32506:85dd2718c84a 32507:97738e6f82dc
156 switch(format){ 156 switch(format){
157 case IMGFMT_YV12: 157 case IMGFMT_YV12:
158 case IMGFMT_IYUV: 158 case IMGFMT_IYUV:
159 case IMGFMT_I420: 159 case IMGFMT_I420:
160 // "converted" using pointer/stride modification 160 // "converted" using pointer/stride modification
161 if(avctx->pix_fmt==PIX_FMT_YUV420P) return CONTROL_TRUE;// u/v swap 161 if(ctx->best_csp == IMGFMT_YV12) return CONTROL_TRUE;// u/v swap
162 if(avctx->pix_fmt==PIX_FMT_YUV422P && !ctx->do_dr1) return CONTROL_TRUE;// half stride 162 if(ctx->best_csp == IMGFMT_422P && !ctx->do_dr1) return CONTROL_TRUE;// half stride
163 break; 163 break;
164 #if CONFIG_XVMC 164 #if CONFIG_XVMC
165 case IMGFMT_XVMC_IDCT_MPEG2: 165 case IMGFMT_XVMC_IDCT_MPEG2:
166 case IMGFMT_XVMC_MOCO_MPEG2: 166 case IMGFMT_XVMC_MOCO_MPEG2:
167 if(avctx->pix_fmt==PIX_FMT_XVMC_MPEG2_IDCT) return CONTROL_TRUE; 167 if(avctx->pix_fmt==PIX_FMT_XVMC_MPEG2_IDCT) return CONTROL_TRUE;
946 } 946 }
947 947
948 if (!mpi->planes[0]) 948 if (!mpi->planes[0])
949 return NULL; 949 return NULL;
950 950
951 if(avctx->pix_fmt==PIX_FMT_YUV422P && mpi->chroma_y_shift==1){ 951 if(ctx->best_csp == IMGFMT_422P && mpi->chroma_y_shift==1){
952 // we have 422p but user wants 420p 952 // we have 422p but user wants 420p
953 mpi->stride[1]*=2; 953 mpi->stride[1]*=2;
954 mpi->stride[2]*=2; 954 mpi->stride[2]*=2;
955 } 955 }
956 956