EnglishУкраїнськаmRussian
Login/New
Topic with many replies

Реализация Phonon бекенда для Media виджета


Author Message
Written on: 06. 03. 2012 [00:44]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"roman" wrote:

Замена так и не реализована. Просто выполняется подмена в лайоуте, что неэффективно в отношении потребления памяти.
Реализация проигрывания видео с помощью Phonon не внесена в существующий тип "Movie".

Реализовал как нужно!

Learn, learn and learn better than work, work and work.
Written on: 11. 03. 2012 [15:29]
aleax
Alexey Bondarchuk
Topic creator
registered since: 27.01.2010
Posts: 73
"roman" wrote:

Реализовал как нужно!


Наблюдается падение, при использовании Full Video:
1. Запустить проект с медиа-виджетом.
2. Остановить проект.
3. Снова запустить проект.
Либо при редактировании:
1. Открыть виджет в редакторе (Ctrl+E).
2. Закрыть.
3. Снова открыть.

UPD. добавил crash от сборки с отладочными сиволами

[This article was edited 1 times, at last 11.03.2012 at 15:46.]
Attachment

crash_2012-03-11_15:23.txt (File type: text/plain, Size: 32.05 kilobytes) — 696 downloads
crash_2012-03-11_15:44.txt (File type: text/plain, Size: 42.48 kilobytes) — 739 downloads
Written on: 11. 03. 2012 [16:05]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"aleax" wrote:

Наблюдается падение, при использовании Full Video:

Это не проблема OpenSCADA ибо валится VLC бекенд при установке обычного нулевого смещения, т.е. начало проигрывания. Даже если поток не seekable падать бекенд не должен. Что проигрываете, если не seekable поток то добавлю проверку на seekable?

С XINE бекендом у меня нет никаких падений!

Learn, learn and learn better than work, work and work.
Written on: 11. 03. 2012 [17:20]
aleax
Alexey Bondarchuk
Topic creator
registered since: 27.01.2010
Posts: 73
"roman" wrote:

Это не проблема OpenSCADA ибо валится VLC бекенд при установке обычного нулевого смещения, т.е. начало проигрывания. Даже если поток не seekable падать бекенд не должен. Что проигрываете, если не seekable поток то добавлю проверку на seekable?

С XINE бекендом у меня нет никаких падений!


Действительно, с xine не падает.
Проирываю plant.avi из тестового проекта, что в первом сообщении.
Бекенды phonon по-видиому тот еще глюкодром: с gstreamer, например, не работает loop потока.
А VLC устойчиво валится, даже если не выставлять флаг проигрования.

Попробую собрать еще VLC бекенд посвежее, а то в сквизи версия 0.2, а в тестинге уже 0.5.
Written on: 13. 03. 2012 [11:37]
aleax
Alexey Bondarchuk
Topic creator
registered since: 27.01.2010
Posts: 73
"aleax" wrote:

Действительно, с xine не падает.
Проирываю plant.avi из тестового проекта, что в первом сообщении.
Бекенды phonon по-видиому тот еще глюкодром: с gstreamer, например, не работает loop потока.
А VLC устойчиво валится, даже если не выставлять флаг проигрования.

Попробую собрать еще VLC бекенд посвежее, а то в сквизи версия 0.2, а в тестинге уже 0.5.


С бекпортом phonon-backend-vlc ничего сходу не вышло, потому решил попробовать аналогично с phonon-backend-gstreamer.
В итоге в связке phonon-4.6.0 и phonon-backend-gstreamer-4.6.0 получилось достаточно безглючно проигрывать как локальные файлы, так и потоковое видео. (вещал с помощью VLC. как будут реальные камеры, отпишусь отдельно, если возникнут какие-то специфические нюансы).

Также предлагаю изменить условие для определения видеопотока:
JAVASCRIPT
Index: src/moduls/ui/Vision/vis_shapes.cpp
===================================================================
--- src/moduls/ui/Vision/vis_shapes.cpp	(revision 1759)
+++ src/moduls/ui/Vision/vis_shapes.cpp	(working copy)
@@ -1249,8 +1249,8 @@
 		if(shD->mediaSrc.compare(0,5,"file:") == 0)
 		    mSrc = MediaSource(QString(shD->mediaSrc.substr(5).c_str()));
 		//> Try play Stream by URL
-		else if(shD->mediaSrc.compare(0,5,"http:") == 0 || shD->mediaSrc.compare(0,4,"ftp:") == 0)
-		    mSrc = MediaSource(QUrl(shD->mediaSrc.c_str()));
+		else if(shD->mediaSrc.compare(0,7,"stream:") == 0)
+		    mSrc = MediaSource(QUrl(shD->mediaSrc.substr(7).c_str()));
 		//> Try remote VCAEngine resource at last
 		if(shD->mediaSrc.size() && (mSrc.type() == MediaSource::Invalid || mSrc.type() == MediaSource::Empty))
 		{

так, как форматов потоков множество (сейчас конкретно тестировал rtsp://) и удобнее было бы указать в качестве источника "stream:rtsp://127.0.0.1:5540/ch1" и дальше пусть бекенд phonon’а отображает, если конечно сможет ;-)
Written on: 13. 03. 2012 [13:12]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"aleax" wrote:

так, как форматов потоков множество (сейчас конкретно тестировал rtsp://) и удобнее было бы указать в качестве источника "stream:rtsp://127.0.0.1:5540/ch1" и дальше пусть бекенд phonon’а отображает, если конечно сможет ;-)

Принято!

Learn, learn and learn better than work, work and work.
Written on: 22. 03. 2012 [08:50]
yozhik
Алексей Николаев
registered since: 29.11.2010
Posts: 127
--disable-Phonon не работает
Written on: 22. 03. 2012 [09:02]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"yozhik" wrote:

--disable-Phonon не работает

И не должно. Он включается/выключается автоматом по наличию библиотек и хедеров.

Learn, learn and learn better than work, work and work.
Written on: 23. 03. 2012 [12:40]
gsxr
Андрей Ехлаков
registered since: 03.03.2010
Posts: 58
При сборке:

vis_shapes.cpp:963: ошибка: ‘Phonon’ is not a namespace-name
vis_shapes.cpp:963: ошибка: expected namespace-name before ‘;’ token
vis_shapes.cpp: In member function ‘void VISION::ShapeMedia::clear(VISION::WdgView*)’:
vis_shapes.cpp:1003: ошибка: нет декларации ‘VideoPlayer’ в этой области видимости
vis_shapes.cpp:1003: ошибка: нет декларации ‘player’ в этой области видимости
vis_shapes.cpp:1003: ошибка: expected type-specifier before ‘VideoPlayer’
vis_shapes.cpp:1003: ошибка: expected ‘>’ before ‘VideoPlayer’
vis_shapes.cpp:1003: ошибка: expected ‘(’ before ‘VideoPlayer’
vis_shapes.cpp:1003: ошибка: expected primary-expression before ‘>’ token
vis_shapes.cpp:1003: ошибка: expected ‘)’ before ‘;’ token
vis_shapes.cpp: In member function ‘virtual bool VISION::ShapeMedia::attrSet(VISION::WdgView*, int, const std::string&)’:
vis_shapes.cpp:1015: ошибка: нет декларации ‘VideoPlayer’ в этой области видимости
vis_shapes.cpp:1015: ошибка: нет декларации ‘player’ в этой области видимости
vis_shapes.cpp:1114: ошибка: expected type-specifier before ‘VideoPlayer’
vis_shapes.cpp:1114: ошибка: expected ‘>’ before ‘VideoPlayer’
vis_shapes.cpp:1114: ошибка: expected ‘(’ before ‘VideoPlayer’
vis_shapes.cpp:1114: ошибка: expected primary-expression before ‘>’ token
vis_shapes.cpp:1115: ошибка: expected ‘)’ before ‘{’ token
vis_shapes.cpp:1127: ошибка: expected type-specifier before ‘VideoPlayer’
vis_shapes.cpp:1127: ошибка: expected ‘>’ before ‘VideoPlayer’
vis_shapes.cpp:1127: ошибка: expected ‘(’ before ‘VideoPlayer’
vis_shapes.cpp:1127: ошибка: expected primary-expression before ‘>’ token
vis_shapes.cpp:1128: ошибка: expected ‘)’ before ‘{’ token



Как собрать?
Written on: 23. 03. 2012 [12:46]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"gsxr" wrote:

Как собрать?

Не знаю. У меня собирается.

Learn, learn and learn better than work, work and work.



9509