From 1eb4d2913f22ef5c8bd428ede262a0dcd0da9969 Mon Sep 17 00:00:00 2001 From: martii Date: Wed, 30 Apr 2014 19:08:30 +0200 Subject: [PATCH] libeplayer3/input: stream duration fix Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/18d7a15b88c2c26aa39bb9ab7133151241934682 Author: martii Date: 2014-04-30 (Wed, 30 Apr 2014) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3/include/manager.h | 3 +-- libeplayer3/input.cpp | 24 ++++-------------------- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/libeplayer3/include/manager.h b/libeplayer3/include/manager.h index 2442b5c..768c5ae 100644 --- a/libeplayer3/include/manager.h +++ b/libeplayer3/include/manager.h @@ -44,14 +44,13 @@ struct Track { std::string title; int pid; - int64_t duration; AVFormatContext *avfc; AVStream *stream; bool inactive; bool is_static; int ac3flags; int type, mag, page; // for teletext - Track() : pid(-1), duration(-1), avfc(NULL), stream(NULL), inactive(0), is_static(0), ac3flags(0) {} + Track() : pid(-1), avfc(NULL), stream(NULL), inactive(0), is_static(0), ac3flags(0) {} }; class Manager diff --git a/libeplayer3/input.cpp b/libeplayer3/input.cpp index 501cf88..3e3a580 100644 --- a/libeplayer3/input.cpp +++ b/libeplayer3/input.cpp @@ -446,10 +446,6 @@ bool Input::UpdateTracks() AVDictionaryEntry *lang = av_dict_get(stream->metadata, "language", NULL, 0); track.title = lang ? lang->value : ""; track.pid = stream->id; - if (stream->duration == AV_NOPTS_VALUE) - track.duration = avfc->duration; - else - track.duration = av_rescale(stream->time_base.num * AV_TIME_BASE, stream->duration, stream->time_base.den); switch (stream->codec->codec_type) { case AVMEDIA_TYPE_VIDEO: { @@ -550,23 +546,11 @@ bool Input::Seek(int64_t avts, bool absolute) bool Input::GetDuration(int64_t &duration) { + if (avfc) { + duration = avfc->duration; + return true; + } duration = 0; - - Track *track = videoTrack; - if (track && track->duration) { - duration = track->duration; - return true; - } - track = audioTrack; - if (track && track->duration) { - duration = track->duration; - return true; - } - track = subtitleTrack; - if (track && track->duration) { - duration = track->duration; - return true; - } return false; }