All pastes #1947154 Raw Edit

Anonymous

public text v1 · immutable
#1947154 ·published 2010-09-23 07:00 UTC
rendered paste body
Index: libs/libmythtv/privatedecoder_crystalhd.cpp
===================================================================
--- libs/libmythtv/privatedecoder_crystalhd.cpp	(revision 26356)
+++ libs/libmythtv/privatedecoder_crystalhd.cpp	(working copy)
@@ -374,9 +374,9 @@
 
     }
 
-    int64_t chd_timestamp = 0; // 100ns units
+    uint64_t chd_timestamp = 0; // 100ns units
     if (pkt->pts != (int64_t)AV_NOPTS_VALUE)
-        chd_timestamp = (int64_t)(av_q2d(stream->time_base) * pkt->pts * 100000000000LL);
+        chd_timestamp = (uint64_t)(av_q2d(stream->time_base) * pkt->pts * 100000000000LL);
 
     // TODO check for busy state and available buffer size
     INIT_ST
@@ -410,7 +410,7 @@
     VideoFrame *frame = m_decoded_frames.takeLast();
     *got_picture_ptr = 1;
     picture->reordered_opaque = (int64_t)(frame->timecode / av_q2d(stream->time_base) 
-                                                          / 100000000);
+                                                          / 100000000000LL);
     picture->interlaced_frame = frame->interlaced_frame;
     picture->top_field_first  = frame->top_field_first;
     picture->repeat_pict      = frame->repeat_pict;
@@ -486,7 +486,7 @@
         unsigned char* buf  = new unsigned char[size];
         m_frame = new VideoFrame();
         init(m_frame, FMT_YV12, buf, out_width, out_height, size);
-        m_frame->timecode = (uint64_t)((double)out->PicInfo.timeStamp / 1000.0f);
+        m_frame->timecode = (int64_t)out->PicInfo.timeStamp;
         m_frame->frameNumber = out->PicInfo.picture_number;
     }