summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Schreter <schreter@gmx.net>2009-02-24 20:17:02 +0000
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>2009-02-24 20:17:02 +0000
commit810c451b02404a3a2d43186003a4b2b9cbedd02e (patch)
tree7b99c9eb6d9405f955d2f2b92ac1f66cc289db68
parenta05aa821b67d48a008e0f470fd2f9656603d40f5 (diff)
Change duration computation to use time_base instead of TB/2.
Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17570 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/avcodec.h5
-rw-r--r--libavformat/utils.c5
2 files changed, 2 insertions, 8 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index cfe38c5edb..d4bbe29b82 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -3098,12 +3098,9 @@ typedef struct AVCodecParserContext {
* It signals, how much longer the frame duration of the current frame
* is compared to normal frame duration.
*
- * frame_duration = (2 + repeat_pict) / (2*fps)
+ * frame_duration = (1 + repeat_pict) * time_base
*
* It is used by codecs like H.264 to display telecined material.
- *
- * @note This field can also be set to -1 for half-frame duration in case
- * of field pictures.
*/
int repeat_pict; /* XXX: Put it back in AVCodecContext. */
int64_t pts; /* pts of the current frame */
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 46a1b5f8bb..61f74c3c18 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -680,10 +680,7 @@ static void compute_frame_duration(int *pnum, int *pden, AVStream *st,
*pnum = st->codec->time_base.num;
*pden = st->codec->time_base.den;
if (pc && pc->repeat_pict) {
- // NOTE: repeat_pict can be also -1 for half-frame durations,
- // e.g., in H.264 interlaced field picture stream
- *pden *= 2;
- *pnum = (*pnum) * (2 + pc->repeat_pict);
+ *pnum = (*pnum) * (1 + pc->repeat_pict);
}
}
break;