av_open_input_file возвращает -2, но файл существует (libav в NS2) - PullRequest
1 голос
/ 06 августа 2011

Я пытаюсь создать симуляцию в NS2, в которой я читаю файлы .wav, кодирую в gsm и отправляю их по сети. Мне уже удалось создать приложение, которое читает в .wav, кодирует в gsm и сохраняет на жестком диске (проверено, работает нормально). Теперь я пытаюсь сделать то же самое, расширяя Network Simulator 2, и у меня есть проблема с av_open_input_file, который постоянно говорит, что такого файла нет, хотя у меня не было проблем с этим файлом в моем приложении кодирования gsm. Звонок, который я использую:

av_open_input_file(&pFormatCtx, "/home/xxx/audio_samples/audio.wav", NULL, 0, NULL);

Уже пробовал разные файлы, жестко прописывая путь, абсолютный путь, относительный путь и помещая "file: //" впереди, потому что libav, очевидно, использует какой-то протокол файла. Затем я попытался открыть файл самостоятельно с помощью:

int desc = open("/home/xxx/audio_samples/audio.wav", O_RDONLY, 0);

(обнаружил этот вызов в file.c libav, который должен вызываться av_open_input_file) Нет проблем с открытием такого файла, все вроде бы нормально, так что теперь я понятия не имею, что еще может быть не так.

Есть предложения?

С уважением, Флоренцка

1 Ответ

3 голосов
/ 07 августа 2011

Проблема решена.av_register_all () отсутствовал до вызова av_open_input_file.Там не было ни предупреждения, ни ошибки.

...