[Qt-interest] Phonon - access video frames

Richard richardmg at trolltech.com
Fri Mar 6 16:05:16 CET 2009


Some degradation of speed will occur, but it should'nt be that bad. If  
the viewport widget is set to QGLWidget, most platforms can use  
hardware acceleration directly without going through software. And  
even with software rendering, it will still be far better that trying  
to grab the frames yourself.

-Richard




Den Mar 6, 2009 kl. 3:43 PM skrev Martin Schröer:

> What about speed ? Is this approach fast enough to do that real time
> drawing on the vid frames,
> like i described in the former posts ?
>
> Richard schrieb:
>> Hi!
>> The "m_videoWidget->setAttribute(Qt::WA_DontShowOnScreen);" trick  
>> done
>> for WebKit is is a "hidden" work around for Qt since Phonon is  
>> lacking
>> an API for grabbing frames (at the moment). We don't recommend using
>> the same work around for others, as support for this might change
>> without notice in a future release.
>>
>> If what you need is to draw overlay, consider putting your video
>> widget inside graphics view instead. It will then act as any other
>> graphics item, and it should therefore be easy to add any overlay.
>>
>> -Richard
>>
>>
>>
>>
>> Den Mar 5, 2009 kl. 8:09 PM skrev Martin Schröer:
>>
>>
>>> Helder, thanks for your reply.
>>>
>>> Another suggestion made was:
>>>
>>> QPixmap::grabWidget(QWidget * widget, int x = 0, int y = 0, int  
>>> width
>>> = -1, int height = -1)
>>>
>>>
>>> VideoWidget* videoWidget = new VideoWidget(this);
>>> QPixmap pixmap = QPixmap::grabWidget(videoWidget);
>>>
>>> I'm a bit unsure what to do.
>>> What i want to do is to overlay video frames in realtime, with some
>>> static contents
>>> ( like text ) but also with some cursor.
>>>
>>> What approach would be the best to achieve that ?
>>>
>>>
>>>
>>> Helder Correia schrieb:
>>> On Wed, Mar 4, 2009 at 2:11 PM, Martin Schröer <gordon at gordonswelt.de 
>>> >
>>> wrote:
>>>
>>>>> I want to access the video frames of a media played back directly,
>>>>> so i can
>>>>> apply some manipulation to it before it goes to the screen.
>>>>> May someone give me hints on this ?
>>>>>
>>>>>
>>>> Hi Martin. Take a look at
>>>> src/3rdparty/webkit/WebCore/platform/graphics/qt/
>>>> MediaPlayerPrivatePhonon.cpp
>>>> Particularly these lines:
>>>>  m_videoWidget->setAttribute(Qt::WA_DontShowOnScreen);
>>>>  ...
>>>>  m_videoWidget->render(painter, QPoint(rect.x(), rect.y()),
>>>> QRegion(0, 0, rect.width(), rect.height()));
>>>>
>>>> _______________________________________________
>>>> Qt-interest mailing list
>>>> Qt-interest at trolltech.com
>>>> http://lists.trolltech.com/mailman/listinfo/qt-interest
>>>>
>>>>
>>> _______________________________________________
>>> Qt-interest mailing list
>>> Qt-interest at trolltech.com
>>> http://lists.trolltech.com/mailman/listinfo/qt-interest
>>>
>>
>>
>> _______________________________________________
>> Qt-interest mailing list
>> Qt-interest at trolltech.com
>> http://lists.trolltech.com/mailman/listinfo/qt-interest
>>
>>
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest





More information about the Qt-interest-old mailing list