![>](style_images/2/nav_m.gif)
![]() |
NetLab · Rules · Torrent Tracker · Have a problem? · Eng/Rus |
![]() ![]() ![]() ![]() ![]() |
Welcome Guest ( Log In | Register | Validation ) | Resend Validation Email |
Pages: (4) [1] 2 3 4 > ( Show unread post ) |
![]() |
|
Posted: 01-01-2006, 02:37
(post 1, #520797)
|
||
Member Group: Members Posts: 134 Warn:0% ![]() |
При сравнении старой и новой прошивки от APEX DVX - 811, которые любезно предоставили мне grif и Rusk, обнаружилась новая функция. Живет она в ARM коде и вызывается непосредственно перед показом субтитра. Содержит в себе длинный цикл, первым действием которго идет сравнение регистра R0 с 0х80, т.е. проверяется - с нижней или верхней таблицей ASCII имеем дело. Все это, а также то что новая прошивка умеет переворачивать иврит, заставило меня предположить, что найденная функция и является ответственной за данный фичер. Прилагаю листинг дизассемблера. P.S. Анализ кода сделан на основе документа "MPEG4 Subtitle Display in ARM", автор New Age This post has been edited by moroz on 01-01-2006, 03:21 Attached File ( Number of downloads: 75 ) ![]() |
||
|
Posted: 01-01-2006, 16:49
(post 2, #520957)
|
||
Pro Member Group: Members Posts: 738 Warn:0% ![]() |
Посмотрел. Сложновато мне... |
||
|
Posted: 01-01-2006, 17:28
(post 3, #520968)
|
||
Member Group: Members Posts: 134 Warn:0% ![]() |
Сложновато - в смысле внедрить в другие прошивки? Или в смысле досконально понять саму функцию? |
||
|
Posted: 01-01-2006, 18:03
(post 4, #520980)
|
||
Pro Member Group: Members Posts: 738 Warn:0% ![]() |
Я её вообще не понимаю, какое уж там досконально. Внедрить без понимания тем более не выйдет. |
||
|
Posted: 01-01-2006, 20:11
(post 5, #521007)
|
||
Member Group: Members Posts: 134 Warn:0% ![]() |
Ну конечно выйдет. Я в тебя верю! ![]() А если серьезно: 1. Функция не принимает никаких аргументов и ничего не возвращает - это видно из того, как ее вызывают. 2. Внутри функции нет НИ ОДНОЙ внешней ссылки, кроме pARM_Shared_Memory - ее найти не проблема. Т.е. мы имеем вещь в себе, просто создана для того чтобы ее взяли и перенесли как она есть в другую прошивку. Ты ведь на этом собаку съел. А как именно она работает - не все ли равно? This post has been edited by moroz on 01-01-2006, 20:19 |
||
|
Posted: 01-01-2006, 22:30
(post 6, #521068)
|
||
Pro Member Group: Members Posts: 738 Warn:0% ![]() |
Не так всё просто - она может и получать аргументы и возвращать результаты при помощи этой самой общей памяти, причём что там где находится зависит от прошивки. |
||
|
Posted: 02-01-2006, 00:16
(post 7, #521107)
|
||
Member Group: Members Posts: 134 Warn:0% ![]() |
Пардон, функция принимает аргументы и возвращает значение либо через стек, либо через регистры ![]() ![]() В нашем конкретном случае нас интересует только структура самого субтитра, который лежит в этой памяти. В данной прошивке выглядит она так: по оффсету 0 - ничего. По крайней мере я не видел, что кто-то пользуется. по оффсету 1 - длина субтитра. по оффсету 2 и далее - непосредственно строка. Может эта структура отличаться в другой прошивке? Теоретически - да. Практически - вряд-ли. Но даже в этом случае можно будет разницу отследить по тому, как другие известные функции пользуются этой памятью. |
||
|
Posted: 02-01-2006, 00:58
(post 8, #521130)
|
||
Pro Member Group: Members Posts: 738 Warn:0% ![]() |
Слушай, если ты так хорошо во всём разобрался, почему бы тебе самому не попробовать встроить эту функцию ? Вот лично мне неясно как она определяет, включен иврит или русский (а на апексе переворачивать или не переворачивать определяется именно этим). Даже если я знаю где это определено в меню, я ещё не выяснил как в АРМ получают доступ к выбранному значению. А без этого как я проверю работоспособность непонятного мне куска кода ? |
||
|
Posted: 02-01-2006, 19:29
(post 9, #521409)
|
||
Member Group: Members Posts: 134 Warn:0% ![]() |
Да нет, такое мне не под силу. Ну, значить, не судьба покаместь... |
||
|
Posted: 23-02-2006, 21:54
(post 10, #555703)
|
||||
Member Group: Members Posts: 134 Warn:0% ![]() |
Я сабфиксом никогда не пользовался, у меня своя утилитка написана. Она это дело специально отлавливает. Самый надежный способ узнать - проверить на практике. Кривой файл у тебя уже есть.
Ультимативных проверок у меня нет. Могу предложить простенький тест, на котором я отлаживал свои первые версии. Это "обязательная программа". Каждый уважающий себя алгоритм переворота обязан его выполнить правильно, т.е. на экране строчки должны изображаться точно так же, как они видны, скажем, в ноутпаде. Только обрати внимание, что это неправильный файл. Надо его немного исправить (времена, разбить по 2-3 строчки и т.д) This post has been edited by moroz on 23-02-2006, 22:12 Attached File ( Number of downloads: 71 ) ![]() |
||||
|
Posted: 23-02-2006, 22:01
(post 11, #555711)
|
||
Member Group: Members Posts: 134 Warn:0% ![]() |
Вот еще. Это файл с субтитрами, в котором одна из моих старых версий давала ошибки. Первой строчкой идут названия файлов, а дальше проблемная строчка. Скобками я пока не занимался, но вот одна такая строка: ( -תורגם ע"י: חומוס_צ'יפס_סלט ( -חומוס правая скобка может оказаться зеркально развернутой. Добавлено О господи, что стряслось с ивритской строкой!!! Ладно, я ее добавил прямо в файл первым номером. This post has been edited by moroz on 23-02-2006, 22:07 Attached File ( Number of downloads: 111 ) ![]() |
||
|
Posted: 23-02-2006, 22:59
(post 12, #555746)
|
||
Member Group: Members Posts: 184 Warn:0% ![]() |
moroz Спасибо за файлы. Мне не совсем понятно почему в Errors.srt ты создал такое количество строк?Почему нельзя было сразу сделать его 2-3 строчным? ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Интересуют ли тебя результаты моего тестирования?Это я к тому что бы не писать об этом впустую. This post has been edited by ivani4 on 23-02-2006, 23:03 |
||
|
Posted: 23-02-2006, 23:53
(post 13, #555785)
|
||
Pro Member Group: Members Posts: 738 Warn:0% ![]() |
Лично меня - очень интересуют. Думаю, что не ошибусь, если скажу, что moroz-а тоже. This post has been edited by cax on 23-02-2006, 23:53 |
||
|
Posted: 24-02-2006, 00:09
(post 14, #555793)
|
||
Member Group: Members Posts: 134 Warn:0% ![]() |
Просто я проверял алгоритм на своей утилите, а ей без разницы. Извини что заставил тебя поработать. А результат, конечно, интересует. Но только чтобы он оказался достаточно плохим! ![]() |
||
|
Posted: 24-02-2006, 09:05
(post 15, #555943)
|
||
Member Group: Members Posts: 184 Warn:0% ![]() |
moroz Дело не в том что ты заставил меня работать.Просто я не уверен что изменённый мною файл будет выглядеть так как хотелось бы тебе. |
||
![]() |