Инструменты пользователя

Инструменты сайта


wiki:hydra-video

Аппаратное ускорение видео на Hydro/i.MX6

За основу взяты инструкции отсюда: http://boundarydevices.com/mx6-video-acceleration-raring-debian/

На SD карту установим образ файловой системы Linaro-nano. Это файловая система, которая предоставляет только доступ через консоль виртуальную, либо по последовательному порту.

wget https://releases.linaro.org/13.08/ubuntu/raring-images/nano/linaro-raring-nano-20130826-474.tar.gz

Установка необходимых компонент

Загружаем плату с Linaro-nano и устанавливаем необходимые компоненты.

Убедимся, что ссылки репозитория обновлены

root@linaro-nano:~# apt-get update

Устанавливаем компилятор

root@linaro-nano:~# apt-get install build-essential

Теперь плагин Gstreamer:

root@linaro-nano:~# apt-get install libgstreamer-plugins-base0.10-dev
root@linaro-nano:~# apt-get build-dep gst-plugins-base0.10

Установка пакетов для Gstreamer

Для компиляции Gstreamer необходимы следующие компоненты:

  • Набор файлов заголовков ядра (хедеры)
  • firmware-imx-3.5.7-1.0.0
  • imx-lib-3.5.7-1.0.0
  • fsl-alsa-plugins-3.5.7-1.0.0
  • libfslcodec-3.5.7-1.0.0
  • libfslparser-3.5.7-1.0.0
  • libfslvpuwrap-3.5.7-1.0.0
  • gst-fsl-plugins-3.5.7-1.0.0

Хедеры ядра

Некоторые пакеты используют аппаратно зависимые API и поэтому они ожидают файлы заголовков ядра в директории /usr/include.

Есть два способа, чтобы установить хедеры.

sudo make ARCH=arm INSTALL_HDR_PATH=/media/rootfs/usr headers_install
  • Скачать и распаковать готовый архив с файлами заголовков:
root@linaro-nano:~# wget http://commondatastorage.googleapis.com/boundarydevices.com/linux-headers-3.0.35-02829-gac24896_4.1.0.tar.gz
root@linaro-nano:~# tar zxvf linux-headers-3.0.35-02829-gac24896_4.1.0.tar.gz -C /usr

Пакеты от Freescale

# first, the open-source codec package:
root@linaro-nano:~# wget http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/gst-fsl-plugins-3.5.7-1.0.0.tar.gz
# then the restricted files
root@linaro-nano:~# for pkg in firmware-imx \
                             imx-lib \
                             fsl-alsa-plugins \
                             libfslcodec \
                             libfslparser \
                             libfslvpuwrap ; do \
                         wget http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/${pkg}-3.5.7-1.0.0.bin ; \
                     done

Во время установки необходимо согласится с условиями лицензии для каждого из пакетов. Для этого пролистайте соглашение до конца и печатаете букву «y».

root@linaro-nano:~# tar zxf gst-fsl-plugins-3.5.7-1.0.0.tar.gz
root@linaro-nano:~# for pkg in firmware-imx \
                             imx-lib \
                             fsl-alsa-plugins \
                             libfslcodec \
                             libfslparser \
                             libfslvpuwrap ; do \
                         sh ${pkg}-3.5.7-1.0.0.bin ; \
                     done

Компиляция пакетов

Пакет firmware-imx надо просто скопировать в директорию /lib/firmware:

root@linaro-nano:~# cp -ravf firmware-imx-3.5.7-1.0.0/firmware/* /lib/firmware/

Пакет imx-lib имеет ошибку в библиотеке rng, поэтому пропустим его

root@linaro-nano:~# cd imx-lib-3.5.7-1.0.0/
root@linaro-nano:~/imx-lib-3.5.7-1.0.0# rm -rf rng
root@linaro-nano:~/imx-lib-3.5.7-1.0.0# make PLATFORM=IMX6Q all && make PLATFORM=IMX6Q install

Пакет fsl-alsa-plugins требует выполнения некоторых функций autotools перед компиляцией:

root@linaro-nano:~# cd fsl-alsa-plugins-3.5.7-1.0.0/
root@linaro-nano:~/fsl-alsa-plugins-3.5.7-1.0.0# aclocal && autoconf && automake --add-missing
root@linaro-nano:~/fsl-alsa-plugins-3.5.7-1.0.0# ./configure --prefix=/usr
root@linaro-nano:~/fsl-alsa-plugins-3.5.7-1.0.0# make all && make DESTDIR=/ install

Пакеты libfslparser, libfslvpuwrap, и gst-fsl-plugins имеют скрипт autogen.sh:

root@linaro-nano:~# cd libfslcodec-3.5.7-1.0.0
root@linaro-nano:~/libfslcodec-3.5.7-1.0.0# ./autogen.sh --prefix=/usr && make all && make DESTDIR=/ install
root@linaro-nano:~/libfslcodec-3.5.7-1.0.0# cd ../libfslparser-3.5.7-1.0.0
root@linaro-nano:~/libfslparser-3.5.7-1.0.0# ./autogen.sh --prefix=/usr && make all && make DESTDIR=/ install
root@linaro-nano:~/libfslparser-3.5.7-1.0.0# cd ../libfslvpuwrap-3.5.7-1.0.0
root@linaro-nano:~/libfslvpuwrap-3.5.7-1.0.0# ./autogen.sh --prefix=/usr && make all && make DESTDIR=/ install
root@linaro-nano:~/libfslvpuwrap-3.5.7-1.0.0# cd ../gst-fsl-plugins-3.5.7-1.0.0
root@linaro-nano:~/gst-fsl-plugins-3.5.7-1.0.0# ./autogen.sh PLATFORM=MX6 --prefix=/usr
root@linaro-nano:~/gst-fsl-plugins-3.5.7-1.0.0# make all && make DESTDIR=/ install

Проверка

Для проверки аппаратного декодирования видео можно скачать фильм Sintel в качестве 1080p отсюда: http://www.sintel.org/download/.

gplay /mnt/Sintel.2010.1080p.mkv
wiki/hydra-video.txt · Последние изменения: 2014/05/19 22:50 — maxx