From b6fed4cfc9aab82d18dd617d3f8fdc17a54d9d7b Mon Sep 17 00:00:00 2001 From: beveloper Date: Sat, 7 Feb 2004 12:12:43 +0000 Subject: [PATCH] fixed calculation of encoded audio duration git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6518 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/media/plugins/avi_reader/avi_reader.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/add-ons/media/plugins/avi_reader/avi_reader.cpp b/src/add-ons/media/plugins/avi_reader/avi_reader.cpp index a0e938100f..b3a255929b 100644 --- a/src/add-ons/media/plugins/avi_reader/avi_reader.cpp +++ b/src/add-ons/media/plugins/avi_reader/avi_reader.cpp @@ -152,7 +152,10 @@ aviReader::AllocateCookie(int32 streamNumber, void **_cookie) TRACE("frame_count %Ld (using fallback)\n", cookie->frame_count); } - if (stream_header->rate) { + if (stream_header->rate && stream_header->scale) { + cookie->duration = (1000000LL * (int64)stream_header->length * (int64)stream_header->scale) / stream_header->rate; + TRACE("duration %.6f (%Ld) (using scale & rate)\n", cookie->duration / 1E6, cookie->duration); + } else if (stream_header->rate) { cookie->duration = (1000000LL * (int64)stream_header->length) / stream_header->rate; TRACE("duration %.6f (%Ld) (using rate)\n", cookie->duration / 1E6, cookie->duration); } else {