#import <NvsVideoFrameReceiver.h>
◆ didVideoFrameReceived:pixelBuffer:videoSize:timelinePos:
- (void) didVideoFrameReceived: |
|
(NvsVideoFrameReceiver *) |
receiver |
pixelBuffer: |
|
(CVPixelBufferRef) |
pixelBuffer |
videoSize: |
|
(CGSize) |
videoSize |
timelinePos: |
|
(int64_t) |
timelinePos |
|
|
| |
|
optional |
通知接收者一个视频帧已经渲染完成
注意:这个回调函数是在引擎的某个线程调用的,并非主线程!
- 参数
-
receiver | 该回调接口对应的NvsVideoFrameReceiver对象 |
pixelBuffer | 视频帧的CVPixelBuffer对象 |
videoSize | 视频帧的尺寸,单位为像素 |
timelinePos | 视频帧的时间戳,单位为微秒 |
◆ didVideoFrameReceived:videoFrameTextureId:videoSize:timelinePos:
- (BOOL) didVideoFrameReceived: |
|
(NvsVideoFrameReceiver *) |
receiver |
videoFrameTextureId: |
|
(unsigned int) |
videoFrameTextureId |
videoSize: |
|
(CGSize) |
videoSize |
timelinePos: |
|
(int64_t) |
timelinePos |
|
|
| |
|
optional |
通知接收者一个视频帧已经渲染完成 如果接收者想要获取该视频帧的使用权则需要返回YES,否则并不获取视频帧的使用权。获取使用权后则 可以使用该视频帧的OpenGL ES纹理ID在自己的EAGLContext之中进行绘制,当然前提是该 EAGLContext必须与美摄引擎的EAGLContext处于同一个EAGLSharegroup中。接收者在确保不再使用 这个纹理之后一定要调用reclaimVideoFrame让美摄SDK回收这个纹理,否则会出现泄漏!另外,如果 在接收者已经使用了该纹理进行了绘制,那么调用reclaimVideoFrame之前请调用glFlush()来确保 对纹理使用的同步。 注意:这个回调函数是在引擎的某个线程调用的,并非主线程!
- 参数
-
receiver | 该回调接口对应的NvsVideoFrameReceiver对象 |
videoFrameTextureId | 视频帧的OpenGL ES纹理ID |
videoSize | 视频帧的尺寸,单位为像素 |
timelinePos | 视频帧的时间戳,单位为微秒 |
- 返回
- 返回BOOL值,为YES表示接收者获取了该视频帧的使用权,如果为NO表示接收者未获取该视频帧的使用权
该协议的文档由以下文件生成: