summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorFabrice Bellard <fabrice@bellard.org>2003-12-12 16:56:38 +0000
committerFabrice Bellard <fabrice@bellard.org>2003-12-12 16:56:38 +0000
commit7a0f9d7e7d03ec7af11f77d474323fedbaa82368 (patch)
treecf230a5017c9be2e0cefe070813d178ff7cde40c /libavcodec
parent3e9d718ecbf2424ba219a078d73cfa3c2ac6c169 (diff)
fixed top_field_first support when encoding
Originally committed as revision 2600 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/mpeg12.c6
-rw-r--r--libavcodec/mpegvideo.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
index 8591877d37..9d4658d0c6 100644
--- a/libavcodec/mpeg12.c
+++ b/libavcodec/mpeg12.c
@@ -448,7 +448,11 @@ void mpeg1_encode_picture_header(MpegEncContext *s, int picture_number)
}
put_bits(&s->pb, 2, s->intra_dc_precision);
put_bits(&s->pb, 2, s->picture_structure= PICT_FRAME);
- put_bits(&s->pb, 1, s->top_field_first);
+ if (s->progressive_sequence) {
+ put_bits(&s->pb, 1, 0); /* no repeat */
+ } else {
+ put_bits(&s->pb, 1, s->current_picture_ptr->top_field_first);
+ }
/* XXX: optimize the generation of this flag with entropy
measures */
s->frame_pred_frame_dct = s->progressive_sequence;
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 631262d7bc..4774709486 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -1560,7 +1560,9 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg){
pic->quality= pic_arg->quality;
pic->pict_type= pic_arg->pict_type;
pic->pts = pic_arg->pts;
-
+ pic->interlaced_frame = pic_arg->interlaced_frame;
+ pic->top_field_first = pic_arg->top_field_first;
+
if(s->input_picture[encoding_delay])
pic->display_picture_number= s->input_picture[encoding_delay]->display_picture_number + 1;