【问题标题】:What does the word "context" usually mean in structures?“上下文”一词在结构中通常是什么意思?
【发布时间】:2011-05-07 21:00:11
【问题描述】:

我正在尝试使用 ffmpeg 的一些库构建一个应用程序,我注意到其中有许多带有“上下文”一词的数据结构。

你可以在这里看到一些http://www.ffmpeg.org/doxygen/trunk/classes.html

我不明白“上下文”这个词在这个..上下文中的用法。

关于它的一般含义有什么提示吗?

【问题讨论】:

  • 翻译成“状态”,也许有帮助。

标签: 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 中打开格式会话、打开输入设备、编解码器和输出设备时会创建上下文

      【讨论】:

        猜你喜欢
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-03
        • 2019-02-23
        • 2020-07-17
        • 1970-01-01
        相关资源
        最近更新 更多