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:
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…
Reference in New Issue
Block a user