Уважаемый Гость!
Вы можете поддержать проект и зарегистрироваться у наших партнеров - онлайн-стратегия MyLands. При регистрации в игре Вы получите код, который сможете активировать после регистрации на pirat.ca и получить 1000 дублонов.

Ваш код:
34a67e52c4313499c5a64299d677682df6c1bb8d
 
     

Авторская раздача: ShaPLAY 0.6 (плеер для дисков DVD-AUDIO)

Ответить на тему
 
Автор
Сообщение

Пост 09-Июн-2012 10:20

[Q] 

Koralina

Авторская раздача: ShaPLAY 0.6 Год выпуска: 2011
Версия: 0.6a
Также приложен архив v0.5a, если кому-то новая версия покажется слишком сырой.
Платформа: Windows
Совместимость с Vista: да, включая 64bit
Системные требования:
рекомендуется установлекный кодек ffdshow_tryouts (включен в раздачу), но можно запускать и без него
Для bit-perfect вывода рекомендуется ReClock/MPC-Renderer/ASIOWmpPlg (включены в раздачу).
Описание:
Программный плеер дисков DVD-AUDIO (диски или раскрытые папки на HDD), в том числе Watermarked (кроме криптованных).
Доп. информация:
01.03.2009 - v0.0.1 pre-alpha
- первый публичный
02.03.2009 - v0.0.2 pre-alpha
- Баг: с некоторыми дисками не переходил на следующий трек после окончания текущего. Исправлен очередным костылём.
v0.0.2.1a
- лобавлена проверка наличия файлов DVD-A
- Убрана индикация проигрывания в %
- ДОБАВЛЕНА ВОЗМОЖНОСТЬ ЗАПУСКА БЕЗ FFDSHOW
- несколько костылей для решения проблемы остановки в конце трека, но финально не решено
v0.0.2.2a
- несколько костылей для решения проблемы остановки в конце трека, но финально не решено
- Автопропуск треков, которые непонятно чем закодированы (не MLP и не PCM)
v0.0.2.3a
- возможность выбора фильра DirectShow (ffdshow,WaveParser,default)
- запоминание настроек и пути к папке DVD-A
- тестировано в чистой Vista32 SP1 - OK (без ffdshow)
- тестировано в чистой Vista64 SP1 - OK (без ffdshow)
- Изменен GUID для внутреннего source-фильтра
- последний костыль для решения проблемы остановки в конце трека - финально решено
02.04.2009 - v0.3a
- Изменена нумерация версий: v0.0.3.0a -> v0.3a
- Файл скомпилирован как 'Release' для меньшего размера и удаления отладочной информации
- Добавлено: поддержка DLL-интерфейса для дистанционного управления (исходники прилагаются)
- Добавлено: работающий пример RemoteControl.dll для пульта Microsoft MCE Remote 2.0
- Добавлено: кнопка OPEN (выбирать файл AUDIO_TS.IFO для запуска)
- Добавлено: кнопка STOP
- Исправлено: Теперь можно вводить путь у корню папки с DVD-A, к папке AUDIO_TSили прямо к файлу AUDIO_TS.IFO
- Исправлено: возможное выпадание если ffdshow пытается взять данные после остановки графа
- Исправлено: увеличено число символов в поле для ввода пути к папке DVDA
- Исправлено: выпадание при ручном выбросе диска. Но родное сообщение Windows все равно появляется
13.04.2009 - v0.4a
- Добавлено: Выводится 0:00 при старте трека
- Добавлено: Метки времени в лог-файле
- Добавлено: Автозапуск диска после выбора через кнопку Open
- Добавлено: Прямое соединение с 'DirectSound Renderer', без промежуточных фильтров DirectShow
- Добавлено: Копка Eject
- Добавлено: Включение-выключение лога с информацией о диске DVDA(по умолчанию выкл)
- Добавлено: Можно подставить GUID любого своего DirectShow Renderer (через cfg файл)
- Добавлено: Простейшая регулировка громкости в графе DirectShow (логарифмическая шкала!!!)
- Добавлено: Статус-бар с информацией о треке, из заголовка окна инфо убрана
- Добавлено: Внутрення очередь команд от нажатых кнопок
- Добавлено: Кнопки '<<' (пред тайтл) и '>>' (след тайтл)
- Добавлено: Настройка "Don't resume after Next/Prev" ("Не выходить из режима ПАУЗА при нажатии NEXT/PREV")
- Добавлено: Подсказки для некоторых кнопок
- Добавлено: RemoteControl.DLL для MCE теперь посылает CMD_CLOSE кнопкой 'Info'
- Исправлено: Пропуск последних 2-3 секунд на некоторых треках
- Исправлено: проблема с загрузкой из cfg-файла имени папки с пробелами
- Исправлено: Паузы между треками сокращены (теперь от 150 до 400мс)
- Исправлено: CMD_CLOSE от пультов не работало
- Исправлено: Возможное закрытие программы в режиме WaveParser+BuildFullGraph
- Исправлено: Закрытие программы на слабых CPU при нажатии NEXT/PREV
- Исправлено: Кнопка PAUSE/RESUME не меняла состояние после NEXT/PREV
- Исправлено: Закрытие программы на маленьких треках (1-2 сек)
- Исправлено: Закрытие программы при нажатии Next/Prev несколько раз подряд
v0.5a - 27.05.2009
- Исправлено: Цвет фона некоторых элементов
- Исправлено: Изменено оформление главного окна
- Исправлено: Добавлена информация о частоте и разрядности треков в лог-файл
- Исправлено: Теперь тайтлы с видео сразу пропускаются
- Исправлено: Комбинация Ctrl-A работает в строке ввода
- Исправлено: Нажание на 'Enter' в строке ввода запускает воспроизведение
- Добавлено: Отдельно окно 'Settings' со всеми настройками
- Добавлено: Опции для ReClock (только в качестве теста, используйте ReClock v1.8.4.4+)
- Добавлено: Новая опция: пропуск треков 166.4/192kHz (актуально для XP)
- Добавлено: Настройки для Logging, ExtendedLogging и строки GUID
- Добавлено: ПОДДЕРЖКА ВОСПРОИЗВЕДЕНИЯ ИЗ ISO-ОБРАЗОВ (ЭКСПЕРИМЕНТАЛЬНО)
- Добавлено: Окно информации о диске
- Добавлено: Новая опция: Линейная шкала ползунка громкости (по умлочанию - логарифмическая)
- Добавлено: НЕПРЕРЫВНОЕ ВОСПРОИЗВЕДЕНИЕ ТАЙТЛА
v0.6a - 05.05.2011
- Исправлено: Файлы ISO/IFO/AOB оставались заблокированы даже после STOP/EJECT
- Исправлено: В режиме Gapless не менялось в заголовке окна текущее время всего тайтла
- Исправлено: Спорадические проблемы при проигрывании тайтла
- Исправлено: Неправильно округлялась длина треков в секундах
- Исправлено: Проигрывание файлов/папок с названием в формате Unicode (теперь они видны как старые 8.3 - криво, но работает)
- Исправлено: Если открыто окно Settings, с пульта всё равно можно было управлять. Теперь принимается с пульта только CLOSE
- Добавлено: Опция '2Gb max size' в режиме gapless (решает проблемы некоторых версий XP)
- Добавлено: Опция 'Use ABOVE_NORMAL priority for application' – увеличивает приоритет
- Добавлено: Простенькая иконка для приложения и главного окна
- Добавлено: Опция 'Hide to tray...'
- Добавлено: Кнопка GUID для ArcSoft TMT Audio Renderer
- Добавлено: Кнопка GUID для ASIOWmpPlg + вызов опций. НЕ ТЕСТИРОВАНО!
- Добавлено: Кнопка GUID для MPC Audio Renderer (WASAPI, только Vista/W7). Смог проверить только в виртуальной машине 2.0-16bit.
- Добавлено: Автостарт проигрывания, если дано имя файла/папки как аргумент при старте
- Добавлено: Загрузка информации о треках/альбомах из соответствующего файла XML, если найден
- Добавлено: XMLTagEditor v1.0 с исходниками – внешнее приложение, редактор XML
- Добавлено: Отображается обложка диска, если она найдена (<IFO_HASH>.JPG)
- Добавлено: Отображается информация о исполнителе/альбоме/треке
- Добавлено: Навигация по Titles/Titlesets, втом числе через пульт
- Добавлено: RemoteControl.DLL для MCE теперь поддерживает XBOX clone-remote
- Добавлено: RemoteAPI: Команды NextTitle/PrevTitle
- Добавлено: RemoteAPI: Команды Up/Down/Left/Rigth/Select для навигации
- Добавлено: Простейший web interface (только основные кнопки)
- Добавлено: Полоса прокрутки (ЭКСПЕРИМЕНТАЛЬНО! Работает только на дисках с PCM треками...)
Информация о DirectShow:
http://msdn.microsoft.com/en-us/library/dd373390
http://directshow.wonderu.com/%D1%81%D1%82%D0%B0%D1...1%8C%D1%82%D1%80
Утрировано:
Изначально всем плеерам под Win32 приходилось все проблемы с воспроизведением решать самим – загрузка файла, декодирование, всякие эквалайзеры DSP и, наконец, только вывод средствами Windows. Для облегчения работы Microsoft предложила технологию DirectShow (далее будем рассматривать только ту ее часть, которая касается audio playback). Большое количество современных плееров (начиная от стандартного Windows Media Player до MPC-HC) используют эту технологию, но некоторые (в основном, давно существующие и тянущие за собой кучу уже написанных плагинов и декодеров – winamp, foobar и т.д.) продолжают заниматься всем самостоятельно. ShaPLAY также использует DirectShow – больше стандартизация, можно использовать сторонние фильтры, да и правильнее это.
При проигрывании используется структура (называемая «графом»), которую для себя строит приложение, создавая последовательность обработчиков данных («фильтров»). Фильтры, включённые в граф, соединены между собой связями, и обработка данных будет идти по этой цепочке, поэтому последовательность включения фильтров и их тип имеет значение для результата. Также нужно понимать, что бывают разные фильтры, выполняющие одни и те же функции. К примеру, FLAC можно декодировать через ffdshow, можно через madFLAC или CoreFLAC или еще 3-4 разными декодерами. Графу всё равно, какой фильтр включён в граф, лишь бы он правильно передавал данные. Но, возможно, не всё равно пользователю.
Обычно граф выглядит так (видео + аудио):

Для проигрывания только аудио в общем виде это будет так:
[SourceFilter]-[DecoderFilter]-...[OtherFilters]...-[RenderingFilter]
Source-фильтр всегда будет один и тот же, это кусок кода в ShaPLAY, который генерирует поток данных с диска DVD-A в формате PCM (он же raw audio) как обычный WAV-файл. Затем этот поток должен декодироваться (фильтр-декодер) и проиграться (фильтр-рендерер).
Современные рендереры в большинстве своём могут декодировать WAV сами, без помощи декодера (это умеют DirectSound Default Renderer, ReClock, ArcSoft Renderer).
Если используется подобный рендерер и не нужны эквалайзеры и другие фильтры, лучше всего (для качества звука) не использовать декодер вообще.
Вид графа тогда: [SourceFilter]-[RenderingFilter]
Настройки в ShaPLAY:
Build complete DirectShow Graph + Directly to DirectSound Renderer.
Если фильтр-рендерер не умеет сам декодировать WAV-файл (MPCAudioRenderer?), то необходимо обязательно использовать фильтр-декодер. Также его нужно использовать, если нужен эквалайзер или ресемплер или еще что-то такого типа. Я рекомендую ffdshow, в котором можно найти почти всё, что нужно. Также можно настроить ffdshow, чтоб декодер не вносил никаких изменений в поток – зато можно контролировать визуально частоту-кол-во каналов-разрядность проигрываемого материала.
Вид графа тогда: [SourceFilter]- [ffdshow]-[RenderingFilter]
Настройки в ShaPLAY:
Build complete DirectShow Graph + Use ffdshow as preffered filter.
Если необходимо просто декодирование WAV в raw-поток, то можно использовать стандартный фильтр WaveParser (он не вносит никаких изменений в поток, но может не поддерживать потоки с высокой частотой – 192кГц).
Вид графа тогда: [SourceFilter]-[WaveParser]-[RenderingFilter]
Настройки в ShaPLAY:
Build complete DirectShow Graph + Use WaveParser as preffered filter.
Если есть желание или потребность использовать другие промежуточные фильтры (AC3Filter к примеру), то (по состоянию на версию 0.6) есть только кособокий способ это сделать:
- зарегистрируйте нужные фильтры в системе, присвоив им default статус (высокий приоритет)
- выберите Use default filter (Опция Build complete Direct Show Graph в этом случае не важна).
В этом случае ShaPLAY создаст пустой граф и добавит в него 1 фильтр – source-фильтр из ShaPLAY. Затем к выходу этого фильтра применится функция Graph->Render(), которая а) добавит в граф фильтры, которые Windows посчитает необходимым использовать для построения цепочки, с учётом приоритетов фильтров; б) соединит все фильтры в этом графе в цепочку. Получится:
[SourceFilter]-[DecoderFilter]-...[OtherFilters]...-[RenderingFilter]
Какие именно фильтры DecoderFilter/OtherFilters вставятся, можно контролировать только выставляя им заранее приоритеты в настройках самих фильтров или Windows. Фильтр-рендерер также будет подставлен Windows, поэтому настройка Renderer GUID в этом случае не будет работать.
Если НЕ ВЫБРАНА опция Use default filter и ОТКЛЮЧЕНА опция Build complete DirectShow Graph, то логика построения построения графа такая:
- если выбрано Directly to DirectSound Renderer, то см выше
- если выбрано Use ffdshow или Use WaveParser, то а) в пустой граф добавится source-фильтр, б) добавится декодер ffdshow/WaveParser и соединится к source-фильтру, в) вызовется Graph->Render(), которая добавит недостающие фильтры и рендерер (см выше - как и при Use default filter). Уже вставленный фильтр ffdshow/WaveParser ТОЧНО останется в цепочке. Рендерер будет подставлен по умолчанию, настройка Renderer GUID в этом случае не будет работать.
Рендерер – это последний фильтр в графе, он, собственно, делает сам вывод звука. В графе рендерер выглядит как обычный фильтр, и, также как и любой другой фильтр, имеет свой уникальный идентификатор, который называется GUID или CLSID. Это 16 байт, которые обычно в текстовом виде записывают в таком виде:
{79376820-07D0-11CF-A24D-0020AFD79767}
В Windows по умолчанию действует рендерер DirectSound Renderer. Некоторые рендереры (например ReClock) могут (при включении опции) подменять стандартный рендерер собой. В тоже время, в граф можно добавлять не обязательно тот рендерер, которые является рендерер по умолчанию, а в принципе любой, совместимый с данным типом данных (в случае с ShaPLAY – совместимый с потоком PCM). Для этого нужно включить Build complete DirectShow graph и выбрать одну из опций – Use ffdshow, Use WaveParser или Directly to DirectSound Renderer. В поле Renderer GUID нужно внести GUID желаемого рендерера, который будет добавляться при проигрывании в ShaPLAY и не будет никак влиять на настройки других программ, использующих DirectShow. GUID должен вносится именно в таком виде, как приведено выше, включая фигурные скобки:
{8символов-4сим-4сим-4сим-12сим}
Для некоторых рендереров в настройках есть сразу кнопки, которые вносят GUID этого рендерера (для ASIOWmpPlg также будет вызвано окно настроек этого рендерера), но в принципе можно и ввести руками..
В этом случае процедура построения графа будет следующая:
- в пустой граф будет добавлен source-фильтр.
- если выбрано Use ffdshow или Use WaveParser будет добавлен соответствующий фильтр и соединён с выходом source-фильтра
- будет добавлен фильтр-рендерер согласно указанному GUID
- выход фильтра-декодера (в случае Directly to DirectSound Renderer) будет соединён со входом рендерера
- граф будет запущен на воспроизведение.
Прежде чем читать дальше, определитесь, а оно Вам вообще надо ли…
Общие данные про kmixer:
http://www.avsforum.com/avs-vb/showthread.php?t=739263
http://code.google.com/p/cmediadrivers/wiki/Bitperfect
http://en.wikipedia.org/wiki/KMixer
Вкратце: для того чтобы иметь возможно выводить одновременно несколько звуков из разных приложений, Windows замыкает все открытые звуковые потоки на внутренний драйвер, который называется kmixer. Для XP - Так как программы могут выводить файлы разных частот и разрядности, kmixer «усредняет» все потоки до одинковых характеристик 48kHz-16bit, которые потом легко накладываются друг на друга. Причём делается это не только в моменты, когда одновременно выводится более одного потока, а вообще всегда. Для Vista и Win7 подсистема kmixer была переработана, но всё равно знатоки с большими ушами и аудиофилы утверждают, что kmixer портит аудио-потоки.
Для преодоления (bypass) подсистемы kmixer есть 3 известных технологии. Для WinXP (и в некоторых случаях – Vista) можно применить Kernel Streaming (http://en.wikipedia.org/wiki/Kernel_streaming). Для Vista/Win7 – WASAPI (http://en.wikipedia.org/wiki/Technical_features_new...ack_architecture). Для некоторых карт (обычно недешёвых) – ASIO (http://en.wikipedia.org/wiki/Audio_Stream_Input/Output). ASIO можно проэмулировать через ASIO4ALL, но особого смысла в нашем случае не будет, так как ASIO4ALL завёрнёт весь звук на KernelStreaming, лучше уже сразу брать рендерер с поддержкой KS.
А теперь давайте определимся, что делать…
1) У меня Vista/Win7, мне это всё малопонятно и вообще звучит и так хорошо.
Ставим Build complete DirectShow Graph + Directly to DirectSound Renderer. В поле Renderer GUID нажимаем кнопку DS-Renderer и не заморачиваемся.
2) У меня XP, мне это всё малопонятно и вообще звучит и так хорошо.
Если НЕ ПЛАНИРУЕТСЯ прослушивание треков 192kHz, то ставим Build complete DirectShow Graph + Directly to DirectSound Renderer. В поле Renderer GUID нажимаем кнопку DS-Renderer и не заморачиваемся.
Если планируются треки 192kHz (стандартный DirectSound Renderer в XP не поддерживает частоты более 96kHz), то или ReClock (в режиме KernelStreaming) или ArcSoft Renderer. Ставим Build complete DirectShow Graph + Directly to DirectSound Renderer. В поле Renderer GUID нажимаем кнопку ReClock или ArcSoft.
3) У меня XP и kmixer меня напрягает.
Ставим ReClock, выбираем режим KernelStreaming. Ставим Build complete DirectShow Graph + Directly to DirectSound Renderer. В поле Renderer GUID нажимаем кнопку ReClock. Нужно добиться надписи bit-exact в окне ReClock при воспроизведении.
4) У меня Vista/Win7, но это меня всё равно напрягает.
В режиме Kernel Streaming (Vista only): ReClock как указано выше.
В режиме WASAPI:
а) ReClock как указано выше, но указываем режим WASAPI.
б) MPCAudioRenderer – регистрируем фильтр, ставим Build complete DirectShow Graph + Directly to DirectSound Renderer. В поле Renderer GUID нажимаем кнопку MPC-Renderer.
5) ArcSoft Renderer из TMT... В каком режиме он работает?
ХЗ. Работает во всех ОС, поддерживает все частоты, судя по ресиверу, частоту меняет. Мне нравится своей универсальностью. Если кто знает больше – дайте инфу.
To be continued...
2do
[img][/img]
Автор программы: Shadson , за что ему огромная благодарность bs
Download / Скачать

Хотите скачать бесплатно? Зарегистрируйтесь на сайте (ссылка на регистрацию). Pirat.ca - самый быстрый торрент трекер в рунете!

Как скачивать  ·   Что такое торрент  ·   Рейтинг и ограничения

Показать сообщения:    
Ответить на тему

Текущее время: Сегодня 04:10

Часовой пояс: GMT + 4



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

▼ Вниз