Автор |
Сообщение |
Сообщение создано: 06. 03. 2012 [00:44]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
|
"roman" wrote:
Замена так и не реализована. Просто выполняется подмена в лайоуте, что неэффективно в отношении потребления памяти.
Реализация проигрывания видео с помощью Phonon не внесена в существующий тип "Movie".
Реализовал как нужно!
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 11. 03. 2012 [15:29]
|
aleax
Alexey Bondarchuk
Создатель темы
Зарегистрирован(а) с: 27.01.2010
Сообщения: 73
|
"roman" wrote:
Реализовал как нужно!
Наблюдается падение, при использовании Full Video:
1. Запустить проект с медиа-виджетом.
2. Остановить проект.
3. Снова запустить проект.
Либо при редактировании:
1. Открыть виджет в редакторе (Ctrl+E).
2. Закрыть.
3. Снова открыть.
UPD. добавил crash от сборки с отладочными сиволами
[Сообщение редактировалось 1 раз(а), в последний раз 11.03.2012 в 15:46.]
Вложенный файл
|
Сообщение создано: 11. 03. 2012 [16:05]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
|
"aleax" wrote:
Наблюдается падение, при использовании Full Video:
Это не проблема OpenSCADA ибо валится VLC бекенд при установке обычного нулевого смещения, т.е. начало проигрывания. Даже если поток не seekable падать бекенд не должен. Что проигрываете, если не seekable поток то добавлю проверку на seekable?
С XINE бекендом у меня нет никаких падений!
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 11. 03. 2012 [17:20]
|
aleax
Alexey Bondarchuk
Создатель темы
Зарегистрирован(а) с: 27.01.2010
Сообщения: 73
|
"roman" wrote:
Это не проблема OpenSCADA ибо валится VLC бекенд при установке обычного нулевого смещения, т.е. начало проигрывания. Даже если поток не seekable падать бекенд не должен. Что проигрываете, если не seekable поток то добавлю проверку на seekable?
С XINE бекендом у меня нет никаких падений!
Действительно, с xine не падает.
Проирываю plant.avi из тестового проекта, что в первом сообщении.
Бекенды phonon по-видиому тот еще глюкодром: с gstreamer, например, не работает loop потока.
А VLC устойчиво валится, даже если не выставлять флаг проигрования.
Попробую собрать еще VLC бекенд посвежее, а то в сквизи версия 0.2, а в тестинге уже 0.5.
|
Сообщение создано: 13. 03. 2012 [11:37]
|
aleax
Alexey Bondarchuk
Создатель темы
Зарегистрирован(а) с: 27.01.2010
Сообщения: 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. как будут реальные камеры, отпишусь отдельно, если возникнут какие-то специфические нюансы).
Также предлагаю изменить условие для определения видеопотока:
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’а отображает, если конечно сможет ;-)
|
Сообщение создано: 13. 03. 2012 [13:12]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
|
"aleax" wrote:
так, как форматов потоков множество (сейчас конкретно тестировал rtsp://) и удобнее было бы указать в качестве источника "stream:rtsp://127.0.0.1:5540/ch1" и дальше пусть бекенд phonon’а отображает, если конечно сможет ;-)
Принято!
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 22. 03. 2012 [08:50]
|
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
|
--disable-Phonon не работает
|
Сообщение создано: 22. 03. 2012 [09:02]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
|
"yozhik" wrote:
--disable-Phonon не работает
И не должно. Он включается/выключается автоматом по наличию библиотек и хедеров.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 23. 03. 2012 [12:40]
|
gsxr
Андрей Ехлаков
Зарегистрирован(а) с: 03.03.2010
Сообщения: 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
Как собрать?
|
Сообщение создано: 23. 03. 2012 [12:46]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
|
"gsxr" wrote:
Как собрать?
Не знаю. У меня собирается.
Learn, learn and learn better than work, work and work.
|