2 #include <msclr\auto_gcroot.h>
8 interface class INativeMediaRecieverSink;
9 using namespace System;
16 VN_PLAYER_DECODER_TYPE decoderType,
17 Int32 cacheSizeMegabytes,
18 VN_PLAYER_RTP_TRANSPORT rtpTransport,
19 VN_PLAYER_PIXEL_FORMAT pixelFormat,
23 void Play(
const char *url);
25 void Resume(
int direction);
26 void SetPlaybackSpeed(
float speed);
27 void GotoTime(time_t time);
28 bool StartRecording(
const char* filename, vn_kv_t** metadata);
32 VN_PLAYER_STREAM_STATE GetState();
33 static bool IsPlayingState(VN_PLAYER_STREAM_STATE state);
35 static void OnNewFrame(
const vn_player_frame_t*,
const vn_player_cache_boundaries_t*,
void *client_data);
36 static void OnBufferChanged(
const vn_player_cache_boundaries_t*,
void *client_data);
37 static void OnStateChanged(VN_PLAYER_STREAM_STATE,
const vn_player_result_status_t*,
void *client_data);
38 static void OnNewStream(
const vn_player_stream_info_t*,
void *client_data);
39 static void OnStreamRemoved(
const vn_player_stream_info_t*,
void *client_data);
40 static void OnRecordingStatusChanged(
const vn_player_recording_status_t*,
void *client_data);
41 static void OnMsgLog(
const char*,
void *client_data);
43 msclr::auto_gcroot<INativeMediaRecieverSink^> m_recieverSink;
44 struct vn_player_config_t m_playerConfig;
45 struct vn_player_context_t *m_playerContext;
47 VN_PLAYER_STREAM_STATE m_state;