Ru-Board.club
← Вернуться в раздел «Программы»

» Media Player Classic (MPC)

Автор: Aleksoid1978
Дата сообщения: 14.11.2008 09:36
V0lt

Цитата:
Aleksoid1978

Цитата:Я могу выложить кусок кода, который отвечает за определение DAR/SAR из потока, если надо - вдруг ктонить возьмет и улучшит его.


дай посмотреть


Файл - ...\Mpc-hc\src\filters\transform\mpcvideodec\MPCVideoDecFilter.cpp
функция - HRESULT CMPCVideoDecFilter::Transform(IMediaSample* pIn), ну и вот сам код :

    if((m_nARMode) && (m_pAVCtx))
    {
        if((m_pAVCtx->sample_aspect_ratio.num>1) && (m_pAVCtx->sample_aspect_ratio.num>1))
        {
            double SAR = ((double)m_pAVCtx->sample_aspect_ratio.num/(double)m_pAVCtx->sample_aspect_ratio.den);
            if(m_sar != SAR)
            {
                m_sar = SAR;
                double DAR = SAR * m_nWidth/m_nHeight;
                CSize aspect(0,0);
                aspect.cy = m_nHeight;
                aspect.cx = (int)m_nHeight*DAR;
    
                int lnko = 0;
                do
                {
                    lnko = LNKO(aspect.cx, aspect.cy);
                    if(lnko > 1) aspect.cx /= lnko, aspect.cy /= lnko;
                }
                while(lnko > 1);
                if(aspect.cx != aspect.cy) SetAspect(aspect);
            }
        }
    }

m_pAVCtx->sample_aspect_ratio - это береться из ffmpeg

Передает параметры в функции SetAspect(aspect), которая находиться в
...\Mpc-hc\src\filters\transform\basevideofilter\BaseVideoFilter.cpp, вот код ее :

void CBaseVideoFilter::SetAspect(CSize aspect)
{
    m_arx = aspect.cx;
    m_ary = aspect.cy;
}

И при выводе просто идет задание :

vih->dwPictAspectRatioX = m_arx;
vih->dwPictAspectRatioY = m_ary;

Думаю понятно.

З.Ы. - Блин времени нету, не могу понять как работает вывод при режиме DXVA, т.к. при нем не вызываються функции из BaseVideoFilter.cpp, и поэтому я не могу понять кому/куда передавать параметры этого Aspect Ratio
Автор: V0lt
Дата сообщения: 14.11.2008 12:54
Aleksoid1978
я не понял этого

Код: if((m_pAVCtx->sample_aspect_ratio.num>1) && (m_pAVCtx->sample_aspect_ratio.num>1))
Автор: Kostja_V
Дата сообщения: 14.11.2008 15:09
Aleksoid1978,


Цитата:
А не обязательно прописывать VsFilter - он просто зареген в системе и поэтому юзаеться. Ты сделай вот что - добавь его во внешние фильтры и отключи, разреши встроенные субтитры в самом MPC - и посотри на резалт. Чтобы на 100% увереным быть что юзаеться для вывода субтитров - посотри перечень фильтров при проигрывании видео(Правая кнопка->фильтры)


Огромное спасибо за помощь. Твой ответ помог избавится от проблемы.
После очередной установки CCCP я просто скопировал VSfilter.dll что он устанавливает, а затем удалив СССР с удалением натроек прописал его в систему через regsvr32 у теперь все замечательно работает. Правда мне не понятны 2 вопроса... Почему этот же фильтр от СССР продолжал показывать крякозябры если его подгрузить через Внешние фильтры? И наоборот, почему VSFilter скачанный со странички проекта guliverkli2 вообще не работал (только появлялся в списке системных фильтров) если его зарегистрировать через regsvr32?
Автор: szl
Дата сообщения: 14.11.2008 16:06
Media Player Classic HomeCinema (x86), svn 891
Media Player Classic HomeCinema (x64), svn 891

Поддерживаемые языки: CN, CZ, DE, ES, FR, HU, IT, KR, PL, RU, SK, TR, UA

Полный лог изменений

Updated FFmpeg

Kostja_V, выложи семпл, интересно посмотреть и разобраться...
Автор: Aleksoid1978
Дата сообщения: 14.11.2008 17:25
V0lt

Цитата:
еще непонятно назначение m_sar и функции LNKO


inline int LNKO(int a, int b)
{
    if(a == 0 || b == 0)
        return(1);
    while(a != b)
    {
        if(a < b) b -= a;
        else if(a > b) a -= b;
    }
    return(a);
}

Насколько я понял весь кусок кода, в которй она юзаеться уменьшает 2 числа, но оставляет их соотношени друк к другу
Например 640х480, а в соотношении 4:3. (я не писал этот код, а просто скопировал, проверив что он делает)

m_sar - это просто временная переменная, в которую заноситься AR и потом я проверяю была ли уже проверка на AR(по тому равно ли сохраненно значение новому), и если была то занова не надо делать все эти вычисления, т.к. этот код находится в фукнции, которая обрабатывает каждый кадр(думаю понятно что каждый кадр делать лишние движения не красиво)


Цитата:
Код:if((m_pAVCtx->sample_aspect_ratio.num>1) && (m_pAVCtx->sample_aspect_ratio.num>1))


похоже на опечатку, но думаю в иходниках тоже самое


- ну конечно же это очепятка, видимо писал ночью или наоборот после бессонной ночи, всякое бывает - поправим
Автор: ioppp
Дата сообщения: 14.11.2008 19:14
Aleksoid1978
Пожалуйста, береги себя: хорошо питайся, брось курить, поменьше пей, и, самое главное - вовремя ложись спать.
Автор: V0lt
Дата сообщения: 14.11.2008 20:21
Aleksoid1978

Цитата:
всякое бывает - поправим

тогда я предлагаю такой вариант

Код: CSize m_sar(0,0);
//...
if((m_nARMode) && (m_pAVCtx))
{
CSize SAR(m_pAVCtx->sample_aspect_ratio.num, m_pAVCtx->sample_aspect_ratio.den);
if(m_sar != SAR)
{
m_sar = SAR;
CSize aspect(m_nWidth * SAR.cx, m_nHeight * SAR.cy);
int lnko = LNKO(aspect.cx, aspect.cy);
if(lnko > 1) aspect.cx /= lnko, aspect.cy /= lnko;
SetAspect(aspect);
}
}
Автор: ioppp
Дата сообщения: 15.11.2008 12:00
Хм, что-то в 64-битной версии плеера, мне не удаётся сделать нормальные пропорции картинки в фильме Дух Времени / Zeitgeist..
Да и качество картинки не ахти, по сравнению с JetAudio (с декодером CyberLink):





Добавлено:
О, разобрался.
Надо в Video Frame, в Override Aspect Ratio задать размер 4:3..
Автор: arestarh1986
Дата сообщения: 15.11.2008 22:24
Раз уж говорили о чтении AR из видеопотока.. На Doom9 был задан вопрос:
*Sadly, even this version of MPC HC is still unable to correctly display MPEG-4 AVC video encoded with aspect ratio signalling!
How is it that the original versions of MPC can correctly display MPEG-4 AVC video encoded with aspect ratio signalling and not MPC HC?*
и даны сэмплы. Главный разработчик ответил:
*Both problems should be fixed with this build* - 886(правда в логах не видел данного фикса!). Проверил на даных сэмплах - пашет.
Скачал последний 891 билд - корректно не ресайзит. В чем проблема?
Автор: qweasdzxc2
Дата сообщения: 15.11.2008 22:36
Установил Media Player Classic последнюю версию,
установил Real Alternative.

Когда запускаю Real Audio/Video - подргужается нормально
и начинает проигрывать. Но не звука, не изображения нет

Кто-нибудь в курсе в чём проблема ?

Спасибо
Автор: V0lt
Дата сообщения: 16.11.2008 00:10
arestarh1986

Цитата:
Скачал последний 891 билд - корректно не ресайзит.

у меня нормально растягивает с 720x432 до 1024x432
Автор: arestarh1986
Дата сообщения: 16.11.2008 00:31
А у меня это так выглядит на сэмплах, приведенных выше:
билд 891(лица вытянутые по вертикали)

билд 886


Автор: szl
Дата сообщения: 16.11.2008 00:53
arestarh1986, сейчас, ради интереса попробую собрать 886 ревизию, проверю... вполне может, что Casimir666 забыл добавить изменения в основной код.

добавлено: да, я был прав... он просто не добавил свои изменения в основной код... вот смотри скрин...


qweasdzxc2, попробуй сделать настройки вот так:


Автор: arestarh1986
Дата сообщения: 16.11.2008 02:20
szl, спасибо за прояснение ситуации, ждем исправления! Ну если главный разработчик работает как описывал Aleksoid1978(очень допоздна или после бесссонной ночки), то немудрено и ошибится
Автор: Aleksoid1978
Дата сообщения: 17.11.2008 02:12
arestarh1986

Цитата:
Ну если главный разработчик работает как описывал Aleksoid1978(очень допоздна или после бесссонной ночки), то немудрено и ошибится


Ну ладно уж - началось издевательство. Просто как вы думаете когд еще работать, если есть основная работа и семья с детьми(2 школьника + лялька 4 месяца). Вот и получаеться - либо на работе вырываеш минуту-другу, либо поздно вечером - как всех успать уложиш... Как говориться на что не пойдеш ради любимого проигрывателя и проекта )))


Добавлено:
V0lt

Закомитил изменения с твоим кодом, ссылаясь на тебя )))
Автор: Vouk1
Дата сообщения: 17.11.2008 04:42
Abs62

Цитата:
Клавиша F2 увеличивает задержку, F1 - уменьшает.

понажимал, не заметил эффекта. Где про это почитать?
Автор: V0lt
Дата сообщения: 17.11.2008 05:57
Aleksoid1978

Цитата:
Закомитил изменения с твоим кодом, ссылаясь на тебя )))

ой-йо, надо хоть для приличия самому потестить что ли)

начал было скачивать хлам для сборки MPC-HC и охренел - Microsoft® Windows® Software Development Kit Update for Windows Vista - 1180.1 MB! Оно вообще нужно? У меня XP.

Кто-нибудь скиньте MDAC 2.8 SDK. А то у меня валидацию требует...

Добавлено:
Vouk1

Цитата:
понажимал, не заметил эффекта. Где про это почитать?

Настрока -> Клавиши -> Задержка субтитров +/- (в самом низу списка)
Автор: Aleksoid1978
Дата сообщения: 17.11.2008 06:02
V0lt

Цитата:
начал было скачивать хлам для сборки MPC-HC и охренел - Microsoft® Windows® Software Development Kit Update for Windows Vista - 1180.1 MB! Оно вообще нужно? У меня XP.


Да - оно надо, это же SDK, без него не собререться )).


Цитата:
Кто-нибудь скиньте MDAC 2.8 SDK. А то у меня валидацию требует...


Уже не актульно - не нужен он(без него собираеться)

Автор: szl
Дата сообщения: 17.11.2008 07:26
V0lt, вместо Microsoft® Windows® Software Development Kit Update for Windows Vista (версия 6.0), используй тот который идет вместе с VS2008, версии 6.0А и тогда MDAC 2.8 SDK то же не нужен будет...
Автор: kir202
Дата сообщения: 17.11.2008 08:46
Media Player Classic 6.4.9.1 (rev.85) от 13.11.2008
Список изменений:


Код:
* обновлён до версии rev.85
* Removed file association option for image files. No sane person should ever want to make MPC the default viewer for images
* FLV splitter now supports FLV files that contain H.264 video and AAC audio
Автор: szl
Дата сообщения: 17.11.2008 09:16
Media Player Classic HomeCinema (x86), svn 900
Media Player Classic HomeCinema (x64), svn 900

Поддерживаемые языки: CN, CZ, DE, ES, FR, HU, IT, KR, PL, RU, SK, TR, UA

Полный лог изменений

FIX : rev.899
CHANGE : read AR routine from stream, thanks to V0lt from 'forum.ru-board.com '
Автор: arestarh1986
Дата сообщения: 17.11.2008 17:18
У меня 900 билд не ресайзит ни сэмпл V0lt, ни коректно сэмплы, приведенные мною ранее!

Добавлено:
Aleksoid1978, извини, если чем обидел! Наоборот, огромное спасибо за то, что не смотря на столь плотный график, уделяешь время развитию плеера!
Автор: szl
Дата сообщения: 17.11.2008 17:41
arestarh1986, пока корректная обработка аспекта происходит с выключенным DXVA, для DXVA эта функция пока не реализована.
Casimir666 сделал пробный вариант с обработкой аспекта в DXVA, но когда он эти изменения добавит в основной код известно только ему одному...
Если вместо MP4, TS, и MKV сплитеров использовать Haali Media Splitter, то проблем при воспроизведении возникает меньше (эти сплитеры давно не обновлялись), разработчики MPC-HC рекомендуют именно такую схему.
Автор: arestarh1986
Дата сообщения: 17.11.2008 19:18
С hardware дэкодером ясно, будем ждать! Просто думал, что последние исправления решат проблему с DAR, описаную ранее V0lt.
Автор: V0lt
Дата сообщения: 17.11.2008 20:27
szl

Цитата:
CHANGE : read AR routine from stream, thanks to V0lt from 'forum.ru-board.com '

DAR считается более точно. Теперь ffdshow подцепленный после MPC Video Decoder сообщает через OSD такой же DAR как если бы декодирование шло через ffdshow.
с тем что пишет GSpot теперь тоже совпадает.

DAR=1:1 на некоторых файлах заработл, а 1:2 так не работает
Автор: szl
Дата сообщения: 17.11.2008 20:35
arestarh1986, наконец Casimir666 дал ответ, работа над проблемой идет, так что наберемся терпения и будем ждать.
Автор: ioppp
Дата сообщения: 17.11.2008 20:48
szl
Прочитал я ответ Казимира, который Шестьсот Шестьдесят Шестой, и горько пожалел: почему я не Абрамович, не Вайнсберг, не Дерипаска, чтобы освободить его от всяких других, абсолютно не нужных человечеству дел, чтобы он целиком и полностью сосредоточился над огранкой и шлифованием MPC-HC..?
Автор: V0lt
Дата сообщения: 17.11.2008 21:50
kir202

Цитата:
Сделал перевод на эту версию. Страница для загрузки русской версии Media Player Classic 6.4.9.1 от 13.11.2008
http://kdasoft.narod.ru/myrus.htm

спасибо

szl

Цитата:
V0lt, вместо Microsoft® Windows® Software Development Kit Update for Windows Vista (версия 6.0), используй тот который идет вместе с VS2008, версии 6.0А и тогда MDAC 2.8 SDK то же не нужен будет...

у меня VS2008ExpressWithSP1ENU, в нем вроде нет ничего такого
я понимаю надо как минимум VS2008Professional качать? о боже...

и еще глюки с TortoiseSVN
вбиваю http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/
получаю Repository moved temporarily to '/viewvc/mpc-hc/'; please relocate
не понимаю, чего надо сделать...

Добавлено:
Aleksoid1978
нащел глюк в 900 сборке

Код: if(((m_nARMode) && (m_pAVCtx)) && ((m_pAVCtx->sample_aspect_ratio.num>1) && (m_pAVCtx->sample_aspect_ratio.den>1)))
{
CSize SAR(m_pAVCtx->sample_aspect_ratio.num, m_pAVCtx->sample_aspect_ratio.den);
if(m_sar != SAR)
...
Автор: szl
Дата сообщения: 17.11.2008 22:24
V0lt, по правой кнопке открываешь обозреватель хранилища, там вводишь эту ссылку https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc, жмешь правую кнопку на папке trunk и выбераешь извлечь.

Автор: V0lt
Дата сообщения: 17.11.2008 23:01
szl
спасибо, качает

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Супер Окна (часть 2)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.