diff options
author | Ivan Kalvachev <ikalvachev@gmail.com> | 2004-02-19 00:30:33 +0000 |
---|---|---|
committer | Ivan Kalvachev <ikalvachev@gmail.com> | 2004-02-19 00:30:33 +0000 |
commit | 530d574081ee03a8bbcb408053b90155ad58a9e0 (patch) | |
tree | 496e1b30f4e7eaa0b948c09a50a35c488bc3ffd2 | |
parent | 5e7c25f0d16c06e15f8da47fd7d0f05915cc8aac (diff) | |
download | ffmpeg-530d574081ee03a8bbcb408053b90155ad58a9e0.tar.gz |
use get_format
Originally committed as revision 2802 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/mpeg12.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index 72f815cc14..748c0fb9bb 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -80,6 +80,13 @@ extern void XVMC_pack_pblocks(MpegEncContext *s,int cbp); 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 @@ static int mpeg1_decode_sequence(AVCodecContext *avctx, ); 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 @@ static int vcr2_init_sequence(AVCodecContext *avctx) 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; |