Page 16 of 19

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Tue Nov 15, 2016 2:13 pm
by f2065
Есть ещё серьёзный баг с астрометой.
Астромета, пока работает, сильно греется. Когда не работает - не греется, холодная совсем.

Так вот, если в ProgDVB смотреть какой-то канал, а потом закрыть ProgDVB (нажатием [x] в правом углу окна) - то астромета быстро остывает и становится холодной.
А вот если в ProgDVB нажать на стоп, чтобы приём прекратился, а потом уже закрыть ProgDVB - то астромета продолжает оставаться горячей и спустя часы после закрытия ProgDVB.

Очевидно, при втором варианте не происходит корректного отключения от драйвера и драйвер не обесточивает устройство.

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Tue Nov 15, 2016 3:16 pm
by Prog
А в BDA.log отличия есть?

Попробуйте пожалуйста сегодняшний пререлиз "c" на предмет переключения между DVB-C и DVB-T. Не поломалось ли.

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Tue Nov 15, 2016 4:05 pm
by f2065
Prog wrote:А в BDA.log отличия есть?
Да. TearDownGraph 21:30:43.051 - pFilter->Release except

Вот выход сразу (тюнер корректно остывает):

Code: Select all

21:30:42.714 - GetTunerState 1 - 0(66)/100
21:30:43.022 - UpdateOpenedChannels 0
21:30:43.023 - Switch traffic
21:30:43.023 - SetTransponder [{BDA} ASTROMETA DTV Filter -DVB-T2] NULL
21:30:43.023 - KillTifPids
21:30:43.024 - Sleep Manager  21:30:43.025 - Sleeped
21:30:43.026 - Switch traffic
21:30:43.026 - SetTransponder [{BDA} ASTROMETA DTV Filter -DVB-T2] NULL
21:30:43.026 - KillTifPids
21:30:43.027 - Switch traffic
21:30:43.027 - SetTransponder [{BDA} ASTROMETA DTV Filter -DVB-T2] NULL
21:30:43.027 - KillTifPids
21:30:43.047 - DestroyModule
21:30:43.047 - Destroy virtual
21:30:43.047 - Stop
21:30:43.048 - ~CExtApiExternal::Unload
21:30:43.048 - Stop graph
21:30:43.048 - TearDownGraph 21:30:43.051 - pFilter->Release except
OK
21:30:43.053 - Stop OK
21:30:43.054 - DestroyModule
21:30:43.054 - Destroy virtual
21:30:43.054 - ~CBDAManager
21:30:43.054 - PowerOff
21:30:43.054 - Stop
вот выход после предварительного стопа (тюнер остаётся горячим):

Code: Select all

21:31:25.917 - GetTunerState 1 - 0(63)/100
21:31:26.410 - UpdateOpenedChannels 0
21:31:26.412 - Switch traffic
21:31:26.412 - SetTransponder [{BDA} ASTROMETA DTV Filter -DVB-T2] NULL
21:31:26.412 - KillTifPids
21:31:26.413 - Sleep Manager  21:31:26.414 - Sleeped
21:31:26.415 - Switch traffic
21:31:26.415 - SetTransponder [{BDA} ASTROMETA DTV Filter -DVB-T2] NULL
21:31:26.415 - KillTifPids
21:31:26.416 - Switch traffic
21:31:26.416 - SetTransponder [{BDA} ASTROMETA DTV Filter -DVB-T2] NULL
21:31:26.416 - KillTifPids
21:31:45.144 - DestroyModule
21:31:45.144 - Destroy virtual
21:31:45.145 - Stop
21:31:45.145 - ~CExtApiExternal::Unload
21:31:45.145 - Stop graph
21:31:45.145 - TearDownGraph OK
21:31:45.150 - Stop OK
21:31:45.151 - DestroyModule
21:31:45.151 - Destroy virtual
21:31:45.151 - ~CBDAManager
21:31:45.151 - PowerOff
21:31:45.151 - Stop
Prog wrote:Попробуйте пожалуйста сегодняшний пререлиз "c" на предмет переключения между DVB-C и DVB-T. Не поломалось ли.
Проверил. T2/C вроде переключается, но… Поломалось MPLP, совсем!

С автопоиском - не нашёл MPLP каналы с первой попытки.
Со второй попытки тоже не нашёл.
В логе вообще нет попыток включить PLP 1 или PLP 2, в том месте где они должны были быть
21:18:05.022 - Set PLP 0 - ok
21:18:12.718 - BeforSetTransponder DVB-T2 OK
21:18:13.219 - Set PLP 0 - ok
21:18:21.447 - BeforSetTransponder DVB-T2 OK
21:18:21.949 - Set PLP 0 - ok
21:18:30.190 - BeforSetTransponder DVB-T2 OK
21:18:30.692 - Set PLP 0 - ok
21:18:35.929 - BeforSetTransponder DVB-T2 OK
21:18:36.431 - Set PLP 0 - ok

В BDA логе пишет что MIS/PLP NOT supported

В ручном поиске поле для ввода PLP тоже пропало…

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Wed Nov 16, 2016 4:27 am
by Prog
Not supported вот и пропало. Режим в настройках устройства не изменился?

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Wed Nov 16, 2016 8:26 am
by f2065
Prog wrote:Not supported вот и пропало. Режим в настройках устройства не изменился?
Да там нет вроде опций могущих влиять на доступность MPLP. Дополнительное API - Astrometa и есть…

Все старые конфиги удалял, ставил с нуля.

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Wed Nov 16, 2016 2:58 pm
by Prog
Перетестировал проблему. В "d" пререлизе нормально работает?

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Wed Nov 16, 2016 5:20 pm
by f2065
Prog wrote:В "d" пререлизе нормально работает?
Да, MPLP починилось.
Переключение C/T2 работает нормально.

Из известных мне багов осталось два (не связанных с астрометой):
- нельзя назначить в настройках клавиатуры F10 (она не видится, хотя F9 F11 - назначаются).
- драйвер HID видит вообще какую-то лажу и ничего не слушает. 3 клавиатуры PS2 у меня видит (реально она одна), и ещё 2 каких-то. Но ни одна из них не реагирует на кнопки.

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Thu Nov 17, 2016 2:44 am
by Prog
С hid в вин в принципе какая то лажа. Совершенно нет возможности узнать с какого устройства пришло нажатие.

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Thu Nov 17, 2016 7:49 am
by f2065
Prog wrote:С hid в вин в принципе какая то лажа. Совершенно нет возможности узнать с какого устройства пришло нажатие.
Возможность есть, но сложная. Параллельно использовать WH_KEYBOARD_LL и RawInput. RawInput указывает от какого устройства кнопка, а хук на WH_KEYBOARD_LL позволяет её перехватить от дальнейшей работы.
В этой схеме надо ещё отладить срабатывание UAC и блокировки станции (Win-L) - для защиты этих экранов клавиатурные хуки начинают как-то странно себя вести после восстановления.

Ну а F10 то почему не хочет назначаться? Это явно не hid проблемы, это в ProgDVB какая-то фича или баг с обработкой именно её…

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Thu Nov 17, 2016 7:51 am
by Prog
Вот подобная сложная схема и работает. Дать исходник по отлаживать? В WPF есть свой механизм не пробовал.

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Thu Nov 17, 2016 8:09 am
by f2065
Prog wrote:Вот подобная сложная схема и работает.
А почему тогда такие нечеловеческие имена в списке устройств???

У меня из RawInput по hDevice более человеческие имена клавиатур:

Code: Select all

	GetRawInputDeviceInfoW((HANDLE)lvi.lParam, RIDI_DEVICENAME, &text_buffer_devicename, &SizeTempBuffer);
	if (GetLastError() != 0)
	{
		MsgErr("processing_context_menu hDev", "GetRawInputDeviceInfoW(RIDI_DEVICENAME)");
		return;
	}
	get_DeviceDesc(text_buffer_devicename, text_buffer_DeviceDesc, sizeof(text_buffer_DeviceDesc));

//====================================


size_t get_DeviceDesc(LPWSTR DeviceName, LPWSTR OutputBuffer, size_t OutputBufferSize)
{

WCHAR *DevClass;
WCHAR *DevSubClass;
WCHAR *DevProtocol;
WCHAR *DevEnd;
HKEY hReg;
DWORD tmp1;

WCHAR RegPath[MAX_PATH];
WCHAR DevName[MAX_PATH];

// WCHAR debug_buffer[500];
// StringCbPrintfW(debug_buffer, 500, L"%s \r\n%s \r\n%s \r\n%s \r\n", DevClass, DevSubClass, DevProtocol, DevEnd);

if ( ((StrCmpNW(DeviceName, L"\\\\?\\", 4)) != 0) & ((StrCmpNW(DeviceName, L"\\??\\", 4)) != 0) )
{
	return 0;
}

// MessageBoxW(0, DeviceName, 0, 0);

StrCpyNW(DevName, DeviceName, sizeof(DevName) / 2);

DevClass = &DevName[4]; // пропускаем начальный префикс '\\?\' или '\??\'
DevSubClass = StrPBrkW(DevClass, L"#");
if (!DevSubClass)
{
	return 0;
}
*DevSubClass = 0;
*DevSubClass++;

DevProtocol = StrPBrkW(DevSubClass, L"#");
if (!DevProtocol)
{
	return 0;
}
*DevProtocol = 0;
*DevProtocol++;

DevEnd = StrPBrkW(DevProtocol, L"#");
if (!DevEnd)
{
	return 0;
}
*DevEnd = 0;

RegPath[0] = 0;
wnsprintfW(RegPath, sizeof(RegPath)/2, L"System\\CurrentControlSet\\Enum\\%s\\%s\\%s", DevClass, DevSubClass, DevProtocol);

/* WCHAR debug_buffer[500];
StringCbPrintfW(debug_buffer, 500, L"%s \r\n%s \r\n%s \r\n%s \r\n", DevClass, DevSubClass, DevProtocol, DevEnd);
MessageBoxW(0, debug_buffer, 0, 0); */


if ((RegOpenKeyExW(HKEY_LOCAL_MACHINE, RegPath, 0, STANDARD_RIGHTS_READ | KEY_QUERY_VALUE, &hReg)) != ERROR_SUCCESS)
{
	return 0;
}

tmp1 = OutputBufferSize;
if ((RegQueryValueExW(hReg, L"DeviceDesc", 0, 0, (LPBYTE)OutputBuffer, &tmp1)) != ERROR_SUCCESS)
{
	RegCloseKey(hReg);
	return 0;
}
RegCloseKey(hReg);


return tmp1;


}
	

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Thu Nov 17, 2016 8:23 am
by Prog
Сейчас уже не помню деталей. Много лет прошло.

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Wed Feb 01, 2017 3:51 pm
by f2065
Поломали поддержку астрометы.
И уже видимо давно - ProgDVB7.17.1Std.exe ProgDVB7.17.2Std.exe ProgDVB7.17.3c.Std.exe ProgDVB7.17.3Std.exe - нигде не работает выбор источников!
Работают только старые конфиги, а с нуля - не настроить теперь.

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Thu Feb 02, 2017 3:45 am
by Prog
Я получил письмо, просто не добрался протестировать сам. Совсем недавно работало. Единственное что виртуальные устройства очень не любят переключений. При добавлении нового могут ID отсканированых каналов поломатся.

Но проверю

Re: ProgDVB и ASTROMETA-DVB-T2/T/C USB TUNER

Posted: Thu Feb 02, 2017 4:19 am
by Prog
Добался. Включил DVB-T2 и T1. T2 сканирует, у обоих можно выбрать муксы. К сожалению ни T1 и кабель проверить не могу :(