//拉流拉到数据 private void Instance_OnVideoFrameEvent(int userId, int index, OeipVideoFrame videoFrame) { if (userId != this.userId || this.index != index) { return; } LivePipe.RunLivePipe(ref videoFrame); }
public void RunLivePipe(ref OeipVideoFrame videoFrame) { if (VideoFormat.width != videoFrame.width || VideoFormat.height != videoFrame.height || yuvfmt != videoFrame.fmt) { VideoFormat.fps = 30; VideoFormat.width = (int)videoFrame.width; VideoFormat.height = (int)videoFrame.height; yuvfmt = videoFrame.fmt; VideoFormat.videoType = OeipVideoType.OEIP_VIDEO_RGBA32; ResetPipe(); } OeipHelper.getVideoFrameData(yuvData, ref videoFrame); Pipe.UpdateInput(InputIndex, yuvData); Pipe.RunPipe(); }
public bool PushVideoFrame(int index, IntPtr data, int width, int height, OeipYUVFMT fmt) { lock (obj) { if (!bLogin) { return(false); } ref OeipVideoFrame videoFrame = ref mainVideoFrame; if (index == 1) { videoFrame = ref auxVideoFrame; } OeipHelper.setVideoFrame(data, width, height, fmt, ref videoFrame); return(OeipLiveHelper.pushVideoFrame(index, ref videoFrame)); }
private void MediaPlay_OnVideoFrameEvent(OeipVideoFrame videoFrame) { mediaPipe.RunLivePipe(ref videoFrame); }
public static extern bool pushVideoFrame(int index, ref OeipVideoFrame videoFrame);
private void Instance_OnVideoFrameEvent(int userId, int index, OeipVideoFrame videoFrame) { this.liveControl1.LivePipe.RunLivePipe(ref videoFrame); }