MPlayer для Linux КПК
-
- Студент (1 lvl)
- Сообщения: 47
- Зарегистрирован: Чт мар 16, 2006 14:45
MPlayer для Linux КПК
Для информации, сейчас я занимаюсь портированием и оптимизацией 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. Присоединяйтесь, будет веселее
Данные оптимизации кроме всего прочего включают использование ассемблера и набора инструкций 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
currently taking part in porting MPlayer to Nokia 770/N800
-
- Студент (1 lvl)
- Сообщения: 47
- Зарегистрирован: Чт мар 16, 2006 14:45
Вообще говоря, это не совсем мой продукт, речь о том, чтобы добавить в оригинальный 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 и все это дело было оттестировано.
Но по возможности все полезные изменения будут интегрированы в родной 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
currently taking part in porting MPlayer to Nokia 770/N800
-
- Студент (1 lvl)
- Сообщения: 47
- Зарегистрирован: Чт мар 16, 2006 14:45
2Reaper: Прошу прощения, уже получилось что-небудь проверить или нет? Если нужна какая помощь или совет, пишите, не стесняйтесь. Если проблема только с наличием свободного времени, то не буду больше доставать и просто подожду. Или может еще какой доброволец найдется
Кстати, интересует вопрос об аппаратных возможностях Zaurus (наверное C1000 и более новые) по декодировании видео. Поддерживается ли видеоконтроллером преобразование цветов и масштабирование. Просто хотелось бы знать, насколько Nokia 770 и Zaurus похожи и чем отличаются в плане поддержки видео.
У Nokia 770 видеоконтроллером поддерживается YUV colorspace, возможность удваивания изображения (со сглаживанием), вращение. Поддержки произвольного масштабирования нет. К слову, в MPlayer для Nokia 770 пока YUV colorspace не поддерживается, так что еще есть неплохой потенциал для увеличения быстродействия. А если еще получится задействовать DSP ядро для масштабирования, все должно быть совсем хорошо
PS. Интересно, сколько времени может занять подтверждение регистрации в форуме на http://www.oesf.org, а то я уже начинаю беспокоиться.
Кстати, интересует вопрос об аппаратных возможностях 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
currently taking part in porting MPlayer to Nokia 770/N800
Постараюсь в уикэнд проверить.
P.S. Времени на подтверждение регистрации на oesf обычно тратится не более суток-полутора.
P.P.S. На что у меня точно времени не найдется - так это на сборку, выложенный бинарь был бы просто чудом (такую самопальную систему, как у меня, надо еще поискать... ).
P.S. Времени на подтверждение регистрации на oesf обычно тратится не более суток-полутора.
P.P.S. На что у меня точно времени не найдется - так это на сборку, выложенный бинарь был бы просто чудом (такую самопальную систему, как у меня, надо еще поискать... ).
Zaurus C3000
Скомпилил бы кто... Я бы тоже погонял его на тестах.
"Проще потушить в себе пламя свечи, чем с помощью него
зажечь другие сердца, создав Свет!" С. Лукъяненко.
Ubuntu 7.10 @ Eee PC 4G
JID: sugia-serge@jabber.ru
Moto A1200e
Ubuntu Linux
зажечь другие сердца, создав Свет!" С. Лукъяненко.
Ubuntu 7.10 @ Eee PC 4G
JID: sugia-serge@jabber.ru
Moto A1200e
Ubuntu Linux
Портированием mplayer под завр занимался один японец (сайчас похоже забил). Страничка тут: http://atty.skr.jp/mplayer.html
Вроде там были ссылки на исходники в SVN
Вроде там были ссылки на исходники в SVN
-
- Студент (1 lvl)
- Сообщения: 47
- Зарегистрирован: Чт мар 16, 2006 14:45
Да я уже знаю, я в первом посте приводил ссылки на сообщения из списка рассылки mplayer и ffmpeg, они бы и рады добавить поддержку zaurus в основную ветку, только этот японец упорно не хочет идти на контакт. Поэтому было бы интересно сравнить основную ветку mplayer с этим форком, взять оттуда все полезное и добавить в настоящий mplayer. Естественно, справиться с этой работой может тот, у кого есть zaurus, поэтому я сюда и написалmaslovsky писал(а):Портированием mplayer под завр занимался один японец (сайчас похоже забил). Страничка тут: http://atty.skr.jp/mplayer.html
А это очень хорошая новость, значит скорее всего и на нокии можно будет проигрывать видео в разрешении 640x480. Процессор там где-то в 1.5 раза медленнее (но это без учета наличия IWMMX инструкций в Zaurus), скорость памяти скорее всего сопоставима, аудио не грузит ARM ядро (декодируется с помощью DSP)Что касается сравнения версий для Nokia770 и завра, то завровский mplayer крутит видео гораздо лучше В частности на С1000, практически без тормозов идет видео 640х480 с битрейтом 1000 Кб/с
Я проверял видео 320x240 с битрейтом 1000, проигрывалось практически без тормозов. Надо будет попробовать и 640x480.
Siarhei Siamashka (ssvb on #maemo, irc.freenode.net)
currently taking part in porting MPlayer to Nokia 770/N800
currently taking part in porting MPlayer to Nokia 770/N800
Siarhei Siamashka
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'ах)
Читаем доки по GCC и узнаём:CFLAGS="-O4 -mcpu=iwmmxt -fomit-frame-pointer -ffast-math"
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
HP iPAQ rx1950
zavrik.ru team
-
- Студент (1 lvl)
- Сообщения: 47
- Зарегистрирован: Чт мар 16, 2006 14:45
Спасибо, но это я и так знаю, слава богу уже не первый год с gcc работаю. Значение CFLAGS взято один в один из configure скрипта от MPlayer (добавлен только -mcpu), просто чтобы не изобретать ничего лишнего. Все претензии к разработчикам mplayerCivil писал(а):Siarhei SiamashkaЧитаем доки по GCC и узнаём:CFLAGS="-O4 -mcpu=iwmmxt -fomit-frame-pointer -ffast-math"
1) -O3 - макс. оптимизации. -O4 несуществует
С маленькой оговоркой: ... on machines where doing so does not interfere with debugging. Так что эта опция не помешает.2) -fomit-frame-pointer включается при -O1
Если уж быть совсем дотошным, то и -ffast-math можно выбросить. Эта опция влияет на floating point код (а ежели таковой встретится при декодировании видео/аудио, то тут будет финиш и уже ничего не поможет, кодеки с использованием floaing point на ARM крайне неэффективны и практически неюзабельны)Так что правильнее было-бы писать:
CFLAGS="-O3 -mcpu=iwmmxt -ffast-math"
Это теория. На практике получается, что опции -mcpu и -mtune нельзя использовать вместе (для ARM), компилятор ругается на несовместимые опции. Комбинировать можно -march и -mtune, но по результатам экспериментов у меня получилось, что по крайней мере на Nokia 770 самый быстрый (и короткий) вариант - просто '-mcpu=arm926ej-s'. Никто не мешает попробовать и другие опции компиляции, если найдется комбинация опций компиляции получше, буду рад узнать ееТак-же можно почитать:
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'ах)
Кстати, хотел еще попробовать собирать с -fprofile-generate, -fprofile-use, но в gcc 3.4.4 от CodeSourcery (который используется в SDK для Nokia 770), судя по всему, они не работают.
На Nokia 770 все то же самое. Интересно, поддерживает ли pxa270 произвольное масштабирование. Т.е. как zaurus справится с видео, скажем 512x384?На oesf'е писали, что, вроде, pxa270 fb поддерживает поворот и YUV-RGB (точно не помню)Поддерживается ли видеоконтроллером преобразование цветов и масштабирование.
Кстати, только что провел эксперимент по проигрыванию короткого видеоклипа 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
currently taking part in porting MPlayer to Nokia 770/N800
Бесполезно, он и не пойдет. Японцы они такиеSiarhei Siamashka писал(а):Да я уже знаю, я в первом посте приводил ссылки на сообщения из списка рассылки mplayer и ffmpeg, они бы и рады добавить поддержку zaurus в основную ветку, только этот японец упорно не хочет идти на контакт.maslovsky писал(а):Портированием mplayer под завр занимался один японец (сайчас похоже забил). Страничка тут: http://atty.skr.jp/mplayer.html
Да, 320х240 крутится на Нокии нормально.Я проверял видео 320x240 с битрейтом 1000, проигрывалось практически без тормозов. Надо будет попробовать и 640x480.