Mercurial > libavcodec.hg
changeset 298:e20de99b6295 libavcodec
using Juanjo's way to pass forced type - especially as I_TYPE/P_TYPE defines aren't exported in the public interface, and the flagged method matches the way as qscale forcing work
author | arpi_esp |
---|---|
date | Thu, 28 Mar 2002 23:07:54 +0000 |
parents | a1234c032636 |
children | fb9e77674bd4 |
files | avcodec.h mpegvideo.c |
diffstat | 2 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/avcodec.h Thu Mar 28 22:50:22 2002 +0000 +++ b/avcodec.h Thu Mar 28 23:07:54 2002 +0000 @@ -69,6 +69,7 @@ #define CODEC_FLAG_B 0x0008 /* use B frames */ #define CODEC_FLAG_QPEL 0x0010 /* use qpel MC */ #define CODEC_FLAG_GMC 0x0020 /* use GMC */ +#define CODEC_FLAG_TYPE 0x0040 /* fixed I/P frame type, from avctx->key_frame */ /* codec capabilities */ @@ -121,8 +122,6 @@ int qmax; /* max qscale */ int max_qdiff; /* max qscale difference between frames */ - int force_type; /* 0= no force, otherwise I_TYPE, P_TYPE, ... */ - struct AVCodec *codec; void *priv_data;
--- a/mpegvideo.c Thu Mar 28 22:50:22 2002 +0000 +++ b/mpegvideo.c Thu Mar 28 23:07:54 2002 +0000 @@ -514,7 +514,8 @@ init_put_bits(&s->pb, buf, buf_size, NULL, NULL); - s->force_type= avctx->force_type; + s->force_type= (avctx->flags&CODEC_FLAG_TYPE) ? + (avctx->key_frame ? I_TYPE : P_TYPE) : 0; if (!s->intra_only) { /* first picture of GOP is intra */ if (s->picture_in_gop_number % s->gop_size==0 || s->force_type==I_TYPE){