Hacking do LAV Splitter para usar buffer antigo simples
O LAV Splitter é usado para buscar dados de rede em alguns media players (por exemplo, MPC-HC). O buffer LAV (também conhecido como fila de pacotes) não é medido no volume de dados, mas sim em pacotes (ou quadros, não seguros aqui). De qualquer forma, como a taxa de transferência da rede é limitada pelo volume de dados, o número de pacotes na fila é multiplicado pela variável factor
, que é maior quanto maior for a qualidade do vídeo que você está reproduzindo. Isso fornece um buffer de tamanho variável, mas você não pode realmente controlar o tamanho e, se obtiver WiFi lento, poderá ter experimentado a reprodução instável.
O seguinte guia muda a maneira como o buffer LAV funciona, eliminando os limites de pacotes e colocando as infames configurações de "Maximum Queue Memory" no controle (infame como você poderia ter tentado aumentar essas configurações do padrão 256 MB sem sucesso como muitos têm antes você).
instruções de 32 bits
- Abra o arquivo
mpc-hc/LAVFilters/LAVSplitter.ax
no editor HEX de sua escolha. - Localize e substitua a sequência de bytes
69 C5 5E 01 00 00
exclusiva por69 C5 FF FF 00 00
. - Abra as configurações do Divisor LAV e defina a Memória Máxima da Fila como 256 MB. Isso é grande o suficiente para lidar com WiFi fragmentado e valores mais altos podem introduzir instabilidade (acima de 1 GB para mim). Mas sinta-se à vontade para experimentar esse valor.
Detalhes
Estamos mudando a linha m_dwQueueHigh = MAX_PACKETS_IN_QUEUE * factor;
[ 1 ] onde #define MAX_PACKETS_IN_QUEUE 350
[ 2 ] para m_dwQueueHigh = 65535 * factor;
. Essa alteração remove efetivamente a restrição factor
e as configurações Memória máxima da fila não serão mais limitadas por ela.
Como testar isso?
Leia esta resposta para encontrar o quão grande é o seu buffer agora. Você está procurando o valor Buffers: [0] <buffer-size-in-frames>/<buffer-size-in-KB> KB
.
Quando isso não é suficiente?
Esse hack basicamente amplia o limite de cache em 187 vezes ( 65535 / 350
). Na maioria dos casos, isso é suficiente e o fator limitante é o que você define em Maximum Queue Memory . Em alguns casos raros, pode não ser o caso
- se você reproduz vídeos muito longos, o número de quadros em cache
65535 * factor
pode ser menor do que o número de todos os quadros no arquivo de vídeo. - se você reproduz vídeos com qualidade muito baixa, o
frame size in MB * 65535 * factor
pode ser menor do que sua Memória máxima da fila .
factor
está no intervalo de 2
a 120
( fonte ).