LINUX.ORG.RU

Аппаратное вычисление и gstreamer

 


0

2

Народ кто возится с аппаратным вычислением на embedded напарьте на истинный путь. Имеется камера. Там linux и есть к нему SDK. У них есто API и библиотеки для всякой всячины. Я там посмотрел маленько и обнаружил что они пользуются gstreamer. В общем стало понятно, что они пользуются аппаратным ускорением для h265/mjpeg encode и stream конечно(ну там наверно еще разной всячиной). Я задумался об использовании возможность аппаратного ускорения в собственных целях, но как понятно они ни где не документируют как и что. Задача в общем сделать jpeg encoder пользуясь встроенным аппаратным ускорением. Следовательно встает вопрос если это возможно и если да, то так определить что за возможности есть. Вообще хотелось бы покопаться что да как, но мало познаний в том как обычно прикручивают его к linux (было дело работал с TI SDK), да и с самим gstreamer только начел работать.

Так что принимаются любые поучения.

Ответ на: комментарий от i-rinat

спасибо. сейчас почитаю

а есть какой-то способ узнать что за аппаратное ускорение используется (поесть какие возможности есть) в не документированных системах?

pasifus
() автор топика
Ответ на: комментарий от pasifus

Нет, есть только gst-inspect. И дампы графа из gst-launch при включенной переменной среды GST_DEBUG_DUMP_DOT_DIR. Узнать что там внутри элементов GStreamer'а можно только ковырянием в них.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

не густо. ну ладно буду ковыряться. насколько я понил все плагины ну и их параметры и описание можно посмотреть с помощью gst-inspect утилиты и что то мне подсказывает что там их куча. напрашивается вопрос как лучше искать то ото надо?

и вот еще по поводу GST_DEBUG_DUMP_DOT_DIR. ведь после того как я его включить я смогу узнать все плагины которые использует определенный демон (тот что от производителя идет) и по нему уже собрать свой bin?

pasifus
() автор топика
Ответ на: комментарий от pasifus

как лучше искать то ото надо?

grep'ом :)

ведь после того как я его включить я смогу узнать все плагины которые использует определенный демон

Не обязательно, для этого приложение должно вызывать специальную функцию. gst-launch вызывает.

Лучше прогони программу через ltrace и посмотри, с какими параметрами вызываются функции GStreamer'а. Там могут промелькнуть названия элементов.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

ага хорошая идея про ltrace (что то забыл про нее). а в общем идею вроде как понял.

большое спасибо за ваш ответ. теперь я весь в ожиданиях что получится :)

pasifus
() автор топика
Ответ на: комментарий от i-rinat

Фигасе опенсурс, документации вообще нет и никто не знает как оно вообще работает!

Это специально так задумано или просто случилось от большого ума и огромного разгильдяйства?

anonymous
()
Ответ на: комментарий от anonymous

Фигасе опенсурс, документации вообще нет и никто не знает как оно вообще работает!

Мы вроде про закрытые плагины говорили. Какой там opensource?

А вообще да, GStreamer страшная штука, если надо в нутро лезть. Я с ним пободался пару недель и сдался, буду в libavcodec ковыряться.

i-rinat ★★★★★
()

Сделать jpeg encoder, имеется в виду написать отдельную программу? Или плагин к gstreamer? Если плагин уже существует я бы не писал приложение с appsrc/appsink, а остановился бы на скрипте вроде filesrc!jpegenc!filesink

Что за декодер то? gst-inspect | grep -E 'dec|h265'

elijah_sd
()
Ответ на: комментарий от elijah_sd

нет своего писать ничего не буду. как там вообще что то писать если нет документации, но камеры могут отдавать видео по RTSP в h264/mjpeg ну а заглянув под капот демона что раздает обнаружил что он с gstreamer работает так что буду пользоваться чем есть.

pasifus
() автор топика
Ответ на: комментарий от pasifus

в общем просто программа которая будет пользоваться готовыми плагинами ну максимум appsrc/appsink как предлагаю выше i-rinat

pasifus
() автор топика
Ответ на: комментарий от i-rinat

столкнулся с проблемой при выживание информации из демона использующего gstreamer. 1. попробовал натравить на него ltrace. Никакого результата. ltrace ничего не выдает (походу защищаются от reverse engineering) 2. попробовал export GST_DEBUG_DUMP_DOT_DIR=/temp. Такае жа фигня.

Интересно то, что даже если играюсь с gst-inspector-1.0, ни ltrace ни GST_DEBUG_DUMP_DOT_DIR не дает ни какого результата. (на домашнем компе все ок)

Задумался что еще можно сделать.

pasifus
() автор топика
Ответ на: комментарий от pasifus

а по поводу GST_DEBUG_DUMP_DOT_DIR? это тоже можно отключить?

Это можно не включать.

В программе должен быть явный вызов GST_DEBUG_BIN_TO_DOT_FILE(). Если переменная среды GST_DEBUG_DUMP_DOT_DIR установлена, то эта функция сохраняет граф. В gst-launch она вызывается, а вот в исследуемой программе — вряд ли.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

к сожалению там отсутсвует /proc/sys/kernel/yama/ptrace_scope. (искал ptrace_scope в других раздала тоже нет, yama там точно не установлен)

также настегает тот факт что GST_DEBUG_DUMP_DOT_DIR отказывается работать с gst-launch-1.0

может есть еще что можно покрутить?

pasifus
() автор топика
Ответ на: комментарий от i-rinat

жалко, но спасибо чоть и на этом. буду копать дальше

pasifus
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.