summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Schreter <schreter@gmx.net>2009-02-24 20:19:59 +0000
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>2009-02-24 20:19:59 +0000
commitfc9fe42833cb205200fc977fa9014616c70aa4bf (patch)
treeb709f9da91b7484911be66fbeac11ec00f90e3a5
parent810c451b02404a3a2d43186003a4b2b9cbedd02e (diff)
Correct time_base of H.264 and repeat_pict.
Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17571 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/h264.c2
-rw-r--r--libavcodec/h264_parser.c14
2 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 89f9978b2b..344cee59ab 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -3763,7 +3763,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
s->avctx->sample_aspect_ratio.den = 1;
if(h->sps.timing_info_present_flag){
- s->avctx->time_base= (AVRational){h->sps.num_units_in_tick * 2, h->sps.time_scale};
+ s->avctx->time_base= (AVRational){h->sps.num_units_in_tick, h->sps.time_scale};
if(h->x264_build > 0 && h->x264_build < 44)
s->avctx->time_base.den *= 2;
av_reduce(&s->avctx->time_base.num, &s->avctx->time_base.den,
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index 4d1d3f35e2..a0120ac2a1 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -196,29 +196,29 @@ static inline int parse_nal_units(AVCodecParserContext *s,
switch (h->sei_pic_struct) {
case SEI_PIC_STRUCT_TOP_FIELD:
case SEI_PIC_STRUCT_BOTTOM_FIELD:
- s->repeat_pict = -1;
+ s->repeat_pict = 0;
break;
case SEI_PIC_STRUCT_FRAME:
case SEI_PIC_STRUCT_TOP_BOTTOM:
case SEI_PIC_STRUCT_BOTTOM_TOP:
- s->repeat_pict = 0;
+ s->repeat_pict = 1;
break;
case SEI_PIC_STRUCT_TOP_BOTTOM_TOP:
case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM:
- s->repeat_pict = 1;
+ s->repeat_pict = 2;
break;
case SEI_PIC_STRUCT_FRAME_DOUBLING:
- s->repeat_pict = 2;
+ s->repeat_pict = 3;
break;
case SEI_PIC_STRUCT_FRAME_TRIPLING:
- s->repeat_pict = 4;
+ s->repeat_pict = 5;
break;
default:
- s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 0 : -1;
+ s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 1 : 0;
break;
}
} else {
- s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 0 : -1;
+ s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 1 : 0;
}
return 0; /* no need to evaluate the rest */