Skip to content

Commit

Permalink
fix wrong duration & start time in statistics. issue 176
Browse files Browse the repository at this point in the history
  • Loading branch information
wang-bin committed Mar 12, 2014
1 parent 290a002 commit 76c405e
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/AVDemuxer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -638,7 +638,7 @@ qint64 AVDemuxer::duration() const
//AVFrameContext use AV_TIME_BASE as time base. AVStream use their own timebase
qint64 AVDemuxer::startTimeUs() const
{
if (!format_context)
if (!format_context || format_context->duration == AV_NOPTS_VALUE)
return 0;
return format_context->start_time;
}
Expand Down
5 changes: 3 additions & 2 deletions src/AVPlayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1147,8 +1147,9 @@ void AVPlayer::initStatistics()
mStatistics.bit_rate = formatCtx->bit_rate;
mStatistics.format = formatCtx->iformat->name;
//AV_TIME_BASE_Q: msvc error C2143
mStatistics.start_time = QTime(0, 0, 0).addMSecs(int((qreal)formatCtx->start_time/(qreal)AV_TIME_BASE*1000.0));
mStatistics.duration = QTime(0, 0, 0).addMSecs(int((qreal)formatCtx->duration/(qreal)AV_TIME_BASE*1000.0));
//formatCtx->duration may be AV_NOPTS_VALUE. AVDemuxer.duration deals with this case
mStatistics.start_time = QTime(0, 0, 0).addMSecs(int(mediaStartPosition()));
mStatistics.duration = QTime(0, 0, 0).addMSecs((int)duration());
struct common_statistics_t {
int stream_idx;
AVCodecContext *ctx;
Expand Down

0 comments on commit 76c405e

Please sign in to comment.