vrplayer fixes

This commit is contained in:
Jay Sorg 2013-01-16 10:31:11 -08:00
parent 88be8505a9
commit 6daec38c65
4 changed files with 59 additions and 49 deletions

View File

@ -312,6 +312,8 @@ void MainWindow::onMediaDurationInSeconds(int duration)
int secs = 0; int secs = 0;
char buf[20]; char buf[20];
//return;
/* setup progress bar */ /* setup progress bar */
slider->setMinimum(0); slider->setMinimum(0);
slider->setMaximum(duration * 100); /* in hundredth of a sec */ slider->setMaximum(duration * 100); /* in hundredth of a sec */

View File

@ -2,4 +2,7 @@
MediaPacket::MediaPacket() MediaPacket::MediaPacket()
{ {
av_pkt = 0;
delay_in_us = 0;
seq = 0;
} }

View File

@ -62,8 +62,8 @@ label1:
sendMutex->lock(); sendMutex->lock();
send_audio_pkt(channel, stream_id, pkt->av_pkt); send_audio_pkt(channel, stream_id, pkt->av_pkt);
sendMutex->unlock(); sendMutex->unlock();
delete pkt;
usleep(pkt->delay_in_us); usleep(pkt->delay_in_us);
delete pkt;
} }
} }

View File

@ -22,6 +22,7 @@ PlayVideo::PlayVideo(QObject *parent,
void PlayVideo::play() void PlayVideo::play()
{ {
MediaPacket *pkt; MediaPacket *pkt;
int usl;
while (1) while (1)
{ {
@ -78,20 +79,24 @@ label1:
if (videoQueue->isEmpty()) if (videoQueue->isEmpty())
{ {
qDebug() << "PlayVideo::play: GOT EMPTY";
usleep(1000 * 100);
continue; continue;
} }
pkt = videoQueue->dequeue(); pkt = videoQueue->dequeue();
sendMutex->lock(); sendMutex->lock();
send_video_pkt(channel, stream_id, pkt->av_pkt); send_video_pkt(channel, stream_id, pkt->av_pkt);
sendMutex->unlock(); sendMutex->unlock();
usl = pkt->delay_in_us;
if (usl < 0)
{
usl = 0;
}
if (usl > 100 * 1000)
{
usl = 100 * 1000;
}
usleep(usl);
delete pkt; delete pkt;
usleep(pkt->delay_in_us);
updateMediaPos(); updateMediaPos();
if (elapsedTime == 0) if (elapsedTime == 0)
elapsedTime = av_gettime(); elapsedTime = av_gettime();