// Free the buffers returned by capture for audio
 public static void recv_free_audio_v3(IntPtr p_instance, ref audio_frame_v3_t p_audio_data)
 {
     if (IntPtr.Size == 8)
     {
         UnsafeNativeMethods.recv_free_audio_v3_64(p_instance, ref p_audio_data);
     }
     else
     {
         UnsafeNativeMethods.recv_free_audio_v3_32(p_instance, ref p_audio_data);
     }
 }
 internal static extern void recv_free_audio_v3_32(IntPtr p_instance, ref audio_frame_v3_t p_audio_data);
 internal static extern frame_type_e recv_capture_v3_32(IntPtr p_instance, ref video_frame_v2_t p_video_data, ref audio_frame_v3_t p_audio_data, ref metadata_frame_t p_metadata, UInt32 timeout_in_ms);
 // This will allow you to receive video, audio and metadata frames.
 // Any of the buffers can be NULL, in which case data of that type
 // will not be captured in this call. This call can be called simultaneously
 // on separate threads, so it is entirely possible to receive audio, video, metadata
 // all on separate threads. This function will return NDIlib_frame_type_none if no
 // data is received within the specified timeout and NDIlib_frame_type_error if the connection is lost.
 // Buffers captured with this must be freed with the appropriate free function below.
 public static frame_type_e recv_capture_v3(IntPtr p_instance, ref video_frame_v2_t p_video_data, ref audio_frame_v3_t p_audio_data, ref metadata_frame_t p_metadata, UInt32 timeout_in_ms)
 {
     if (IntPtr.Size == 8)
     {
         return(UnsafeNativeMethods.recv_capture_v3_64(p_instance, ref p_video_data, ref p_audio_data, ref p_metadata, timeout_in_ms));
     }
     else
     {
         return(UnsafeNativeMethods.recv_capture_v3_32(p_instance, ref p_video_data, ref p_audio_data, ref p_metadata, timeout_in_ms));
     }
 }
Example #5
0
 internal static extern void send_send_audio_v3_32(IntPtr p_instance, ref audio_frame_v3_t p_audio_data);