Mar. 6th, 2013

psilogic: (croco)
Пердуперждение: эта запись вряд ли будет понятна непрограммистам. А на программистов может навеять скуку... или не навеять.

Иногда при кодировании случаются ситуёвины, напоминающие детектив. Вчера такое вот случилось.

Ковыряюсь я в своем звуковом редакторе "Bard". Как полигон для тренировки и освоения разных технологий - очень даже зачетная вещь. Вчера захотелось мне странного: чтобы два преобразования музыкальных файлов шли в параллель.

Преобразования у меня трех типов - built-in, на основе ACM и на основе любимой многими утилиты FFmpeg. Вот о последней и пойдет речь.

Я эту FFmpeg имел в самых разных позах - например, работал прилагаемой к ней с ней библиотекой кодеков через ейное API, собирал саму утилиту как модуль-часть-программы и как отдельную подгружаемую на runtime DLL-ку с кастрированием лишних функций... как-то все не то. И самый последний вид сношений, к которому я прибег, это использование pipe-ов.

Вкратце суть проблемы была такой: на вход одного преобразования подается файл Alice.wav, на выходе ождижается Alice1.mp3. Второе преобразование на вход берет тот же Alice.wav, на выходе - Alice2.mp3.

И вот... запускаю я два преобразования одновременно (с интервалом в пару секунд) и совершенно внезапно программа выдает ошибку: "доступ запрещен, файл: Alice1.mp3". Ну, я, естественно, лезу в стек, и обнаруживаю, что сбойнула функция rename. Кто бы мог подумать, какой длиннющий детектив породит такая ерунда.

Дальше - больше... )
Page generated Aug. 9th, 2025 06:07 am
Powered by Dreamwidth Studios