Skip to content

Commit 1ebc6dd

Browse files
committed
Fix: clock not started. New: root widget.
BUG: renderers not update if have parent
1 parent 511c9fe commit 1ebc6dd

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

examples/videowall/VideoWall.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,17 @@ using namespace QtAV;
2828
const int kSyncInterval = 2000;
2929

3030
VideoWall::VideoWall(QObject *parent) :
31-
QObject(parent),r(3),c(3)
31+
QObject(parent),r(3),c(3),view(0)
3232
{
3333
clock = new AVClock(this);
3434
clock->setClockType(AVClock::ExternalClock);
35+
//view = new QWidget;
36+
if (view) {
37+
qDebug("WA_OpaquePaintEvent=%d", view->testAttribute(Qt::WA_OpaquePaintEvent));
38+
view->resize(qApp->desktop()->size());
39+
view->move(QPoint(0, 0));
40+
view->show();
41+
}
3542
}
3643

3744
VideoWall::~VideoWall()
@@ -49,6 +56,7 @@ VideoWall::~VideoWall()
4956
}
5057
players.clear();
5158
}
59+
delete view;
5260
}
5361

5462
void VideoWall::setRows(int n)
@@ -88,11 +96,11 @@ void VideoWall::show()
8896
}
8997
qDebug("show wall: %d x %d", r, c);
9098

91-
int w = qApp->desktop()->width()/c;
92-
int h = qApp->desktop()->height()/r;
99+
int w = view ? view->frameGeometry().width()/c : qApp->desktop()->width()/c;
100+
int h = view ? view->frameGeometry().height()/r : qApp->desktop()->height()/r;
93101
for (int i = 0; i < r; ++i) {
94102
for (int j = 0; j < c; ++j) {
95-
WidgetRenderer* renderer = new WidgetRenderer;
103+
WidgetRenderer* renderer = new WidgetRenderer(view);
96104
renderer->setWindowFlags(Qt::FramelessWindowHint);
97105
renderer->resize(w, h);
98106
renderer->move(j*w, i*h);
@@ -197,6 +205,8 @@ bool VideoWall::eventFilter(QObject *watched, QEvent *event)
197205
foreach (AVPlayer* player, players) {
198206
player->load(file);
199207
}
208+
clock->reset();
209+
clock->start();
200210
foreach (AVPlayer* player, players) {
201211
player->play();
202212
}
@@ -246,7 +256,6 @@ void VideoWall::timerEvent(QTimerEvent *e)
246256
qDebug("clock not running");
247257
return;
248258
}
249-
qDebug("timerEvent....");
250259
foreach (AVPlayer *player, players) {
251260
player->masterClock()->updateExternalClock(*clock);
252261
}

examples/videowall/VideoWall.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class VideoWall : public QObject
4444
int timer_id;
4545
QtAV::AVClock *clock;
4646
QList<QtAV::AVPlayer*> players;
47+
QWidget *view;
4748
};
4849

4950
#endif // QTAV_VIDEOWALL_H

0 commit comments

Comments
 (0)