Страницы: (4) [1] 2 3 4  ( К непрочитанному сообщению )

> Переворот иврита в прошивках МТК, На примере APEX DVX - 811
 moroz Member is Offline
 Отправлено: 01-01-2006, 02:37 (post 1, #520797)

Member

Группа: Members
Сообщений: 134
Рейтинг:0%-----
При сравнении старой и новой прошивки от APEX DVX - 811, которые любезно предоставили мне grif и Rusk, обнаружилась новая функция. Живет она в ARM коде и вызывается непосредственно перед показом субтитра. Содержит в себе длинный цикл, первым действием которго идет сравнение регистра R0 с 0х80, т.е. проверяется - с нижней или верхней таблицей ASCII имеем дело. Все это, а также то что новая прошивка умеет переворачивать иврит, заставило меня предположить, что найденная функция и является ответственной за данный фичер.
Прилагаю листинг дизассемблера.
P.S. Анализ кода сделан на основе документа "MPEG4 Subtitle Display in ARM", автор New Age

Это сообщение отредактировал(а) moroz - 01-01-2006, 03:21

Присоединённый файл ( Кол-во скачиваний: 84 )
Присоединённый файл Listing.zip
PM Email Poster
Top Bottom
 cax Member is Offline
 Отправлено: 01-01-2006, 16:49 (post 2, #520957)

Pro Member

Группа: Members
Сообщений: 738
Рейтинг:0%-----
Посмотрел. Сложновато мне...
PM Email Poster
Top Bottom
 moroz Member is Offline
 Отправлено: 01-01-2006, 17:28 (post 3, #520968)

Member

Группа: Members
Сообщений: 134
Рейтинг:0%-----
Сложновато - в смысле внедрить в другие прошивки? Или в смысле досконально понять саму функцию?
PM Email Poster
Top Bottom
 cax Member is Offline
 Отправлено: 01-01-2006, 18:03 (post 4, #520980)

Pro Member

Группа: Members
Сообщений: 738
Рейтинг:0%-----
Я её вообще не понимаю, какое уж там досконально. Внедрить без понимания тем более не выйдет.
PM Email Poster
Top Bottom
 moroz Member is Offline
 Отправлено: 01-01-2006, 20:11 (post 5, #521007)

Member

Группа: Members
Сообщений: 134
Рейтинг:0%-----
Ну конечно выйдет. Я в тебя верю! :)
А если серьезно:
1. Функция не принимает никаких аргументов и ничего не возвращает - это видно из того, как ее вызывают.
2. Внутри функции нет НИ ОДНОЙ внешней ссылки, кроме pARM_Shared_Memory - ее найти не проблема.

Т.е. мы имеем вещь в себе, просто создана для того чтобы ее взяли и перенесли как она есть в другую прошивку. Ты ведь на этом собаку съел. А как именно она работает - не все ли равно?

Это сообщение отредактировал(а) moroz - 01-01-2006, 20:19
PM Email Poster
Top Bottom
 cax Member is Offline
 Отправлено: 01-01-2006, 22:30 (post 6, #521068)

Pro Member

Группа: Members
Сообщений: 738
Рейтинг:0%-----
Не так всё просто - она может и получать аргументы и возвращать результаты при помощи этой самой общей памяти, причём что там где находится зависит от прошивки.
PM Email Poster
Top Bottom
 moroz Member is Offline
 Отправлено: 02-01-2006, 00:16 (post 7, #521107)

Member

Группа: Members
Сообщений: 134
Рейтинг:0%-----
Пардон, функция принимает аргументы и возвращает значение либо через стек, либо через регистры :actu: . Если ты имел в виду, что она может читать и изменять статическую память (в частности общую) - с этим трудно поспорить: должна же такая функция что-нибудь делать :) .
В нашем конкретном случае нас интересует только структура самого субтитра, который лежит в этой памяти. В данной прошивке выглядит она так:
по оффсету 0 - ничего. По крайней мере я не видел, что кто-то пользуется.
по оффсету 1 - длина субтитра.
по оффсету 2 и далее - непосредственно строка.
Может эта структура отличаться в другой прошивке? Теоретически - да. Практически - вряд-ли. Но даже в этом случае можно будет разницу отследить по тому, как другие известные функции пользуются этой памятью.
PM Email Poster
Top Bottom
 cax Member is Offline
 Отправлено: 02-01-2006, 00:58 (post 8, #521130)

Pro Member

Группа: Members
Сообщений: 738
Рейтинг:0%-----
Слушай, если ты так хорошо во всём разобрался, почему бы тебе самому не попробовать встроить эту функцию ? Вот лично мне неясно как она определяет, включен иврит или русский (а на апексе переворачивать или не переворачивать определяется именно этим). Даже если я знаю где это определено в меню, я ещё не выяснил как в АРМ получают доступ к выбранному значению. А без этого как я проверю работоспособность непонятного мне куска кода ?
PM Email Poster
Top Bottom
 moroz Member is Offline
 Отправлено: 02-01-2006, 19:29 (post 9, #521409)

Member

Группа: Members
Сообщений: 134
Рейтинг:0%-----
Да нет, такое мне не под силу. Ну, значить, не судьба покаместь...
PM Email Poster
Top Bottom
 moroz Member is Offline
 Отправлено: 23-02-2006, 21:54 (post 10, #555703)

Member

Группа: Members
Сообщений: 134
Рейтинг:0%-----
QUOTE
если этот файл предварительно перевернуть,например,в subfix и использовать затем в двд в котором нет переворота,то всё будет в порядке?Т.е. subfix сумеет упорядочить знаки препинания?

Я сабфиксом никогда не пользовался, у меня своя утилитка написана. Она это дело специально отлавливает. Самый надежный способ узнать - проверить на практике. Кривой файл у тебя уже есть.

QUOTE
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Дай мне,пожалуйста,если можешь, на проверку случаи со скобками, знаками процента и доллара
Ультимативных проверок у меня нет. Могу предложить простенький тест, на котором я отлаживал свои первые версии. Это "обязательная программа". Каждый уважающий себя алгоритм переворота обязан его выполнить правильно, т.е. на экране строчки должны изображаться точно так же, как они видны, скажем, в ноутпаде. Только обрати внимание, что это неправильный файл. Надо его немного исправить (времена, разбить по 2-3 строчки и т.д)

Это сообщение отредактировал(а) moroz - 23-02-2006, 22:12

Присоединённый файл ( Кол-во скачиваний: 78 )
Присоединённый файл Test.srt
PM Email Poster
Top Bottom
 moroz Member is Offline
 Отправлено: 23-02-2006, 22:01 (post 11, #555711)

Member

Группа: Members
Сообщений: 134
Рейтинг:0%-----
Вот еще. Это файл с субтитрами, в котором одна из моих старых версий давала ошибки. Первой строчкой идут названия файлов, а дальше проблемная строчка.
Скобками я пока не занимался, но вот одна такая строка:
( -תורגם ע"י: חומוס_צ'יפס_סלט ( -חומוס
правая скобка может оказаться зеркально развернутой.

Добавлено
О господи, что стряслось с ивритской строкой!!! Ладно, я ее добавил прямо в файл первым номером.

Это сообщение отредактировал(а) moroz - 23-02-2006, 22:07

Присоединённый файл ( Кол-во скачиваний: 120 )
Присоединённый файл Errors.srt
PM Email Poster
Top Bottom
 ivani4 Member is Offline
 Отправлено: 23-02-2006, 22:59 (post 12, #555746)

Member

Группа: Members
Сообщений: 184
Рейтинг:0%-----
moroz
Спасибо за файлы.
Мне не совсем понятно почему в Errors.srt ты создал такое количество строк?Почему нельзя было сразу сделать его 2-3 строчным?
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Интересуют ли тебя результаты моего тестирования?Это я к тому что бы не писать об этом впустую.

Это сообщение отредактировал(а) ivani4 - 23-02-2006, 23:03
PM
Top Bottom
 cax Member is Offline
 Отправлено: 23-02-2006, 23:53 (post 13, #555785)

Pro Member

Группа: Members
Сообщений: 738
Рейтинг:0%-----
QUOTE (ivani4 @ 23-02-2006, 19:59)
moroz

Интересуют ли тебя результаты моего тестирования?Это я к тому что бы не писать об этом впустую.
Лично меня - очень интересуют. Думаю, что не ошибусь, если скажу, что moroz-а тоже.

Это сообщение отредактировал(а) cax - 23-02-2006, 23:53
PM Email Poster
Top Bottom
 moroz Member is Offline
 Отправлено: 24-02-2006, 00:09 (post 14, #555793)

Member

Группа: Members
Сообщений: 134
Рейтинг:0%-----
QUOTE
Мне не совсем понятно почему в Errors.srt ты создал такое количество строк?
Просто я проверял алгоритм на своей утилите, а ей без разницы. Извини что заставил тебя поработать.
А результат, конечно, интересует. Но только чтобы он оказался достаточно плохим! :laugh:
PM Email Poster
Top Bottom
 ivani4 Member is Offline
 Отправлено: 24-02-2006, 09:05 (post 15, #555943)

Member

Группа: Members
Сообщений: 184
Рейтинг:0%-----
moroz
Дело не в том что ты заставил меня работать.Просто я не уверен что изменённый мною файл будет выглядеть так как хотелось бы тебе.
PM
Top Bottom
Topic Options Страницы: (4) [1] 2 3 4