ftp://ftp.kolibrios.org/users/Serge/new/fplay
Обновил до ffmpeg-1.0 и пофиксил некоторые ошибки.
На пробу ядро с улучшенным блитером
FPlay - видеоплеер в Колибри
Все на борьбу с конечным автоматом за светлое мультимедийное будущее !
Смотрим фильмы, жамкаем кнопки, гоняем перемотку. Сообщаем обо всех случаях девиантного поведения.
STOP
PLAY
PAUSE
EOF - конец файла - на короткое время
REWIND - на очень короткое время
переходы
STOP->PLAY
STOP->REWIND
PLAY->STOP
PLAY->PAUSE
PLAY->REWIND
PAUSE->STOP
PAUSE->PLAY
PAUSE->REWIND
REWIND->PLAY
EOF->STOP
Хочу сделать индикацию уровня громкости, но в обработке сигналов полный чайник. Правильно я понимаю что достаточно посчитать среднее арифметическое абсолютных значений семплов за период (или среднее квадратичное если на MMX) ?
Смотрим фильмы, жамкаем кнопки, гоняем перемотку. Сообщаем обо всех случаях девиантного поведения.
Spoiler:
Основные состоянияSTOP
PLAY
PAUSE
EOF - конец файла - на короткое время
REWIND - на очень короткое время
переходы
STOP->PLAY
STOP->REWIND
PLAY->STOP
PLAY->PAUSE
PLAY->REWIND
PAUSE->STOP
PAUSE->PLAY
PAUSE->REWIND
REWIND->PLAY
EOF->STOP
среднее арифметическое по выборке даст тебе ровно 0.
средний квадрат надо умножать на 3, тогда 99.7% сэмплов достоверно должны попасть в диапазон.
но лучше перейти в частотный диапазон и взять корень из (комплексного) квадрата самой громкой гармоники, и умножить его на 2 для верности.
Кстати, FFT дает уже готовый частотный спектр и эквалайзер
средний квадрат надо умножать на 3, тогда 99.7% сэмплов достоверно должны попасть в диапазон.
но лучше перейти в частотный диапазон и взять корень из (комплексного) квадрата самой громкой гармоники, и умножить его на 2 для верности.
Кстати, FFT дает уже готовый частотный спектр и эквалайзер
Почему 0 ?
Среднее арифметическое абсолютных значений.
Как я понял log2(среднее)*6dB - 93dB даст приближённый уровень в децибелах.
Среднее арифметическое абсолютных значений.
Как я понял log2(среднее)*6dB - 93dB даст приближённый уровень в децибелах.
art_zh
БПФ говоришь ?
Всё намного проще. Пиковое значение даёт отличный результат.
Прям первый курс вспомнил -"найдите максимальное значение в массиве". А дальше log2()*6 даёт те самые децибелы.
И вот что получилось.
Индикатор пусть никого не пугает, на скорую руку рисовал.
БПФ говоришь ?
Всё намного проще. Пиковое значение даёт отличный результат.
Прям первый курс вспомнил -"найдите максимальное значение в массиве". А дальше log2()*6 даёт те самые децибелы.
И вот что получилось.
Индикатор пусть никого не пугает, на скорую руку рисовал.
до первого удара барабана.Serge wrote: Пиковое значение даёт отличный результат.
Проверил - работает. Перемотка особенно порадовала. Пока хардкорно не тестил, но если что-то найду обязательно отпишусь.
Из хаоса в космос
art_zh
На то оно и пиковое. Барабан ведь и по ушам бьёт нехило. Так что каждый будет на свой слух полагаться в первую очередь.
На то оно и пиковое. Барабан ведь и по ушам бьёт нехило. Так что каждый будет на свой слух полагаться в первую очередь.
Всё основное работает замечательно (ну там: перемотка, кнопочки...).
Есть только два незначительных бага:
1. Если увиличить окно FPlay с разных сторон, а затем уменьшить, то остаются полосы на фоне рабочего стола.
2. При остановке воспраизведения, нажатием на кнопку стоп, остаётся остатачный кусочек картинки.
Тестировал на сборке KOSnb SVN#2991.
Есть только два незначительных бага:
1. Если увиличить окно FPlay с разных сторон, а затем уменьшить, то остаются полосы на фоне рабочего стола.
Spoiler:

Spoiler:

Rock_maniak_forever
1. Это не плеер. Баг появился после правок отрисовки фоновой картинки.
2. Где-то я с координатами ошибся.
Поставил новенький 24-х сегментный oled индикатор уровня. Не знаю стоит ли выделять пиковые уровни другим цветом или лучше всё одним цветом. Немного Aiwa напоминает. Под индикатором будет регулятор громкости и сам индикатор будет появляться только при наведении курсора на регулятор.
1. Это не плеер. Баг появился после правок отрисовки фоновой картинки.
2. Где-то я с координатами ошибся.
Поставил новенький 24-х сегментный oled индикатор уровня. Не знаю стоит ли выделять пиковые уровни другим цветом или лучше всё одним цветом. Немного Aiwa напоминает. Под индикатором будет регулятор громкости и сам индикатор будет появляться только при наведении курсора на регулятор.
Last edited by Serge on Tue Oct 23, 2012 10:37 pm, edited 1 time in total.
Позволю себе задать уточняющий вопрос - это замечание относится к моим правкам?Serge wrote:1. Это не плеер. Баг появился после правок отрисовки фоновой картинки.
Если так, то тут явно проблемы с синхронизацией какие-то, поскольку код блиттера очень отличается от кода предыдущих процедур отрисовки.
Mario
Да. Возможно я это где-то писал. Уже полгода прошло.
Да. Возможно я это где-то писал. Уже полгода прошло.
1. По логике, если поставлена пауза, то перемотка не должна запускать поигрывание.Serge wrote:Все на борьбу с конечным автоматом за светлое мультимедийное будущее !
Смотрим фильмы, жамкаем кнопки, гоняем перемотку. Сообщаем обо всех случаях девиантного поведения.
2. Тормоза усилились. House в HD качестве до запуска видеодрайвера для Intel (режим 1024*768) еще не притормаживает, но после запуска (режим 1600
*900) начинает работать с заиканиями. Это на самом мощном моем ПК - ноутбуке Dell Inspiron c i5.
Лог для версии без индикатора громкости. С индикатором те же симптомы.
Регулятор громкости лучше сделать отдельным ползунком иначе не очень интуитивно.
Ну, я тоже где-то и неоднократно писал, что буду занят переездом в дом надолго.Serge wrote:Mario
Да. Возможно я это где-то писал. Уже полгода прошло.
И еще забыл - VOB файлы (DVD видео) открываются, но полоса перемотки заполнена вся, хотя перемотка каким то чудом происходит.
Who is online
Users browsing this forum: No registered users and 5 guests