Browse Source

- 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
tags/v0.5
Juanjo 23 years ago
parent
commit
c80340a4eb
2 changed files with 5 additions and 4 deletions
  1. +4
    -3
      libavcodec/avcodec.h
  2. +1
    -1
      libavcodec/mpeg12.c

+ 4
- 3
libavcodec/avcodec.h View File

@@ -5,8 +5,8 @@

#define LIBAVCODEC_VERSION_INT 0x000406
#define LIBAVCODEC_VERSION "0.4.6"
#define LIBAVCODEC_BUILD 4606
#define LIBAVCODEC_BUILD_STR "4606"
#define LIBAVCODEC_BUILD 4607
#define LIBAVCODEC_BUILD_STR "4607"

enum CodecID {
CODEC_ID_NONE,
@@ -130,7 +130,8 @@ typedef struct AVCodecContext {
#define FF_ASPECT_16_9_525 5
int gop_size; /* 0 = intra only */
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
decoder to draw an horizontal band. It improve cache usage. Not
all codecs can do that. You must check the codec capabilities


+ 1
- 1
libavcodec/mpeg12.c View File

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


Loading…
Cancel
Save