tvrsc и QT. Тормоза и зависания
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Добрый день!
Решил потестировать вывод изображения с камер.
Собрал QT проект, по примеру файла v4.qml.
Вывод картинки производится на плаг SK-ATM0700D4-Plug.
Собрал системы на основе imx6sk_qt5gst_defconfig, изменив только тип платы и в fb0 поставил ldb, sk-atm0704, а в fb1 поставил hdmi, 1920x1080.
Когда я запустил проект я получил вывод картинки с камеры на экран, но она периодически подвисала на короткое время и дальше продолжала вещать, в итоге через минуту происходит общее подвисание платы и перезагрузка.
Подскажите, пожалуйста, где я опять чего не так сделал?
sasamy
Пункты: 83540
Регистрация: 14.08.2009
Цитата
Решил потестировать вывод изображения с камер.
с каких камер - c USB ? v4.qml _solo_ даже а не quad с захватом на tw6869 загружает CPU максимум на 10 - 15 % с выводом на hdmi 1920x1080
вот например v4.qml на sk-imx6q с выводом на SK-ATM0700D4-Plug
посмотрите еще - правильные ли устройтва /dev/video используете
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Камера аналогововая, подключена через плаг SK-TW6869.
Я кадры беру с video1, video0, как я понима, это мой монитор (плаг SK-ATM0700D4-Plug)
Код MediaPlayer {
id: player0
source: "tvsrc:///dev/video1"
autoPlay: true
}
VideoOutput {
source: player0
fillMode: VideoOutput.Stretch
anchors.fill: parent
}
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Вот видео того как это работает:
Видео
С 18-21 секунды можно заметить промаргивания белые...иногда они бывают по всему экрану.
На 27 секунде картинка замирает и на 1 мин 21 сек происходит рестарт платы.
sasamy
Пункты: 83540
Регистрация: 14.08.2009
Ваш код не соответствует тому что показываете на видео. Начните с простого
# cat v1.qml
import QtQuick 2.0
import QtMultimedia 5.4
Item {
Rectangle {
width: parent.width/2
height: parent.height/2
anchors.left: parent.left
anchors.top: parent.top
MediaPlayer {
id: player0
source: "tvsrc:///dev/video1"
autoPlay: true
}
VideoOutput {
source: player0
fillMode: VideoOutput.Stretch
anchors.fill: parent
}
}
}
в обычном vi на плате создайте такой файл, запустите
# qmlscene v1.qml
а дальше - я не специалист по Qt и QML - смотрите документацию Qt, книжки например
http://qmlbook.github.io
учитывайте в примерах что нет оконной системы
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Вот полный код, тогда я привел только часть, которую посчитал самой главной.
Он же в принципе отвечал за вывод изображения на экран.
Код import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Layouts 1.1
import QtMultimedia 5.0
Item {
width: 800
height: 480
Rectangle {
id: rectangle1
x: 89
y: 8
width: 200
height: 200
color: "#ffffff"
MediaPlayer {
id: player0
source: "tvsrc:///dev/video1"
autoPlay: true
}
VideoOutput {
source: player0
fillMode: VideoOutput.Stretch
anchors.fill: parent
}
}
Text {
id: text1
x: 295
y: 8
width: 102
height: 52
text: qsTr("Hello world!")
font.pixelSize: 20
}
}
Pavel Ivanchenko
Admin
Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Попробовал у себя на imx6q плате этот qml - работает, не виснет.
На своей плате проверьте на всякий случай, чтобы вместо C137,138 стояли резисторы 0Ом.
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
На сколько я понимаю, там они и стоят.
Может я плату или плаг испортил как-то? Есть способ как это проверить?
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Я систему разворачиваю с флешки, может можете мне скинуть рабочий образ, чтобы я попробовал?
Мало ли мест где я мог косякнуть :)