1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

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

Originally committed as revision 366 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Arpi 2002-03-28 23:07:54 +00:00
parent 4d69fbc99e
commit 60e575acc8
2 changed files with 3 additions and 3 deletions

View File

@ -69,6 +69,7 @@ extern int motion_estimation_method;
#define CODEC_FLAG_B 0x0008 /* use B frames */ #define CODEC_FLAG_B 0x0008 /* use B frames */
#define CODEC_FLAG_QPEL 0x0010 /* use qpel MC */ #define CODEC_FLAG_QPEL 0x0010 /* use qpel MC */
#define CODEC_FLAG_GMC 0x0020 /* use GMC */ #define CODEC_FLAG_GMC 0x0020 /* use GMC */
#define CODEC_FLAG_TYPE 0x0040 /* fixed I/P frame type, from avctx->key_frame */
/* codec capabilities */ /* codec capabilities */
@ -121,8 +122,6 @@ typedef struct AVCodecContext {
int qmax; /* max qscale */ int qmax; /* max qscale */
int max_qdiff; /* max qscale difference between frames */ int max_qdiff; /* max qscale difference between frames */
int force_type; /* 0= no force, otherwise I_TYPE, P_TYPE, ... */
struct AVCodec *codec; struct AVCodec *codec;
void *priv_data; void *priv_data;

View File

@ -514,7 +514,8 @@ int MPV_encode_picture(AVCodecContext *avctx,
init_put_bits(&s->pb, buf, buf_size, NULL, NULL); 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) { if (!s->intra_only) {
/* first picture of GOP is intra */ /* first picture of GOP is intra */
if (s->picture_in_gop_number % s->gop_size==0 || s->force_type==I_TYPE){ if (s->picture_in_gop_number % s->gop_size==0 || s->force_type==I_TYPE){