aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-04-25 23:13:17 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-04-25 23:40:59 +0200
commite0e60c9211332e3b41512e0a65ba02d613b6fd3f (patch)
tree0ca772e84fe87106a01e7a38354344ace3fb98a4
parentaf165acefacd89196c003c24802fa3c494d54d3a (diff)
downloadffmpeg-e0e60c9211332e3b41512e0a65ba02d613b6fd3f.tar.gz
avcodec/dpx: extract frame rate
Fixes part of Ticket3511 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/dpx.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/dpx.c b/libavcodec/dpx.c
index 5c3c3e81cb..bbb06d2724 100644
--- a/libavcodec/dpx.c
+++ b/libavcodec/dpx.c
@@ -20,6 +20,7 @@
*/
#include "libavutil/intreadwrite.h"
+#include "libavutil/intfloat_readwrite.h"
#include "libavutil/imgutils.h"
#include "bytestream.h"
#include "avcodec.h"
@@ -146,6 +147,16 @@ static int decode_frame(AVCodecContext *avctx,
else
avctx->sample_aspect_ratio = (AVRational){ 0, 1 };
+ if (offset >= 1724 + 4) {
+ buf = avpkt->data + 1724;
+ i = read32(&buf, endian);
+ if(i) {
+ AVRational q = av_d2q(av_int2flt(i), 4096);
+ if (q.num > 0 && q.den > 0)
+ avctx->time_base = av_inv_q(q);
+ }
+ }
+
switch (descriptor) {
case 6: // Y
elements = 1;