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:
		
							parent
							
								
									4d69fbc99e
								
							
						
					
					
						commit
						60e575acc8
					
				@ -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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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){
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user