Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

GStreamer e Qt

8 views
Skip to first unread message

Marco Trapanese

unread,
Jun 8, 2013, 11:28:28 AM6/8/13
to
Ciao,

provo a chiedere anche qui, non si sa mai. Come sempre cerco di fare una
cosa semplice e mi ritrovo impantanato.

Parliamo di Debian Jessie, 32-bit, GStreamer-0.10, Qt4.8.2.
Ho un QWidget su cui voglio visualizzare uno stream video:

class Player : public QGst::Ui::VideoWidget { ... }

void Player::play() {
QGst::PipelinePtr pipeline =
QGst::ElementFactory::make("playbin2").dynamicCast<QGst::Pipeline>();
watchPipeline(pipeline);
pipeline->setProperty("uri", "/path/to/my/video.mp4");
QGst::BusPtr bus = pipeline->bus();
bus->addSignalWatch();
QGlib::connect(bus, "message", this, &Player::onBusMessage);
pipeline->setState(QGst::StatePlaying);
}


Ottimo! Ora voglio creare un altro QWidget sovrapposto al primo, in modo
da poterci disegnare o inserire altri controlli, con le dovute
trasparenze. Quindi nella app principale scrivo:

Player *player = new Player(this);
QWidget *videoOverlay = new QWidget(player);
// set the videoOverlay geometry
videoOverlay->setWindowFlags(Qt::FramelessWindowHint |
Qt::WindowStaysOnTopHint);
videoOverlay->setAttribute(Qt::WA_TranslucentBackground);

Tutto perfetto, se non che chiamando il metodo play() di cui sopra... le
trasparenze tornano opache! Ciò accade quando viene eseguita la funzione
watchPipeline().

Dovrebbe essere una cosa banale, ma non ne vengo a capo. La
documentazione ufficiale langue in proposito, e i vari forum non mi sono
stati di aiuto.

Avete qualche idea?
Grazie!
Marco
0 new messages