Tuesday, September 30, 2014

у меня тут среди прочего есть такая штука в коде - кэш информации о файлах.
выдергивать каждый раз из файла служебные сведения долго, поэтому я их кэширую в текстовом файле.
ну, то есть. если не нашлось в кэше, беру файл, анализирую его, формирую из этой Очень Важной Информации строку и пишу её в специальный текстовый файл вместе со временем последнего изменения этого файла. строку "file %S mean %.2f, sigma %.2f, mse %.2f" и показываю время от времени пользователю, если ему интересно.
значит мне тут внезапно понадобились две чиселки оттуда, что бы из них вычислить Другое Нужное Число.

написал регексп, который парсит строку из кэша.
всё.

Thursday, September 25, 2014


Отлаживать же енкодар в отсутствии капчурки правильно как? Генерить синтетический сигнал, кодировать и смотреть в него потом. Со звуком так же.
Внезапно сгенерил очень прикольный звук. Формула приблизительно такая:

sample.bits = settings.audio_bitspersample; // тут 16
sample.channels = settings.audio_channels; // тут 2
sample.freq = settings.audio_samplerate; // тут 48000
sample.timestamp = 0;
int second = settings.aud_sample_size();
sample.data = new uint8_t[second];

if (entry.wait_effect == Pattern){
 for (int i = 0; i < second / 2; ++i){
 ((uint16_t *)sample.data)[i] = sin(2 * 3.14159265358979323 / settings.audio_samplerate * i) * 2000 * sin(i / 30.0);
 }
}

Очень похоже на этот буддистский резонатор в виде латунной чашки.

А вы в курсе, кстате, что если 48кГц поделить на 25, то будет 1920 ? По-моему в цыфровом телевидении все числа друг на друга делятся.

Всем детей. Ура.