Core Video框架详细解析(一)—— 基本概览

版本记录

版本号 时间
V1.0 2017.10.08

前言

Core Video使用基于流水线的API处理数字视频(包括单个帧的操作),并支持Metal和OpenGL。接下来这几篇我们就解析Core Video框架。

框架基本

首先看一下该框架的基本信息。

Core Video框架详细解析(一)—— 基本概览_第1张图片

Core Video为数字视频提供流水线模型。 它通过将进程分为不同步骤来简化处理视频的工作。 这使得开发人员更容易地访问和操纵单个帧,而不必担心在数据类型(QuickTime,OpenGL等)之间进行转化或显示同步问题。 不需要处理单个视频帧的应用程序不应该直接使用Core Video框架。

下面我们就看一下框架的基本结构。

Core Video框架详细解析(一)—— 基本概览_第2张图片

框架结构

下面我们就看一下该框架的详细结构。

1. Data Processing

  • CVBuffer
    • 一个定义如何与数据缓冲区进行交互的抽象基类。
  • CVImageBuffer
    • 用于管理不同类型图像数据的接口
  • CVPixelBuffer
    • 在主存储器中保存像素的图像缓冲区。
  • CVPixelBufferPool
    • 用于管理可循环使用的像素缓冲区对象的实用程序对象。
  • CVPixelFormatDescription
    • 一个API,用于定义自定义像素格式的函数和类型

2. Time Management

  • CVTime
    • 用于存储Core Video时间值的结构。
  • CVDisplayLink
    • 一个高优先级的线程,当给定的显示器需要每个帧时通知您的应用程序。

3. Metal

  • CVMetalTextureCache
    • 用于创建和管理Metal纹理对象的缓存。
  • CVMetalTexture
    • 一种基于纹理的图像缓冲区,提供用于Metal框架的源图像数据。

4. OpenGL

  • CVOpenGLTextureCache
    • 用于创建和管理OpenGL纹理对象的缓存。
  • CVOpenGLTexture
    • 基于纹理的图像缓冲区,用于将源图像数据提供给OpenGL
  • CVOpenGLBuffer
    • 用于将图像数据存储在视频存储器中的图像缓冲器。
  • CVOpenGLBufferPool
    • 用于管理一组可循环使用的OpenGL缓冲区对象的实用程序对象。

5. OpenGL ES

  • CVOpenGLESTextureCache
    • 用于创建和管理OpenGL ES纹理对象的缓存。
  • CVOpenGLESTexture
    • 基于纹理的图像缓冲区,用于将源图像数据提供给OpenGL ES。

6. Core Video Constants

  • Result Codes
    • 描述Core Video操作产生的结果代码。
  • Data Types
    • Core Video框架使用的通用数据类型。

7. Reference

  • Core Video Constants
  • Core Video Functions

后记

未完,待续~~~~

Core Video框架详细解析(一)—— 基本概览_第3张图片

你可能感兴趣的:(Core Video框架详细解析(一)—— 基本概览)