Что обычно означает слово «контекст» в структурах? - PullRequest
2 голосов
/ 10 ноября 2010

Я пытаюсь создать приложение с использованием некоторых библиотек ffmpeg, и я заметил много структур данных со словом "Context" в них.

Вы можете увидеть некоторые здесь http://www.ffmpeg.org/doxygen/trunk/classes.html

Я не понимаю использования слова "контекст" в этом .. контексте.

Любые намеки относительно того, что это вообще означает?

Ответы [ 3 ]

2 голосов
/ 10 ноября 2010

В C структура обычно является средством, с помощью которого происходит создание объекта.

API будет иметь функцию типа new (), которая будет выделять одну из этих структур «контекста» и обеспечиватьуказатель на него.

Этот указатель затем обычно передается любым открытым функциям из этого API.

например,

struct btree_state
   *btree_state;

btree_new( &btree_state );
btree_new_element( btree_state, pointer_to_user_data );

Таким образом, мы можем иметь несколько экземпляров данногообъект.Мы выбираем, какой из них использовать указателем состояния, который мы передаем в функции API.

2 голосов
/ 01 октября 2011

Для FFMpeg, думайте, что «контекст» подобен экземпляру объекта (c ++, java «this»).Контекст создается при открытии сеанса форматирования в FFmepg, при открытии устройства ввода, кодека и устройства вывода

2 голосов
/ 10 ноября 2010

Глядя на предоставленную вами документацию, она кажется связанной с контекстом конкретного кодека, так что каждый SomethingContext инкапсулирует

  • структуры, необходимые для этого конкретного кодека (заголовки и т. Д.)
  • доступные операции при работе с этим кодеком (которые могут варьироваться в зависимости от сложности самого кодека)

что-то вроде "при работе с H264 .."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...