Ffmpeg avio_open_dir возвращает -40 в Windows, даже когда существует каталогC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ffmpeg avio_open_dir возвращает -40 в Windows, даже когда существует каталог

Сообщение Anonymous »

Я использую ffmpeg7.1 в Windows 10. И версия Libavformat -61.
Я использую абсолютный путь каталога на AVIO_OPEN_DIR < /code> Но он не удас. > Я использую AV_ERR2STR Получил функцию, не реализованную .
Какая это проблема?extern "C"
{
#include
}

int main()
{
av_log_set_level(AV_LOG_DEBUG);

auto dir = "D:\\music";
AVIODirContext* dirCtx;
auto ret = avio_open_dir(&dirCtx, dir, nullptr);
if (ret < 0)
{
av_log(nullptr, AV_LOG_ERROR, "Can't open %s: %s\n", dir, av_err2str(ret));
exit(EXIT_FAILURE);
}
}
< /code>
output < /p>
Can't open D:\music: Function not implemented
< /code>
Это не неправильная проблема пути. Я использую файловую систему CPP, чтобы проверить ее и без проблем.void testDirExist()
{
auto dir = "D:\\music";

if (std::filesystem::exists(dir))
{
if (!std::filesystem::is_directory(dir))
{
av_log(nullptr, AV_LOG_ERROR, "%s is not a directory: %s\n", dir, av_err2str(ret));
exit(EXIT_FAILURE);
}
}
}

Также другая функция avio_open является нормальной в том же каталоге.
void testDirEntry()
{
auto path = "D:\\music\\四季ノ唄.mp3";

AVIOContext* ctx;
int ret;

ret = avio_open(&ctx, path, AVIO_FLAG_READ);
if (ret < 0)
{
av_log(nullptr, AV_LOG_ERROR, "Can't open %s: %s\n", path, av_err2str(ret));
exit(EXIT_FAILURE);
}

ret = avio_close(ctx);
if (ret < 0)
{
av_log(nullptr, AV_LOG_ERROR, "Can't close %s: %s\n", path, av_err2str(ret));
exit(EXIT_FAILURE);
}
}
< /code>
output < /p>
[file @ 000002AEA5777F00] Setting default whitelist 'file,crypto,data'
[AVIOContext @ 000002AEA57A1EC0] Statistics: 0 bytes read, 0 seeks


Подробнее здесь: https://stackoverflow.com/questions/793 ... ory-exists
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»