【问题标题】:What does the word "context" usually mean in structures?“上下文”一词在结构中通常是什么意思?
【发布时间】:2011-05-07 21:00:11
【问题描述】:
【问题讨论】:
标签:
c
data-structures
ffmpeg
scope
【解决方案1】:
查看您提供的文档,它似乎与特定编解码器的上下文有关,因此每个 SomethingContext 都封装了
- 特定编解码器所需的结构(标头等)
- 使用该编解码器时的可用操作(可能因编解码器本身的复杂性而异)
类似于“使用 H264 时..”
【解决方案2】:
在 C 中,结构通常是对象实例化的方式。
API 将有一个 new() 类型函数,它将分配这些“上下文”结构之一并提供指向它的指针。
然后,该指针通常会从该 API 传递给任何公共函数。
例如
struct btree_state
*btree_state;
btree_new( &btree_state );
btree_new_element( btree_state, pointer_to_user_data );
这样我们可以拥有给定对象的多个实例。我们通过传递给 API 函数的状态指针来选择使用哪一个。
【解决方案3】:
对于 FFMpeg,将“上下文”想象成一个对象实例(c++、java“this”)。在 FFmepg 中打开格式会话、打开输入设备、编解码器和输出设备时会创建上下文