Mercurial > libavcodec.hg
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; |