Mercurial > libavcodec.hg
changeset 1821:1adbe0ab09fc libavcodec
use get_format
author | iive |
---|---|
date | Thu, 19 Feb 2004 00:30:33 +0000 |
parents | 98dbb5c7f8cc |
children | 7366bb5c363f |
files | mpeg12.c |
diffstat | 1 files changed, 19 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mpeg12.c Wed Feb 18 22:54:02 2004 +0000 +++ b/mpeg12.c Thu Feb 19 00:30:33 2004 +0000 @@ -80,6 +80,13 @@ extern void XVMC_init_block(MpegEncContext *s);//set s->block #endif +const enum PixelFormat pixfmt_yuv_420[]= {PIX_FMT_YUV420P,-1}; +const enum PixelFormat pixfmt_yuv_422[]= {PIX_FMT_YUV422P,-1}; +const enum PixelFormat pixfmt_yuv_444[]= {PIX_FMT_YUV444P,-1}; +const enum PixelFormat pixfmt_xvmc_mpg2_420[] = { + PIX_FMT_XVMC_MPEG2_IDCT, + PIX_FMT_XVMC_MPEG2_MC, + -1}; #ifdef CONFIG_ENCODERS static uint8_t (*mv_penalty)[MAX_MV*2+1]= NULL; static uint8_t fcode_tab[MAX_MV*2+1]; @@ -2354,8 +2361,12 @@ ); avctx->bit_rate = s->bit_rate; - //get_format() or set_video(width,height,aspect,pix_fmt); - //until then pix_fmt may be changed right after codec init + if(avctx->xvmc_acceleration){ + avctx->pix_fmt = avctx->get_format(avctx,pixfmt_xvmc_mpg2_420); + }else{ + avctx->pix_fmt = avctx->get_format(avctx,pixfmt_yuv_420); + } + if( avctx->pix_fmt == PIX_FMT_XVMC_MPEG2_IDCT ) if( avctx->idct_algo == FF_IDCT_AUTO ) avctx->idct_algo = FF_IDCT_SIMPLE; @@ -2458,8 +2469,12 @@ avctx->has_b_frames= 0; //true? s->low_delay= 1; - //get_format() or set_video(width,height,aspect,pix_fmt); - //until then pix_fmt may be changed right after codec init + if(avctx->xvmc_acceleration){ + avctx->pix_fmt = avctx->get_format(avctx,pixfmt_xvmc_mpg2_420); + }else{ + avctx->pix_fmt = avctx->get_format(avctx,pixfmt_yuv_420); + } + if( avctx->pix_fmt == PIX_FMT_XVMC_MPEG2_IDCT ) if( avctx->idct_algo == FF_IDCT_AUTO ) avctx->idct_algo = FF_IDCT_SIMPLE;