avcodec/dpx: extract frame rate
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 25 Apr 2014 21:13:17 +0000 (23:13 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 25 Apr 2014 21:40:59 +0000 (23:40 +0200)
Fixes part of Ticket3511

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/dpx.c

index 5c3c3e8..bbb06d2 100644 (file)
@@ -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;