From 88a4587b978199084e1280c29ded57788c0dc83b Mon Sep 17 00:00:00 2001 From: max_10 Date: Wed, 8 Oct 2014 20:05:01 +0200 Subject: [PATCH] test old calcPts Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/3d4245d76df9bb23d2b13c7a01f10b594f81459f Author: max_10 Date: 2014-10-08 (Wed, 08 Oct 2014) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3/input.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/libeplayer3/input.cpp b/libeplayer3/input.cpp index 98250bf..b9c6db2 100644 --- a/libeplayer3/input.cpp +++ b/libeplayer3/input.cpp @@ -20,7 +20,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#define ENABLE_LOGGING 0 +#define ENABLE_LOGGING 1 #include #include @@ -58,21 +58,43 @@ Input::~Input() { } +#if 1 +int64_t Input::calcPts(AVStream * stream, int64_t pts) +{ + if (!stream) { + return INVALID_PTS_VALUE; + } + + if (pts == AV_NOPTS_VALUE) + pts = INVALID_PTS_VALUE; + else if (avfc->start_time == AV_NOPTS_VALUE) + pts = 90000.0 * (double) pts * av_q2d(stream->time_base); + else + pts = 90000.0 * (double) pts * av_q2d(stream->time_base) - 90000.0 * avfc->start_time / AV_TIME_BASE; + + if (pts & 0x8000000000000000ull) + pts = INVALID_PTS_VALUE; + + return pts; +} +#else int64_t Input::calcPts(AVStream * stream, int64_t pts) { if (pts == AV_NOPTS_VALUE) return INVALID_PTS_VALUE; pts = av_rescale(90000ll * stream->time_base.num, pts, stream->time_base.den); -#if 0 if (avfc->start_time != AV_NOPTS_VALUE) pts -= av_rescale(90000ll, avfc->start_time, AV_TIME_BASE); -#endif + if (pts < 0) return INVALID_PTS_VALUE; + if (pts & 0x8000000000000000ull) + pts = INVALID_PTS_VALUE; return pts; } +#endif // from neutrino-mp/lib/libdvbsubtitle/dvbsub.cpp extern void dvbsub_write(AVSubtitle *, int64_t);