MPlayer для Linux КПК

КПК с Linux, установка Linux на iPaq и другие модели, программы
Siarhei Siamashka
Студент (1 lvl)
Сообщения: 47
Зарегистрирован: Чт мар 16, 2006 14:45

MPlayer для Linux КПК

Сообщение Siarhei Siamashka » Вс окт 08, 2006 16:29

Для информации, сейчас я занимаюсь портированием и оптимизацией mplayer для Nokia 770. Обсуждение можно найти в форуме тут: http://www.internettablettalk.com/forum ... php?t=2405

Данные оптимизации кроме всего прочего включают использование ассемблера и набора инструкций Enhanced DSP Extensions (которые имеются в armv5te). Насколько я знаю, Sharp Zaurus тоже поддерживает данные инструкции и мог бы извлечь из этого пользу. Еще я знаю, что имеется форк mplayer под zaurus (или даже не один), который тоже пытается что-то оптимизировать под ARM, используя все это + набор инструкций iWMMXt (поддерживаются только на Intel XScale). Получается некий бардак и хотелось бы обьединения усилий, чтобы не дублировать работу и получить максимальную отдачу от того, что уже сделано. Разработчиков mplayer и ffmpeg такое положение вещей тоже не очень радует:
http://lists.mplayerhq.hu/pipermail/ffm ... 14460.html
http://lists.mplayerhq.hu/pipermail/mpl ... 46207.html

В общем, хотелось бы найти человека, имеющего в наличии Sharp Zaurus, и способного сравнить текущую SVN версию настоящего mplayer с форком для zaurus, разобраться, в чем они отличаются, все полезное оформить в виде патчей и отослать разработчикам mplayer (модули вывода изображения или звука) или ffmpeg (оптимизации самих декодеров).

PS. В списках рассылки ffmpeg и mplayer разработчики под ARM в явном меньшинстве, почти некому даже подтвердить, работают ли мои патчи и приносят ли они какую-то пользу на чем-то отличном от Nokia 770. Присоединяйтесь, будет веселее :)
Последний раз редактировалось Siarhei Siamashka Чт окт 12, 2006 20:41, всего редактировалось 1 раз.
Siarhei Siamashka (ssvb on #maemo, irc.freenode.net)
currently taking part in porting MPlayer to Nokia 770/N800

Reaper
Академик (6 lvl)
Сообщения: 1269
Зарегистрирован: Вс окт 19, 2003 13:24

Сообщение Reaper » Вс окт 08, 2006 18:30

Если это может Вам помочь - кидайте ссылку на Ваш продукт, я попробую и сравню. У меня стоит pdaXrom beta1 для C3000.
Zaurus C3000

Siarhei Siamashka
Студент (1 lvl)
Сообщения: 47
Зарегистрирован: Чт мар 16, 2006 14:45

Сообщение Siarhei Siamashka » Вс окт 08, 2006 21:58

Вообще говоря, это не совсем мой продукт, речь о том, чтобы добавить в оригинальный mplayer нормальную поддержку и Sharp Zaurus и Nokia 770. Репозитарий с исходниками именно для Nokia 770 тут: https://garage.maemo.org/plugins/scmsvn ... ot=mplayer
Но по возможности все полезные изменения будут интегрированы в родной mplayer (и они уже частично интегрированы). Часть патчей еще незакоммичены и их можно найти в списке рассылки ffmpeg:
http://lists.mplayerhq.hu/pipermail/ffm ... 45837.html
http://lists.mplayerhq.hu/pipermail/ffm ... 46046.html

А ссылка простая: http://www.mplayerhq.hu/
Если еще проще, то: 'svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/'

Для начала очень интересно проверить, нормально ли в configure скрипте определяется наличие ARMv5TE и IWMMX. Собирать скорее всего нужно так:
# CFLAGS="-O4 -mcpu=iwmmxt -fomit-frame-pointer -ffast-math" ./configure [дополнительные опции]
Если поддержка IWMMX по каким-то причинам глючит (ее было некому проверить), то можно попытаться сконфигурировать mplayer без нее:
# CFLAGS="-O4 -mcpu=xscale -fomit-frame-pointer -ffast-math" ./configure [дополнительные опции]

Далее, очень интересует скорость декодирования mpeg4 (там была добавлена (не мной) функция вычисления idct, оптимизированная для armv5te), также как побочный эффект по крайней мере у меня пропали артефакты при декодировании видео (слабо различимые вертикальные или горизонтальные полосы за движущимися обектами).

Чтобы проверить скорость декодирования видео, можно запустить:
# mplayer -vo null -nosound -benchmark somevideofile.avi
В конце будет выдана статистика по времени, потраченному на декодирование. Было бы интересно сравнить это время с временем, которое нужно для декодирования того же видео версией для zaurus.

Кстати, предварительно новый релиз mplayer намечен где-то через неделю, было бы неплохо, если бы туда попали по крайней мере самые необходимые фиксы для ARM и все это дело было оттестировано.
Siarhei Siamashka (ssvb on #maemo, irc.freenode.net)
currently taking part in porting MPlayer to Nokia 770/N800

Siarhei Siamashka
Студент (1 lvl)
Сообщения: 47
Зарегистрирован: Чт мар 16, 2006 14:45

Сообщение Siarhei Siamashka » Чт окт 12, 2006 20:37

2Reaper: Прошу прощения, уже получилось что-небудь проверить или нет? Если нужна какая помощь или совет, пишите, не стесняйтесь. Если проблема только с наличием свободного времени, то не буду больше доставать и просто подожду. Или может еще какой доброволец найдется ;)

Кстати, интересует вопрос об аппаратных возможностях Zaurus (наверное C1000 и более новые) по декодировании видео. Поддерживается ли видеоконтроллером преобразование цветов и масштабирование. Просто хотелось бы знать, насколько Nokia 770 и Zaurus похожи и чем отличаются в плане поддержки видео.

У Nokia 770 видеоконтроллером поддерживается YUV colorspace, возможность удваивания изображения (со сглаживанием), вращение. Поддержки произвольного масштабирования нет. К слову, в MPlayer для Nokia 770 пока YUV colorspace не поддерживается, так что еще есть неплохой потенциал для увеличения быстродействия. А если еще получится задействовать DSP ядро для масштабирования, все должно быть совсем хорошо :)

PS. Интересно, сколько времени может занять подтверждение регистрации в форуме на http://www.oesf.org, а то я уже начинаю беспокоиться.
Siarhei Siamashka (ssvb on #maemo, irc.freenode.net)
currently taking part in porting MPlayer to Nokia 770/N800

Reaper
Академик (6 lvl)
Сообщения: 1269
Зарегистрирован: Вс окт 19, 2003 13:24

Сообщение Reaper » Чт окт 12, 2006 20:54

Постараюсь в уикэнд проверить.

P.S. Времени на подтверждение регистрации на oesf обычно тратится не более суток-полутора. :)

P.P.S. На что у меня точно времени не найдется - так это на сборку, выложенный бинарь был бы просто чудом (такую самопальную систему, как у меня, надо еще поискать... ;)).
Zaurus C3000

Аватара пользователя
Darkcat
Темная личность
Сообщения: 22508
Зарегистрирован: Чт янв 13, 2005 12:38

Сообщение Darkcat » Чт окт 12, 2006 21:12

Проверить на Cacko я могу, но вот собрать make-file пока нет... Компилятор прикрутил...
Нет, только не кошки. Не верь им. Их глаза. Их глаза. Они знают слишком много.
Нешто спи обратно.

Аватара пользователя
Serge_RUS
Академик (6 lvl)
Сообщения: 1134
Зарегистрирован: Вс мар 13, 2005 20:00

Сообщение Serge_RUS » Пт окт 13, 2006 18:17

Скомпилил бы кто... Я бы тоже погонял его на тестах. :)
"Проще потушить в себе пламя свечи, чем с помощью него
зажечь другие сердца, создав Свет!" С. Лукъяненко.
Ubuntu 7.10 @ Eee PC 4G
JID: sugia-serge@jabber.ru
Moto A1200e
Ubuntu Linux

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пт окт 13, 2006 23:00

Портированием mplayer под завр занимался один японец (сайчас похоже забил). Страничка тут: http://atty.skr.jp/mplayer.html

Вроде там были ссылки на исходники в SVN

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пт окт 13, 2006 23:06

Что касается сравнения версий для Nokia770 и завра, то завровский mplayer крутит видео гораздо лучше :) В частности на С1000, практически без тормозов идет видео 640х480 с битрейтом 1000 Кб/с

Siarhei Siamashka
Студент (1 lvl)
Сообщения: 47
Зарегистрирован: Чт мар 16, 2006 14:45

Сообщение Siarhei Siamashka » Пт окт 13, 2006 23:19

maslovsky писал(а):Портированием mplayer под завр занимался один японец (сайчас похоже забил). Страничка тут: http://atty.skr.jp/mplayer.html
Да я уже знаю, я в первом посте приводил ссылки на сообщения из списка рассылки mplayer и ffmpeg, они бы и рады добавить поддержку zaurus в основную ветку, только этот японец упорно не хочет идти на контакт. Поэтому было бы интересно сравнить основную ветку mplayer с этим форком, взять оттуда все полезное и добавить в настоящий mplayer. Естественно, справиться с этой работой может тот, у кого есть zaurus, поэтому я сюда и написал :)
Что касается сравнения версий для Nokia770 и завра, то завровский mplayer крутит видео гораздо лучше :) В частности на С1000, практически без тормозов идет видео 640х480 с битрейтом 1000 Кб/с
А это очень хорошая новость, значит скорее всего и на нокии можно будет проигрывать видео в разрешении 640x480. Процессор там где-то в 1.5 раза медленнее (но это без учета наличия IWMMX инструкций в Zaurus), скорость памяти скорее всего сопоставима, аудио не грузит ARM ядро (декодируется с помощью DSP) :)

Я проверял видео 320x240 с битрейтом 1000, проигрывалось практически без тормозов. Надо будет попробовать и 640x480.
Siarhei Siamashka (ssvb on #maemo, irc.freenode.net)
currently taking part in porting MPlayer to Nokia 770/N800

Civil
Доктор (4 lvl)
Сообщения: 218
Зарегистрирован: Вс авг 21, 2005 06:04

Сообщение Civil » Сб окт 14, 2006 02:54

Siarhei Siamashka
CFLAGS="-O4 -mcpu=iwmmxt -fomit-frame-pointer -ffast-math"
Читаем доки по GCC и узнаём:
1) -O3 - макс. оптимизации. -O4 несуществует
2) -fomit-frame-pointer включается при -O1

Так что правильнее было-бы писать:
CFLAGS="-O3 -mcpu=iwmmxt -ffast-math"

Так-же можно почитать:
http://gcc.gnu.org/onlinedocs/gcc-3.4.6 ... tions.html
и
http://gcc.gnu.org/onlinedocs/gcc-3.4.6 ... tions.html

Собственно можно добавить ещё и -mtune (как написанно по 1-ой ссылке иногда -mtune даёт больше эффекта чем -mcpu на arm'ах)
Поддерживается ли видеоконтроллером преобразование цветов и масштабирование.
На oesf'е писали, что, вроде, pxa270 fb поддерживает поворот и YUV-RGB (точно не помню)
Zaurus SL-C3100. Gentoo.
HP iPAQ rx1950
zavrik.ru team

Siarhei Siamashka
Студент (1 lvl)
Сообщения: 47
Зарегистрирован: Чт мар 16, 2006 14:45

Сообщение Siarhei Siamashka » Сб окт 14, 2006 03:45

Civil писал(а):Siarhei Siamashka
CFLAGS="-O4 -mcpu=iwmmxt -fomit-frame-pointer -ffast-math"
Читаем доки по GCC и узнаём:
1) -O3 - макс. оптимизации. -O4 несуществует
Спасибо, но это я и так знаю, слава богу уже не первый год с gcc работаю. Значение CFLAGS взято один в один из configure скрипта от MPlayer (добавлен только -mcpu), просто чтобы не изобретать ничего лишнего. Все претензии к разработчикам mplayer ;)
2) -fomit-frame-pointer включается при -O1
С маленькой оговоркой: ... on machines where doing so does not interfere with debugging. Так что эта опция не помешает.
Так что правильнее было-бы писать:
CFLAGS="-O3 -mcpu=iwmmxt -ffast-math"
Если уж быть совсем дотошным, то и -ffast-math можно выбросить. Эта опция влияет на floating point код (а ежели таковой встретится при декодировании видео/аудио, то тут будет финиш и уже ничего не поможет, кодеки с использованием floaing point на ARM крайне неэффективны и практически неюзабельны) :)
Так-же можно почитать:
http://gcc.gnu.org/onlinedocs/gcc-3.4.6 ... tions.html
и
http://gcc.gnu.org/onlinedocs/gcc-3.4.6 ... tions.html

Собственно можно добавить ещё и -mtune (как написанно по 1-ой ссылке иногда -mtune даёт больше эффекта чем -mcpu на arm'ах)
Это теория. На практике получается, что опции -mcpu и -mtune нельзя использовать вместе (для ARM), компилятор ругается на несовместимые опции. Комбинировать можно -march и -mtune, но по результатам экспериментов у меня получилось, что по крайней мере на Nokia 770 самый быстрый (и короткий) вариант - просто '-mcpu=arm926ej-s'. Никто не мешает попробовать и другие опции компиляции, если найдется комбинация опций компиляции получше, буду рад узнать ее ;)

Кстати, хотел еще попробовать собирать с -fprofile-generate, -fprofile-use, но в gcc 3.4.4 от CodeSourcery (который используется в SDK для Nokia 770), судя по всему, они не работают.
Поддерживается ли видеоконтроллером преобразование цветов и масштабирование.
На oesf'е писали, что, вроде, pxa270 fb поддерживает поворот и YUV-RGB (точно не помню)
На Nokia 770 все то же самое. Интересно, поддерживает ли pxa270 произвольное масштабирование. Т.е. как zaurus справится с видео, скажем 512x384?

Кстати, только что провел эксперимент по проигрыванию короткого видеоклипа 640x480 30fps mpeg4 700kbps, продолжительностью 4:11 на Nokia 770. На чистое декодирование без отображения тратится 4:10, как раз ровно по длине клипа, естественно, этого недостаточно, но если постараться и оптимизировать код, есть шанс, что будет даже небольшой запас. На декодирование и отображение видео вместе тратится 8:31, но если все-таки прикрутить аппаратную поддержку YUV и избавиться от необходимости преобразования цветов, должно стать намного лучше. Скорость декодирования - самый важный параметр, часть кадров практически безболезненно можно пропустить при отображении, но если их начать пропускать при декодировании (опция -hardframedrop), то появятся довольно заметные артефакты.
Siarhei Siamashka (ssvb on #maemo, irc.freenode.net)
currently taking part in porting MPlayer to Nokia 770/N800

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Сб окт 14, 2006 18:46

Siarhei Siamashka писал(а):
maslovsky писал(а):Портированием mplayer под завр занимался один японец (сайчас похоже забил). Страничка тут: http://atty.skr.jp/mplayer.html
Да я уже знаю, я в первом посте приводил ссылки на сообщения из списка рассылки mplayer и ffmpeg, они бы и рады добавить поддержку zaurus в основную ветку, только этот японец упорно не хочет идти на контакт.
Бесполезно, он и не пойдет. Японцы они такие :)
Я проверял видео 320x240 с битрейтом 1000, проигрывалось практически без тормозов. Надо будет попробовать и 640x480.
Да, 320х240 крутится на Нокии нормально.

Аватара пользователя
S.H.A.D.E
Доктор (4 lvl)
Сообщения: 264
Зарегистрирован: Сб авг 06, 2005 15:47

Сообщение S.H.A.D.E » Вс окт 15, 2006 01:40

2 maslovsky:
Бесполезно, он и не пойдет. Японцы они такие

А что, есть опыт общения :-) ?
Motorola Nexus 6, BlackBerry 9780, B&N Nook Simple Touch, ThinkPad T440s

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пн окт 16, 2006 18:17

S.H.A.D.E писал(а):2 maslovsky:
Бесполезно, он и не пойдет. Японцы они такие

А что, есть опыт общения :-) ?
Опосредовано - да :)

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»