ffmpeg — Доступ к элементам AVCodecContext

Я хочу получить доступ к некоторым членам моего AVCodecContext *av_ctx в моей программе. Хорошо, когда я компилирую его в 32-битной версии, но когда я изменяю его на 64-битную, эти элементы действуют так, как будто они смещены.

Например, я хочу получить av_ctx->coded_width а также av_ctx->coded_height (иногда они отличаются от av_ctx->width а также av_ctx->height) и сохраните их в некоторых переменных. Теперь, когда я отлаживаю эту программу в 32-битной версии, все в порядке, но в 64-битной версии это неверные значения, и когда я проверяю свою структуру, я вижу следующие два элемента (av_ctx->gop_size а также av_ctx->pix_fmt) имеет значения, которые я хочу.

Я проверил AVCodecContext декларация о avcodec.h и это (в комментариях выше объявления структуры) говорит:

Пожалуйста, используйте AVOptions (av_opt * / av_set / get * ()) для доступа к этим полям из пользовательских приложений.

Я думаю, что это может быть правильным способом получить эти элементы, но я не знаю, что это AVOptions, Я искал это, но не мог найти то, что это точно и как я могу использовать это.

2

Решение

int64_t cheight = 0;
av_opt_set_int(av_ctx,"coded_height", 400, 0);
av_opt_get_int(av_ctx,"coded_height", 0, &cheight);

Может быть, вы можете попробовать это.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]