- repeat_pict added to AVCodecContext to signal if the decoder must repeat

frames from 3:2 pulldown sources.
- repeat_pict honoured by MPEG-1/2 decoder.

Originally committed as revision 486 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Juanjo 2002-05-12 02:55:48 +00:00
parent b6acbc3caf
commit c80340a4eb
2 changed files with 5 additions and 4 deletions

View File

@ -5,8 +5,8 @@
#define LIBAVCODEC_VERSION_INT 0x000406 #define LIBAVCODEC_VERSION_INT 0x000406
#define LIBAVCODEC_VERSION "0.4.6" #define LIBAVCODEC_VERSION "0.4.6"
#define LIBAVCODEC_BUILD 4606 #define LIBAVCODEC_BUILD 4607
#define LIBAVCODEC_BUILD_STR "4606" #define LIBAVCODEC_BUILD_STR "4607"
enum CodecID { enum CodecID {
CODEC_ID_NONE, CODEC_ID_NONE,
@ -130,7 +130,8 @@ typedef struct AVCodecContext {
#define FF_ASPECT_16_9_525 5 #define FF_ASPECT_16_9_525 5
int gop_size; /* 0 = intra only */ int gop_size; /* 0 = intra only */
enum PixelFormat pix_fmt; /* pixel format, see PIX_FMT_xxx */ enum PixelFormat pix_fmt; /* pixel format, see PIX_FMT_xxx */
int repeat_pict; /* set this to 1 if you want the decoder
to repeat frames for 3:2 pulldown (MPEG-2) */
/* if non NULL, 'draw_horiz_band' is called by the libavcodec /* if non NULL, 'draw_horiz_band' is called by the libavcodec
decoder to draw an horizontal band. It improve cache usage. Not decoder to draw an horizontal band. It improve cache usage. Not
all codecs can do that. You must check the codec capabilities all codecs can do that. You must check the codec capabilities

View File

@ -1588,7 +1588,7 @@ static int mpeg_decode_frame(AVCodecContext *avctx,
buf_ptr = buf; buf_ptr = buf;
buf_end = buf + buf_size; buf_end = buf + buf_size;
if (s->repeat_field % 2 == 1) { if (s->repeat_field % 2 == 1 && avctx->repeat_pict) {
s->repeat_field++; s->repeat_field++;
//fprintf(stderr,"\nRepeating last frame: %d -> %d! pict: %d %d", avctx->frame_number-1, avctx->frame_number, //fprintf(stderr,"\nRepeating last frame: %d -> %d! pict: %d %d", avctx->frame_number-1, avctx->frame_number,
// s2->picture_number, s->repeat_field); // s2->picture_number, s->repeat_field);