[FFmpeg-cvslog] r16453 - trunk/libavcodec/mpeg12.c
cehoyos
subversion
Tue Jan 6 16:16:33 CET 2009
Author: cehoyos
Date: Tue Jan 6 16:16:33 2009
New Revision: 16453
Log:
Factorise setting of avctx->pix_fmt.
Modified:
trunk/libavcodec/mpeg12.c
Modified: trunk/libavcodec/mpeg12.c
==============================================================================
--- trunk/libavcodec/mpeg12.c Tue Jan 6 13:56:21 2009 (r16452)
+++ trunk/libavcodec/mpeg12.c Tue Jan 6 16:16:33 2009 (r16453)
@@ -1212,6 +1212,22 @@ static void quant_matrix_rebuild(uint16_
}
}
+static enum PixelFormat mpeg_set_pixelformat(AVCodecContext *avctx){
+ Mpeg1Context *s1 = avctx->priv_data;
+ MpegEncContext *s = &s1->mpeg_enc_ctx;
+
+ if(avctx->xvmc_acceleration)
+ return avctx->get_format(avctx,pixfmt_xvmc_mpg2_420);
+ else{
+ if(s->chroma_format < 2)
+ return PIX_FMT_YUV420P;
+ else if(s->chroma_format == 2)
+ return PIX_FMT_YUV422P;
+ else
+ return PIX_FMT_YUV444P;
+ }
+}
+
/* Call this function when we know all parameters.
* It may be called in different places for MPEG-1 and MPEG-2. */
static int mpeg_decode_postinit(AVCodecContext *avctx){
@@ -1288,19 +1304,7 @@ static int mpeg_decode_postinit(AVCodecC
}
}//MPEG-2
- if(avctx->xvmc_acceleration){
- avctx->pix_fmt = avctx->get_format(avctx,pixfmt_xvmc_mpg2_420);
- }else{
- if(s->chroma_format < 2){
- avctx->pix_fmt = PIX_FMT_YUV420P;
- }else
- if(s->chroma_format == 2){
- avctx->pix_fmt = PIX_FMT_YUV422P;
- }else
- if(s->chroma_format > 2){
- avctx->pix_fmt = PIX_FMT_YUV444P;
- }
- }
+ avctx->pix_fmt = mpeg_set_pixelformat(avctx);
//until then pix_fmt may be changed right after codec init
if( avctx->pix_fmt == PIX_FMT_XVMC_MPEG2_IDCT )
if( avctx->idct_algo == FF_IDCT_AUTO )
@@ -2069,11 +2073,7 @@ static int vcr2_init_sequence(AVCodecCon
avctx->has_b_frames= 0; //true?
s->low_delay= 1;
- if(avctx->xvmc_acceleration){
- avctx->pix_fmt = avctx->get_format(avctx,pixfmt_xvmc_mpg2_420);
- }else{
- avctx->pix_fmt = PIX_FMT_YUV420P;
- }
+ avctx->pix_fmt = mpeg_set_pixelformat(avctx);
if( avctx->pix_fmt == PIX_FMT_XVMC_MPEG2_IDCT )
if( avctx->idct_algo == FF_IDCT_AUTO )
More information about the ffmpeg-cvslog
mailing list