av_open_input_file возвращает -2, но файл существует (libav в NS2)

Я пытаюсь создать симуляцию в 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);

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

Какие-либо предложения?

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


person florencka    schedule 06.08.2011    source источник


Ответы (1)


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

person florencka    schedule 07.08.2011
comment
Как он мог вас предупредить :) - person mmoment; 21.01.2012