#ifndef _rtmp_netconnection_h_ #define _rtmp_netconnection_h_ #include #include enum rtmp_audio_codec_t { SUPPORT_SND_NONE = 0x0001, // Raw sound, no compression SUPPORT_SND_ADPCM = 0x0002, // ADPCM compression SUPPORT_SND_MP3 = 0x0004, // mp3 compression SUPPORT_SND_INTEL = 0x0008, // Not used SUPPORT_SND_UNUSED = 0x0010, // Not used SUPPORT_SND_NELLY8 = 0x0020, // NellyMoser at 8-kHz compression SUPPORT_SND_NELLY = 0x0040, // NellyMoser compression (5, 11, 22, and 44 kHz) SUPPORT_SND_G711A = 0x0080, // G711A sound compression (Flash Media Server only) SUPPORT_SND_G711U = 0x0100, // G711U sound compression (Flash Media Server only) SUPPORT_SND_NELLY16 = 0x0200, // NellyMouser at 16-kHz compression SUPPORT_SND_AAC = 0x0400, // Advanced audio coding SUPPORT_SND_SPEEX = 0x0800, // Speex Audio SUPPORT_SND_ALL = 0x0FFF, // All RTMP-supported audio codecs }; enum rtmp_video_codec_t { SUPPORT_VID_UNUSED = 0x0001, // Obsolete value SUPPORT_VID_JPEG = 0x0002, // Obsolete value SUPPORT_VID_SORENSON = 0x0004, // Sorenson Flash video SUPPORT_VID_HOMEBREW = 0x0008, // V1 screen sharing SUPPORT_VID_VP6 = 0x0010, // On2 video (Flash 8+) SUPPORT_VID_VP6ALPHA = 0x0020, // On2 video with alpha channel SUPPORT_VID_HOMEBREWV = 0x0040, // Screen sharing version 2 (Flash 8+) SUPPORT_VID_H264 = 0x0080, // H264 video SUPPORT_VID_ALL = 0x00FF, // All RTMP-supported video codecs }; enum rtmp_video_function_t { SUPPORT_VID_CLIENT_SEEK = 1, // Indicates that the client can perform frame-accurate seeks. }; enum rtmp_encoding_amf_t { RTMP_ENCODING_AMF_0 = 0, RTMP_ENCODING_AMF_3 = 3, }; struct rtmp_connect_t { char app[128]; // Server application name, e.g.: testapp char flashver[32]; // Flash Player version, FMSc/1.0 char swfUrl[256]; // URL of the source SWF file char tcUrl[256]; // URL of the Server, rtmp://host:1935/testapp/instance1 uint8_t fpad; // boolean: True if proxy is being used. double capabilities; // double default: 15 double audioCodecs; // double default: 4071 double videoCodecs; // double default: 252 double videoFunction; // double default: 1 double encoding; char pageUrl[256]; // http://host/sample.html }; uint8_t* rtmp_netconnection_connect(uint8_t* out, size_t bytes, double transactionId, const struct rtmp_connect_t* connect); uint8_t* rtmp_netconnection_create_stream(uint8_t* out, size_t bytes, double transactionId); uint8_t* rtmp_netconnection_get_stream_length(uint8_t* out, size_t bytes, double transactionId, const char* stream_name); uint8_t* rtmp_netconnection_connect_reply(uint8_t* out, size_t bytes, double transactionId, const char* fmsver, double capabilities, const char* code, const char* level, const char* description, double encoding); uint8_t* rtmp_netconnection_create_stream_reply(uint8_t* out, size_t bytes, double transactionId, double stream_id); uint8_t* rtmp_netconnection_get_stream_length_reply(uint8_t* out, size_t bytes, double transactionId, double duration); uint8_t* rtmp_netconnection_error(uint8_t* out, size_t bytes, double transactionId, const char* code, const char* level, const char* description); #endif /* !_rtmp_netconnection_h_ */