Портирование XViD под MeOS

Processing, playback of audio and video
  • bw
    Помогите. Посмотрите заголовок kvid.kex и вообще подтвердите что фишка с собственным путем работает.
    Это я тебе гарантирую. Если есть трудности, можешь посмотреть исходники KFM. Без фишки с собственным путем я бы не мог загружать INI и 2 штуки BMP файлов.

    Запуск с параметром путь проверил – работает, но как-то странно. Два файла с одинаковой длинной имени лежащих в одной папке – один запускает, а для другого пишет - нет такого файла, а в пути, написанном в программе, затерто имя файла точками. Вероятно, у тебя либо неправильно копируется путь к файлу, либо он затирается другими данными в некоторых случаях. Лучше выделять под путь не менее 4 Кб.
    Возможно с путем к самому приложению та же проблема, выдели тоже побольше памяти.
  • Вроде все элементарно:
    [HEAD]

    Code: Select all

    [STACK][ARGS][PATH][ASS]
    Память заказывается по ASS. На qemu я немного проверял, ARGS работал. PATH вообще никак, всегда 0. Для ARGS и PATH я выделяю по 256 байт. Файл "заканчивается" на CODE (или на STACK, уже не помню :-). Я писал свой exe2kos, pe2kos не работает из-за того что игнорирует ряд секций, которые использует FreePascal.
    
    p.s. ASS, это просто метка на диаграмме, т.е. 0b в длине.
    
    ..bw
    Last edited by bw on Thu Aug 16, 2007 12:29 pm, edited 1 time in total.
  • Отчёт о тестировании :)

    Чтобы проиграть тестовый kvid.avi, пришлось запускать через Run, указав полный путь к проигрывателю и полный путь к фильму. Это неудобно.
    Я решил сделать по другому: скопировал kvid.kex в /hd0/1/Kolibri и прописал соответственно ассоциации в kfar.ini и kfm.ini. Выбрал kvid avi.
    Kfm выдал ошибку 5. Kfar объяснил более понятно:

    Code: Select all

    Ошибка при запуске программы: файл не найден
    После того как я изменил местоположение программы и ассоциации на /hd0/1/kvid.kex, программа стала запускаться. Мне удалось проиграть некоторые из моих любимых аниме. При этом я обратил внимание, что в зависимости от разрешения фильма меняется нагрузка на процессор и винт. Так, фильм с разрешением 1024 на 576 заметно подтормаживал, в фильмах с меньшим разрешением я этого не заметил.
    Ещё я заметил, что проигрыватель не понимает пути, содержащие пробелы. В этих случаях он пишет:

    Code: Select all

    Sorry, file not found
    Это большой недостаток для современной программы.
    И ещё я надеюсь, что со временем будут поддерживаться не только те версии кодеков, которые сейчас поддерживаются (этого очень мало), а хотя бы все, которые сейчас в ходу. И что когда-нибудь будет поддерживаться не только MP3, но и OGG.
    Спасибо за внимание.
  • Итак, ясно: нормальная работа проигрывателя нарушается после того, как я делаю активным какое-то другое окно, а потом обратно окно с изображением. После этого процессор загружается на 100%, хотя перед этим мог работать примерно на 25%
    Это очень серьёзный глюк!
  • Пока акцент делался только на парсин и декодирование видеоряда. Т.е. текущий болячки вообще не рассматривались.
    С путями в kos я еще не толком не работал, запросто мог что-то упустить, тут я говорил что мне даже путь исполняемого приложение не удается выяснить. Передавать полный путь надежнее. Так как при открытии файла я беру только тут путь который передается через параметры. Если он относительный я не знаю как kos будет открывать такой файл, учитывает она или нет текущий путь. Что касается вывода - есть такая проблема, даже не знаю откуда, там вроде все элементарно. Но это тоже не важно так как код по выводу будет полностью переделан, после того как появится звук. Про не удачное эксплуатирование винта я так же говорил выше.

    p.s. Спасибо за тесты и за отзывы :-).

    ..bw
  • Не забудь глюк с путями, содержащими пробелы...
  • Атауальпа
    OFFTOP
    "И главное мы забыли сказать про гранулы натуральных ягод!" ;-)
    /OFFTOP
  • Вот уж действительно оффтоп :shock:
  • Mario79, выделил под путь больше места - все заработало, спасибо за подсказку.
    Немного обновил kvid. Звука пока нет, как и ничего в принципе нет. Добавил паузу :-) по Space. Убрал косяк с зависанием и так по мелочам код причесал.
    Напомнинаю URL программки: http://www.handsdriver.net/files/temp/kvid.kex

    ..bw
  • Добавил возможность перемещать окно с видео, но под KOS работает криво, вот код, может чего заметите:

    Code: Select all

          begin
            CurrMousePos := kos_getmousepos();
            if (kos_getmousebuttons() and 1) <> 0 then
            if MouseLeft and ((CurrMousePos.X <> PrevMousePos.X) or (CurrMousePos.Y <> PrevMousePos.Y)) then
            begin
              {нажата левая кнопка и курсор был перемещен}
              MoveWindow(
                WindowRect.Left + CurrMousePos.X - PrevMousePos.X,
                WindowRect.Top + CurrMousePos.Y - PrevMousePos.Y,
                GetWindowWidth(),
                GetWindowHeight());
            end else
              MouseLeft := True else
              MouseLeft := False;
            PrevMousePos := CurrMousePos;
          end;
    
    AVI, отличные от DivX5 и XviD могут вызвать падение программы или выжрать всю оперативку, будьте бдительны :-).

    p.s. Для перемещения окна, удерживайте левую кнопку мыши.

    ..bw
  • Попробуй организовать это в виде библиотеке, путь даже в своем окне.
    в библиотеке функции управления видео. Для начала "открыть файл" и "пауза"
  • bw
    выделил под путь больше места - все заработало, спасибо за подсказку.
    У меня осталось все по-прежнему - путь больший, чем 20-25 символов не открывается.
  • bw: по крайней мере ты убрал самые неприятные баги. Да и пауза по Space - полезная возможность. Жду перемотку по стрелкам :)
  • Проверил на фильме "Пророк" размером в 1,4 Гб, работает ) Осталось звук добавить! :) И имхо стоит убрать счетчик фреймов из окна видео...
  • Who is online

    Users browsing this forum: No registered users and 3 guests