Rtspvideoplugin
__declspec(dllexport) void UpdateTexture(void* player, void* texturePtr, int width, int height) uint8_t* rgbData; ((FFmpegRTSPDecoder*)player)->readFrame(&rgbData, &width, &height); // Copy to Unity Texture2D native pointer memcpy(texturePtr, rgbData, width * height * 3);
Use OBS's obs_source_info structure:
public class RTSPVideoSource : MonoBehaviour [DllImport("RTSPPlugin")] private static extern System.IntPtr CreateRTSPPlayer(); [DllImport("RTSPPlugin")] private static extern bool OpenStream(System.IntPtr player, string url); private System.IntPtr player; private Texture2D videoTexture; rtspvideoplugin
struct obs_source_info rtsp_source = .id = "rtsp_video_source", .type = OBS_SOURCE_TYPE_INPUT, .output_flags = OBS_SOURCE_VIDEO, .get_name = rtsp_name, .create = rtsp_create, .destroy = rtsp_destroy, .video_render = rtsp_video_render, .get_properties = rtsp_properties, .update = rtsp_update ; static void rtsp_video_render(void* data, gs_effect_t* effect) struct rtsp_data rtsp = (struct rtsp_data )data; if (rtsp->texture) obs_source_draw(rtsp->texture, 0, 0, 0, 0, false); __declspec(dllexport) void UpdateTexture(void* player
