comparison mpeg12.c @ 7700:53fb5eb360d5 libavcodec

simplify mpeg12 avctx->pix_fmt set
author bcoudurier
date Tue, 26 Aug 2008 23:25:29 +0000
parents d6390123201d
children 681a05d9b04f
comparison
equal deleted inserted replaced
7699:4b286498a3bd 7700:53fb5eb360d5
66 extern int XVMC_field_start(MpegEncContext *s, AVCodecContext *avctx); 66 extern int XVMC_field_start(MpegEncContext *s, AVCodecContext *avctx);
67 extern int XVMC_field_end(MpegEncContext *s); 67 extern int XVMC_field_end(MpegEncContext *s);
68 extern void XVMC_pack_pblocks(MpegEncContext *s,int cbp); 68 extern void XVMC_pack_pblocks(MpegEncContext *s,int cbp);
69 extern void XVMC_init_block(MpegEncContext *s);//set s->block 69 extern void XVMC_init_block(MpegEncContext *s);//set s->block
70 70
71 static const enum PixelFormat pixfmt_yuv_420[]= {PIX_FMT_YUV420P,PIX_FMT_NONE};
72 static const enum PixelFormat pixfmt_yuv_422[]= {PIX_FMT_YUV422P,PIX_FMT_NONE};
73 static const enum PixelFormat pixfmt_yuv_444[]= {PIX_FMT_YUV444P,PIX_FMT_NONE};
74 static const enum PixelFormat pixfmt_xvmc_mpg2_420[] = { 71 static const enum PixelFormat pixfmt_xvmc_mpg2_420[] = {
75 PIX_FMT_XVMC_MPEG2_IDCT, 72 PIX_FMT_XVMC_MPEG2_IDCT,
76 PIX_FMT_XVMC_MPEG2_MC, 73 PIX_FMT_XVMC_MPEG2_MC,
77 PIX_FMT_NONE}; 74 PIX_FMT_NONE};
78 75
1291 1288
1292 if(avctx->xvmc_acceleration){ 1289 if(avctx->xvmc_acceleration){
1293 avctx->pix_fmt = avctx->get_format(avctx,pixfmt_xvmc_mpg2_420); 1290 avctx->pix_fmt = avctx->get_format(avctx,pixfmt_xvmc_mpg2_420);
1294 }else{ 1291 }else{
1295 if(s->chroma_format < 2){ 1292 if(s->chroma_format < 2){
1296 avctx->pix_fmt = avctx->get_format(avctx,pixfmt_yuv_420); 1293 avctx->pix_fmt = PIX_FMT_YUV420P;
1297 }else 1294 }else
1298 if(s->chroma_format == 2){ 1295 if(s->chroma_format == 2){
1299 avctx->pix_fmt = avctx->get_format(avctx,pixfmt_yuv_422); 1296 avctx->pix_fmt = PIX_FMT_YUV422P;
1300 }else 1297 }else
1301 if(s->chroma_format > 2){ 1298 if(s->chroma_format > 2){
1302 avctx->pix_fmt = avctx->get_format(avctx,pixfmt_yuv_444); 1299 avctx->pix_fmt = PIX_FMT_YUV444P;
1303 } 1300 }
1304 } 1301 }
1305 //until then pix_fmt may be changed right after codec init 1302 //until then pix_fmt may be changed right after codec init
1306 if( avctx->pix_fmt == PIX_FMT_XVMC_MPEG2_IDCT ) 1303 if( avctx->pix_fmt == PIX_FMT_XVMC_MPEG2_IDCT )
1307 if( avctx->idct_algo == FF_IDCT_AUTO ) 1304 if( avctx->idct_algo == FF_IDCT_AUTO )
2056 s->low_delay= 1; 2053 s->low_delay= 1;
2057 2054
2058 if(avctx->xvmc_acceleration){ 2055 if(avctx->xvmc_acceleration){
2059 avctx->pix_fmt = avctx->get_format(avctx,pixfmt_xvmc_mpg2_420); 2056 avctx->pix_fmt = avctx->get_format(avctx,pixfmt_xvmc_mpg2_420);
2060 }else{ 2057 }else{
2061 avctx->pix_fmt = avctx->get_format(avctx,pixfmt_yuv_420); 2058 avctx->pix_fmt = PIX_FMT_YUV420P;
2062 } 2059 }
2063 2060
2064 if( avctx->pix_fmt == PIX_FMT_XVMC_MPEG2_IDCT ) 2061 if( avctx->pix_fmt == PIX_FMT_XVMC_MPEG2_IDCT )
2065 if( avctx->idct_algo == FF_IDCT_AUTO ) 2062 if( avctx->idct_algo == FF_IDCT_AUTO )
2066 avctx->idct_algo = FF_IDCT_SIMPLE; 2063 avctx->idct_algo = FF_IDCT_SIMPLE;