Pages: (4) [1] 2 3 4  ( Show unread post )

> Переворот иврита в прошивках МТК, На примере APEX DVX - 811
 moroz Member is Offline
 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: 84 )
Attached File Listing.zip
PM Email Poster
Top Bottom
 cax Member is Offline
 Posted: 01-01-2006, 16:49 (post 2, #520957)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
Посмотрел. Сложновато мне...
PM Email Poster
Top Bottom
 moroz Member is Offline
 Posted: 01-01-2006, 17:28 (post 3, #520968)

Member

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

Pro Member

Group: Members
Posts: 738
Warn:0%-----
Я её вообще не понимаю, какое уж там досконально. Внедрить без понимания тем более не выйдет.
PM Email Poster
Top Bottom
 moroz Member is Offline
 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
PM Email Poster
Top Bottom
 cax Member is Offline
 Posted: 01-01-2006, 22:30 (post 6, #521068)

Pro Member

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

Member

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

Pro Member

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

Member

Group: Members
Posts: 134
Warn:0%-----
Да нет, такое мне не под силу. Ну, значить, не судьба покаместь...
PM Email Poster
Top Bottom
 moroz Member is Offline
 Posted: 23-02-2006, 21:54 (post 10, #555703)

Member

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

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

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

This post has been edited by moroz on 23-02-2006, 22:12

Attached File ( Number of downloads: 78 )
Attached File Test.srt
PM Email Poster
Top Bottom
 moroz Member is Offline
 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: 120 )
Attached File Errors.srt
PM Email Poster
Top Bottom
 ivani4 Member is Offline
 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
PM
Top Bottom
 cax Member is Offline
 Posted: 23-02-2006, 23:53 (post 13, #555785)

Pro Member

Group: Members
Posts: 738
Warn:0%-----
QUOTE (ivani4 @ 23-02-2006, 19:59)
moroz

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

This post has been edited by cax on 23-02-2006, 23:53
PM Email Poster
Top Bottom
 moroz Member is Offline
 Posted: 24-02-2006, 00:09 (post 14, #555793)

Member

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

Member

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