libeplayer3: use uint64_t instead of float/double for position calculations

Origin commit data
------------------
Branch: master
Commit: 8ccf1ba33b
Author: martii <m4rtii@gmx.de>
Date: 2014-04-14 (Mon, 14 Apr 2014)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
martii
2014-04-14 21:47:40 +02:00
parent a7d432cae1
commit e6da6d7ed4
7 changed files with 52 additions and 58 deletions

View File

@@ -222,14 +222,14 @@ bool cPlayback::GetPosition(int &position, int &duration)
if (got_duration)
return true;
double length = 0;
int64_t length = 0;
player->GetDuration(length);
if(length <= 0)
duration = duration+1000;
duration = position + AV_TIME_BASE / 1000;
else
duration = length*1000.0;
duration = length * 1000 / AV_TIME_BASE;
return true;
}
@@ -246,8 +246,7 @@ bool cPlayback::SetPosition(int position, bool absolute)
init_jump = position;
return false;
}
float pos = (position/1000.0);
player->Seek(pos, absolute);
player->Seek((int64_t)position * (AV_TIME_BASE / 1000), absolute);
return true;
}