rtmp_amf_flv.c File Reference

Include dependency graph for rtmp_amf_flv.c:


Functions

static rtmp_packet_trtmp_new_packet (rtmp_control_thread_t *p_thread, uint8_t stream_index, uint32_t timestamp, uint8_t content_type, uint32_t src_dst, rtmp_body_t *body)
static block_trtmp_new_block (rtmp_control_thread_t *p_thread, uint8_t *buffer, int32_t length_buffer)
static rtmp_packet_trtmp_encode_onBWDone (rtmp_control_thread_t *p_thread, double number)
static rtmp_packet_trtmp_encode_server_bw (rtmp_control_thread_t *p_thread, uint32_t number)
static rtmp_packet_trtmp_encode_NetConnection_connect_result (rtmp_control_thread_t *p_thread, double number)
static rtmp_packet_trtmp_encode_createStream_result (rtmp_control_thread_t *p_thread, double stream_client, double stream_server)
static rtmp_packet_trtmp_encode_ping_reset_stream (rtmp_control_thread_t *p_thread)
static rtmp_packet_trtmp_encode_ping_clear_stream (rtmp_control_thread_t *p_thread, uint32_t src_dst)
static rtmp_packet_trtmp_encode_NetStream_play_reset_onStatus (rtmp_control_thread_t *p_thread, char *psz_media)
static rtmp_packet_trtmp_encode_NetStream_play_start_onStatus (rtmp_control_thread_t *p_thread, char *psz_media)
static uint8_t rtmp_encode_header_size (vlc_object_t *p_this, uint8_t header_size)
static uint8_t rtmp_decode_header_size (vlc_object_t *p_this, uint8_t header_size)
static uint8_t rtmp_get_stream_index (uint8_t content_type)
static void rtmp_body_append (rtmp_body_t *rtmp_body, uint8_t *buffer, uint32_t length)
static uint8_t * rtmp_encode_ping (uint16_t type, uint32_t src_dst, uint32_t third_arg, uint32_t fourth_arg)
static uint8_t * amf_encode_element (uint8_t element, const void *value)
static uint8_t * amf_encode_object_variable (const char *key, uint8_t element, const void *value)
static double amf_decode_number (uint8_t **buffer)
static int amf_decode_boolean (uint8_t **buffer)
static char * amf_decode_string (uint8_t **buffer)
static char * amf_decode_object (uint8_t **buffer)
static void flv_rebuild (rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet)
static void flv_get_metadata_audio (rtmp_control_thread_t *p_thread, rtmp_packet_t *packet_audio, uint8_t *stereo, uint8_t *audiosamplesize, uint32_t *audiosamplerate, uint8_t *audiocodecid)
static void flv_get_metadata_video (rtmp_control_thread_t *p_thread, rtmp_packet_t *packet_video, uint8_t *videocodecid, uint8_t *frametype)
static rtmp_packet_tflv_build_onMetaData (access_t *p_access, uint64_t duration, uint8_t stereo, uint8_t audiosamplesize, uint32_t audiosamplerate, uint8_t audiocodecid, uint8_t videocodecid)
int rtmp_handshake_passive (vlc_object_t *p_this, int fd)
int rtmp_handshake_active (vlc_object_t *p_this, int fd)
static int write_rtmp (rtmp_control_thread_t *p_thread, uint8_t *buf, rtmp_packet_t *pkt, const char *errmsg)
int rtmp_connect_active (rtmp_control_thread_t *p_thread)
int rtmp_connect_passive (rtmp_control_thread_t *p_thread)
static void rtmp_packet_free (rtmp_packet_t *pkt)
rtmp_packet_trtmp_build_bytes_read (rtmp_control_thread_t *p_thread, uint32_t reply)
rtmp_packet_trtmp_build_publish_start (rtmp_control_thread_t *p_thread)
rtmp_packet_trtmp_build_flv_over_rtmp (rtmp_control_thread_t *p_thread, block_t *p_buffer)
rtmp_packet_trtmp_read_net_packet (rtmp_control_thread_t *p_thread)
static void rtmp_handler_null (rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet)
static void rtmp_handler_chunk_size (rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet)
static void rtmp_handler_audio_data (rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet)
static void rtmp_handler_video_data (rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet)
static void rtmp_handler_notify (rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet)
static void rtmp_handler_invoke (rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet)
uint8_t * rtmp_encode_packet (rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet)
rtmp_body_trtmp_body_new (int length_buffer)
void rtmp_body_reset (rtmp_body_t *rtmp_body)
block_tflv_get_metadata (access_t *p_access)
block_tflv_insert_header (access_t *p_access, block_t *first_packet)
void rtmp_init_handler (rtmp_handler_t *rtmp_handler)

Variables

const uint8_t RTMP_HEADER_SIZE_MASK = 0xC0
const uint8_t RTMP_HEADER_SIZE_12 = 0x00
const uint8_t RTMP_HEADER_SIZE_8 = 0x40
const uint8_t RTMP_HEADER_SIZE_4 = 0x80
const uint8_t RTMP_HEADER_SIZE_1 = 0xC0
const uint8_t RTMP_HEADER_STREAM_MAX = 64
const uint8_t RTMP_HEADER_STREAM_INDEX_MASK = 0x3F
const uint8_t RTMP_HANDSHAKE = 0x03
const uint16_t RTMP_HANDSHAKE_BODY_SIZE = 1536
const uint8_t RTMP_CONTENT_TYPE_CHUNK_SIZE = 0x01
const uint8_t RTMP_CONTENT_TYPE_UNKNOWN_02 = 0x02
const uint8_t RTMP_CONTENT_TYPE_BYTES_READ = 0x03
const uint8_t RTMP_CONTENT_TYPE_PING = 0x04
const uint8_t RTMP_CONTENT_TYPE_SERVER_BW = 0x05
const uint8_t RTMP_CONTENT_TYPE_CLIENT_BW = 0x06
const uint8_t RTMP_CONTENT_TYPE_UNKNOWN_07 = 0x07
const uint8_t RTMP_CONTENT_TYPE_AUDIO_DATA = 0x08
const uint8_t RTMP_CONTENT_TYPE_VIDEO_DATA = 0x09
const uint8_t RTMP_CONTENT_TYPE_UNKNOWN_0A_0E = 0x0A
const uint8_t RTMP_CONTENT_TYPE_FLEX_STREAM = 0x0F
const uint8_t RTMP_CONTENT_TYPE_FLEX_SHARED_OBJECT = 0x10
const uint8_t RTMP_CONTENT_TYPE_MESSAGE = 0x11
const uint8_t RTMP_CONTENT_TYPE_NOTIFY = 0x12
const uint8_t RTMP_CONTENT_TYPE_SHARED_OBJECT = 0x13
const uint8_t RTMP_CONTENT_TYPE_INVOKE = 0x14
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_CONNECT = 0x01
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_DISCONNECT = 0x02
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_SET_ATTRIBUTE = 0x03
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_UPDATE_DATA = 0x04
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_UPDATE_ATTRIBUTE = 0x05
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_SEND_MESSAGE = 0x06
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_STATUS = 0x07
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_CLEAR_DATA = 0x08
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_DELETE_DATA = 0x09
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_DELETE_ATTRIBUTE = 0x0A
const uint8_t RTMP_SHARED_OBJECT_DATATYPE_INITIAL_DATA = 0x0B
const uint16_t RTMP_PING_CLEAR_STREAM = 0x0000
const uint16_t RTMP_PING_CLEAR_PLAYING_BUFFER = 0x0001
const uint16_t RTMP_PING_BUFFER_TIME_CLIENT = 0x0003
const uint16_t RTMP_PING_RESET_STREAM = 0x0004
const uint16_t RTMP_PING_CLIENT_FROM_SERVER = 0x0006
const uint16_t RTMP_PING_PONG_FROM_CLIENT = 0x0007
const uint8_t RTMP_PING_SIZE_CLEAR_STREAM = 6
const uint8_t RTMP_PING_SIZE_CLEAR_PLAYING_BUFFER = 6
const uint8_t RTMP_PING_SIZE_BUFFER_TIME_CLIENT = 10
const uint8_t RTMP_PING_SIZE_RESET_STREAM = 6
const uint8_t RTMP_DEFAULT_STREAM_INDEX_CONTROL = 0x02
const uint8_t RTMP_DEFAULT_STREAM_INDEX_INVOKE = 0x03
const uint8_t RTMP_DEFAULT_STREAM_INDEX_NOTIFY = 0x04
const uint8_t RTMP_DEFAULT_STREAM_INDEX_VIDEO_DATA = 0x05
const uint8_t RTMP_DEFAULT_STREAM_INDEX_AUDIO_DATA = 0x06
const uint32_t RTMP_DEFAULT_CHUNK_SIZE = 128
const double RTMP_DEFAULT_STREAM_CLIENT_ID = 1.0
const double RTMP_DEFAULT_STREAM_SERVER_ID = 1.0
const uint16_t MAX_EMPTY_BLOCKS = 200
const uint16_t RTMP_BODY_SIZE_ALLOC = 1024
const uint32_t RTMP_TIME_CLIENT_BUFFER = 2000
const uint32_t RTMP_SERVER_BW = 0x00000200
const uint32_t RTMP_SRC_DST_CONNECT_OBJECT = 0x00000000
const uint32_t RTMP_SRC_DST_CONNECT_OBJECT2 = 0x00000001
const uint32_t RTMP_SRC_DST_DEFAULT = 0x01000000
const uint64_t RTMP_AUDIOCODECS = 0x4083380000000000
const uint64_t RTMP_VIDEOCODECS = 0x405f000000000000
const uint64_t RTMP_VIDEOFUNCTION = 0x3ff0000000000000
const uint8_t AMF_BOOLEAN_FALSE = 0x00
const uint8_t AMF_BOOLEAN_TRUE = 0x01
const uint8_t AMF_DATATYPE_NUMBER = 0x00
const uint8_t AMF_DATATYPE_BOOLEAN = 0x01
const uint8_t AMF_DATATYPE_STRING = 0x02
const uint8_t AMF_DATATYPE_OBJECT = 0x03
const uint8_t AMF_DATATYPE_MOVIE_CLIP = 0x04
const uint8_t AMF_DATATYPE_NULL = 0x05
const uint8_t AMF_DATATYPE_UNDEFINED = 0x06
const uint8_t AMF_DATATYPE_REFERENCE = 0x07
const uint8_t AMF_DATATYPE_MIXED_ARRAY = 0x08
const uint8_t AMF_DATATYPE_END_OF_OBJECT = 0x09
const uint8_t AMF_DATATYPE_ARRAY = 0x0A
const uint8_t AMF_DATATYPE_DATE = 0x0B
const uint8_t AMF_DATATYPE_LONG_STRING = 0x0C
const uint8_t AMF_DATATYPE_UNSUPPORTED = 0x0D
const uint8_t AMF_DATATYPE_RECORDSET = 0x0E
const uint8_t AMF_DATATYPE_XML = 0x0F
const uint8_t AMF_DATATYPE_TYPED_OBJECT = 0x10
const uint8_t AMF_DATATYPE_AMF3_DATA = 0x11
const uint8_t AMF_DATATYPE_SIZE_NUMBER = 9
const uint8_t AMF_DATATYPE_SIZE_BOOLEAN = 2
const uint8_t AMF_DATATYPE_SIZE_STRING = 3
const uint8_t AMF_DATATYPE_SIZE_OBJECT = 1
const uint8_t AMF_DATATYPE_SIZE_NULL = 1
const uint8_t AMF_DATATYPE_SIZE_OBJECT_VARIABLE = 2
const uint8_t AMF_DATATYPE_SIZE_MIXED_ARRAY = 5
const uint8_t AMF_DATATYPE_SIZE_END_OF_OBJECT = 3
const uint64_t AMF_CALL_NETCONNECTION_CONNECT = 0x3FF0000000000000
const uint64_t AMF_CALL_NETCONNECTION_CONNECT_AUDIOCODECS = 0x4083380000000000
const uint64_t AMF_CALL_NETCONNECTION_CONNECT_VIDEOCODECS = 0x405F000000000000
const uint64_t AMF_CALL_NETCONNECTION_CONNECT_VIDEOFUNCTION = 0x3FF0000000000000
const uint64_t AMF_CALL_NETCONNECTION_CONNECT_OBJECTENCODING = 0x0
const double AMF_CALL_STREAM_CLIENT_NUMBER = 3.0
const double AMF_CALL_ONBWDONE = 2.0
const uint64_t AMF_CALL_NETSTREAM_PLAY = 0x0
const uint8_t FLV_HEADER_SIGNATURE [3] = { 0x46, 0x4C, 0x56 }
const uint8_t FLV_HEADER_VERSION = 0x01
const uint8_t FLV_HEADER_AUDIO = 0x04
const uint8_t FLV_HEADER_VIDEO = 0x01
const uint32_t FLV_HEADER_SIZE = 0x00000009
const uint32_t FLV_TAG_FIRST_PREVIOUS_TAG_SIZE = 0x00000000
const uint8_t FLV_TAG_PREVIOUS_TAG_SIZE = 4
const uint8_t FLV_TAG_SIZE = 11
const uint8_t FLV_AUDIO_STEREO_MASK = 0x01
const uint8_t FLV_AUDIO_STEREO_MONO = 0x00
const uint8_t FLV_AUDIO_STEREO_STEREO = 0x01
const uint8_t FLV_AUDIO_SIZE_MASK = 0x02
const uint8_t FLV_AUDIO_SIZE_8_BIT = 0x00
const uint8_t FLV_AUDIO_SIZE_16_BIT = 0x02
const uint8_t FLV_AUDIO_RATE_MASK = 0x0C
const uint8_t FLV_AUDIO_RATE_5_5_KHZ = 0x00
const uint8_t FLV_AUDIO_RATE_11_KHZ = 0x04
const uint8_t FLV_AUDIO_RATE_22_KHZ = 0x08
const uint8_t FLV_AUDIO_RATE_44_KHZ = 0x0C
const uint8_t FLV_AUDIO_CODEC_ID_MASK = 0xF0
const uint8_t FLV_AUDIO_CODEC_ID_UNCOMPRESSED = 0x00
const uint8_t FLV_AUDIO_CODEC_ID_ADPCM = 0x10
const uint8_t FLV_AUDIO_CODEC_ID_MP3 = 0x20
const uint8_t FLV_AUDIO_CODEC_ID_NELLYMOSER_8KHZ_MONO = 0x50
const uint8_t FLV_AUDIO_CODEC_ID_NELLYMOSER = 0x60
const uint8_t FLV_VIDEO_CODEC_ID_MASK = 0x0F
const uint8_t FLV_VIDEO_CODEC_ID_SORENSEN_H263 = 0x02
const uint8_t FLV_VIDEO_CODEC_ID_SCREEN_VIDEO = 0x03
const uint8_t FLV_VIDEO_CODEC_ID_ON2_VP6 = 0x04
const uint8_t FLV_VIDEO_CODEC_ID_ON2_VP6_ALPHA = 0x05
const uint8_t FLV_VIDEO_CODEC_ID_SCREEN_VIDEO_2 = 0x06
const uint8_t FLV_VIDEO_FRAME_TYPE_MASK = 0xF0
const uint8_t FLV_VIDEO_FRAME_TYPE_KEYFRAME = 0x10
const uint8_t FLV_VIDEO_FRAME_TYPE_INTER_FRAME = 0x20
const uint8_t FLV_VIDEO_FRAME_TYPE_DISPOSABLE_INTER_FRAME = 0x30

Function Documentation

static int amf_decode_boolean ( uint8_t **  buffer  )  [static]

Referenced by rtmp_handler_invoke().

static double amf_decode_number ( uint8_t **  buffer  )  [static]

References ntoh64().

Referenced by rtmp_handler_invoke().

static char * amf_decode_object ( uint8_t **  buffer  )  [static]

References amf_decode_string().

Referenced by rtmp_handler_invoke().

static char * amf_decode_string ( uint8_t **  buffer  )  [static]

References i, and ntoh16.

Referenced by amf_decode_object(), and rtmp_handler_invoke().

static uint8_t * amf_encode_element ( uint8_t  element,
const void *  value 
) [static]

static uint8_t * amf_encode_object_variable ( const char *  key,
uint8_t  element,
const void *  value 
) [static]

static rtmp_packet_t * flv_build_onMetaData ( access_t p_access,
uint64_t  duration,
uint8_t  stereo,
uint8_t  audiosamplesize,
uint32_t  audiosamplerate,
uint8_t  audiocodecid,
uint8_t  videocodecid 
) [static]

block_t* flv_get_metadata ( access_t p_access  ) 

static void flv_get_metadata_audio ( rtmp_control_thread_t p_thread,
rtmp_packet_t packet_audio,
uint8_t *  stereo,
uint8_t *  audiosamplesize,
uint32_t *  audiosamplerate,
uint8_t *  audiocodecid 
) [static]

static void flv_get_metadata_video ( rtmp_control_thread_t p_thread,
rtmp_packet_t packet_video,
uint8_t *  videocodecid,
uint8_t *  frametype 
) [static]

block_t* flv_insert_header ( access_t p_access,
block_t first_packet 
)

static void flv_rebuild ( rtmp_control_thread_t p_thread,
rtmp_packet_t rtmp_packet 
) [static]

static void rtmp_body_append ( rtmp_body_t rtmp_body,
uint8_t *  buffer,
uint32_t  length 
) [static]

rtmp_body_t* rtmp_body_new ( int  length_buffer  ) 

void rtmp_body_reset ( rtmp_body_t rtmp_body  ) 

rtmp_packet_t* rtmp_build_bytes_read ( rtmp_control_thread_t p_thread,
uint32_t  reply 
)

rtmp_packet_t* rtmp_build_flv_over_rtmp ( rtmp_control_thread_t p_thread,
block_t p_buffer 
)

rtmp_packet_t* rtmp_build_publish_start ( rtmp_control_thread_t p_thread  ) 

int rtmp_connect_active ( rtmp_control_thread_t p_thread  ) 

References AMF_BOOLEAN_FALSE, AMF_CALL_NETCONNECTION_CONNECT, AMF_CALL_NETCONNECTION_CONNECT_AUDIOCODECS, AMF_CALL_NETCONNECTION_CONNECT_OBJECTENCODING, AMF_CALL_NETCONNECTION_CONNECT_VIDEOCODECS, AMF_CALL_NETCONNECTION_CONNECT_VIDEOFUNCTION, AMF_CALL_NETSTREAM_PLAY, AMF_CALL_STREAM_CLIENT_NUMBER, AMF_DATATYPE_BOOLEAN, AMF_DATATYPE_END_OF_OBJECT, AMF_DATATYPE_NULL, AMF_DATATYPE_NUMBER, AMF_DATATYPE_OBJECT, AMF_DATATYPE_SIZE_BOOLEAN, AMF_DATATYPE_SIZE_END_OF_OBJECT, AMF_DATATYPE_SIZE_NULL, AMF_DATATYPE_SIZE_NUMBER, AMF_DATATYPE_SIZE_OBJECT, AMF_DATATYPE_SIZE_OBJECT_VARIABLE, AMF_DATATYPE_SIZE_STRING, AMF_DATATYPE_STRING, amf_encode_element(), amf_encode_object_variable(), asprintf(), rtmp_body_t::body, rtmp_control_thread_t::lock, msg_Dbg, msg_Err, rtmp_control_thread_t::psz_application, vlc_url_t::psz_buffer, rtmp_control_thread_t::psz_media, rtmp_control_thread_t::psz_page_url, rtmp_control_thread_t::psz_swf_url, rtmp_control_thread_t::result_connect, rtmp_control_thread_t::result_play, rtmp_body_append(), rtmp_body_new(), RTMP_CONTENT_TYPE_INVOKE, RTMP_CONTENT_TYPE_PING, RTMP_DEFAULT_STREAM_CLIENT_ID, RTMP_DEFAULT_STREAM_INDEX_CONTROL, RTMP_DEFAULT_STREAM_INDEX_INVOKE, rtmp_encode_packet(), rtmp_encode_ping(), rtmp_new_packet(), RTMP_PING_BUFFER_TIME_CLIENT, RTMP_PING_SIZE_BUFFER_TIME_CLIENT, RTMP_SRC_DST_CONNECT_OBJECT, RTMP_SRC_DST_CONNECT_OBJECT2, RTMP_SRC_DST_DEFAULT, RTMP_TIME_CLIENT_BUFFER, rtmp_control_thread_t::stream_client_id, rtmp_control_thread_t::url, vlc_cond_wait(), vlc_mutex_lock(), vlc_mutex_unlock(), rtmp_control_thread_t::wait, and write_rtmp().

int rtmp_connect_passive ( rtmp_control_thread_t p_thread  ) 

static uint8_t rtmp_decode_header_size ( vlc_object_t p_this,
uint8_t  header_size 
) [static]

static rtmp_packet_t * rtmp_encode_createStream_result ( rtmp_control_thread_t p_thread,
double  stream_client,
double  stream_server 
) [static]

static uint8_t rtmp_encode_header_size ( vlc_object_t p_this,
uint8_t  header_size 
) [static]

static rtmp_packet_t * rtmp_encode_NetConnection_connect_result ( rtmp_control_thread_t p_thread,
double  number 
) [static]

static rtmp_packet_t * rtmp_encode_NetStream_play_reset_onStatus ( rtmp_control_thread_t p_thread,
char *  psz_media 
) [static]

static rtmp_packet_t * rtmp_encode_NetStream_play_start_onStatus ( rtmp_control_thread_t p_thread,
char *  psz_media 
) [static]

static rtmp_packet_t * rtmp_encode_onBWDone ( rtmp_control_thread_t p_thread,
double  number 
) [static]

uint8_t* rtmp_encode_packet ( rtmp_control_thread_t p_thread,
rtmp_packet_t rtmp_packet 
)

static uint8_t * rtmp_encode_ping ( uint16_t  type,
uint32_t  src_dst,
uint32_t  third_arg,
uint32_t  fourth_arg 
) [static]

static rtmp_packet_t * rtmp_encode_ping_clear_stream ( rtmp_control_thread_t p_thread,
uint32_t  src_dst 
) [static]

static rtmp_packet_t * rtmp_encode_ping_reset_stream ( rtmp_control_thread_t p_thread  )  [static]

static rtmp_packet_t * rtmp_encode_server_bw ( rtmp_control_thread_t p_thread,
uint32_t  number 
) [static]

static uint8_t rtmp_get_stream_index ( uint8_t  content_type  )  [static]

static void rtmp_handler_audio_data ( rtmp_control_thread_t p_thread,
rtmp_packet_t rtmp_packet 
) [static]

static void rtmp_handler_chunk_size ( rtmp_control_thread_t p_thread,
rtmp_packet_t rtmp_packet 
) [static]

static void rtmp_handler_invoke ( rtmp_control_thread_t p_thread,
rtmp_packet_t rtmp_packet 
) [static]

static void rtmp_handler_notify ( rtmp_control_thread_t p_thread,
rtmp_packet_t rtmp_packet 
) [static]

static void rtmp_handler_null ( rtmp_control_thread_t p_thread,
rtmp_packet_t rtmp_packet 
) [static]

References rtmp_packet_free(), and VLC_UNUSED.

Referenced by rtmp_init_handler().

static void rtmp_handler_video_data ( rtmp_control_thread_t p_thread,
rtmp_packet_t rtmp_packet 
) [static]

int rtmp_handshake_active ( vlc_object_t p_this,
int  fd 
)

int rtmp_handshake_passive ( vlc_object_t p_this,
int  fd 
)

void rtmp_init_handler ( rtmp_handler_t rtmp_handler  ) 

static block_t * rtmp_new_block ( rtmp_control_thread_t p_thread,
uint8_t *  buffer,
int32_t  length_buffer 
) [static]

static rtmp_packet_t * rtmp_new_packet ( rtmp_control_thread_t p_thread,
uint8_t  stream_index,
uint32_t  timestamp,
uint8_t  content_type,
uint32_t  src_dst,
rtmp_body_t body 
) [static]

static void rtmp_packet_free ( rtmp_packet_t pkt  )  [static]

rtmp_packet_t* rtmp_read_net_packet ( rtmp_control_thread_t p_thread  ) 

static int write_rtmp ( rtmp_control_thread_t p_thread,
uint8_t *  buf,
rtmp_packet_t pkt,
const char *  errmsg 
) [static]


Variable Documentation

const uint8_t AMF_BOOLEAN_FALSE = 0x00

Referenced by rtmp_connect_active().

const uint8_t AMF_BOOLEAN_TRUE = 0x01

const uint64_t AMF_CALL_NETCONNECTION_CONNECT = 0x3FF0000000000000

Referenced by rtmp_connect_active().

const uint64_t AMF_CALL_NETCONNECTION_CONNECT_AUDIOCODECS = 0x4083380000000000

Referenced by rtmp_connect_active().

Referenced by rtmp_connect_active().

const uint64_t AMF_CALL_NETCONNECTION_CONNECT_VIDEOCODECS = 0x405F000000000000

Referenced by rtmp_connect_active().

const uint64_t AMF_CALL_NETCONNECTION_CONNECT_VIDEOFUNCTION = 0x3FF0000000000000

Referenced by rtmp_connect_active().

const uint64_t AMF_CALL_NETSTREAM_PLAY = 0x0

Referenced by rtmp_connect_active().

const double AMF_CALL_ONBWDONE = 2.0

Referenced by rtmp_handler_invoke().

const double AMF_CALL_STREAM_CLIENT_NUMBER = 3.0

Referenced by rtmp_connect_active().

const uint8_t AMF_DATATYPE_AMF3_DATA = 0x11

const uint8_t AMF_DATATYPE_ARRAY = 0x0A

const uint8_t AMF_DATATYPE_BOOLEAN = 0x01

const uint8_t AMF_DATATYPE_DATE = 0x0B

const uint8_t AMF_DATATYPE_END_OF_OBJECT = 0x09

const uint8_t AMF_DATATYPE_LONG_STRING = 0x0C

const uint8_t AMF_DATATYPE_MIXED_ARRAY = 0x08

const uint8_t AMF_DATATYPE_MOVIE_CLIP = 0x04

const uint8_t AMF_DATATYPE_NULL = 0x05

const uint8_t AMF_DATATYPE_NUMBER = 0x00

const uint8_t AMF_DATATYPE_OBJECT = 0x03

const uint8_t AMF_DATATYPE_RECORDSET = 0x0E

const uint8_t AMF_DATATYPE_REFERENCE = 0x07

const uint8_t AMF_DATATYPE_SIZE_BOOLEAN = 2

const uint8_t AMF_DATATYPE_SIZE_MIXED_ARRAY = 5

const uint8_t AMF_DATATYPE_SIZE_NULL = 1

const uint8_t AMF_DATATYPE_SIZE_NUMBER = 9

const uint8_t AMF_DATATYPE_SIZE_OBJECT = 1

const uint8_t AMF_DATATYPE_SIZE_STRING = 3

const uint8_t AMF_DATATYPE_STRING = 0x02

const uint8_t AMF_DATATYPE_TYPED_OBJECT = 0x10

const uint8_t AMF_DATATYPE_UNDEFINED = 0x06

Referenced by rtmp_handler_invoke().

const uint8_t AMF_DATATYPE_UNSUPPORTED = 0x0D

const uint8_t AMF_DATATYPE_XML = 0x0F

const uint8_t FLV_AUDIO_CODEC_ID_ADPCM = 0x10

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_CODEC_ID_MASK = 0xF0

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_CODEC_ID_MP3 = 0x20

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_CODEC_ID_NELLYMOSER = 0x60

Referenced by flv_get_metadata_audio().

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_CODEC_ID_UNCOMPRESSED = 0x00

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_RATE_11_KHZ = 0x04

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_RATE_22_KHZ = 0x08

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_RATE_44_KHZ = 0x0C

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_RATE_5_5_KHZ = 0x00

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_RATE_MASK = 0x0C

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_SIZE_16_BIT = 0x02

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_SIZE_8_BIT = 0x00

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_SIZE_MASK = 0x02

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_STEREO_MASK = 0x01

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_STEREO_MONO = 0x00

Referenced by flv_get_metadata_audio().

const uint8_t FLV_AUDIO_STEREO_STEREO = 0x01

Referenced by flv_get_metadata_audio().

const uint8_t FLV_HEADER_AUDIO = 0x04

Referenced by flv_insert_header().

const uint8_t FLV_HEADER_SIGNATURE[3] = { 0x46, 0x4C, 0x56 }

Referenced by flv_insert_header().

const uint32_t FLV_HEADER_SIZE = 0x00000009

Referenced by flv_insert_header().

const uint8_t FLV_HEADER_VERSION = 0x01

Referenced by flv_insert_header().

const uint8_t FLV_HEADER_VIDEO = 0x01

Referenced by flv_insert_header().

const uint32_t FLV_TAG_FIRST_PREVIOUS_TAG_SIZE = 0x00000000

const uint8_t FLV_TAG_PREVIOUS_TAG_SIZE = 4

const uint8_t FLV_TAG_SIZE = 11

const uint8_t FLV_VIDEO_CODEC_ID_MASK = 0x0F

Referenced by flv_get_metadata_video().

const uint8_t FLV_VIDEO_CODEC_ID_ON2_VP6 = 0x04

Referenced by flv_get_metadata_video().

const uint8_t FLV_VIDEO_CODEC_ID_ON2_VP6_ALPHA = 0x05

Referenced by flv_get_metadata_video().

const uint8_t FLV_VIDEO_CODEC_ID_SCREEN_VIDEO = 0x03

Referenced by flv_get_metadata_video().

const uint8_t FLV_VIDEO_CODEC_ID_SCREEN_VIDEO_2 = 0x06

Referenced by flv_get_metadata_video().

const uint8_t FLV_VIDEO_CODEC_ID_SORENSEN_H263 = 0x02

Referenced by flv_get_metadata_video().

Referenced by flv_get_metadata_video().

const uint8_t FLV_VIDEO_FRAME_TYPE_INTER_FRAME = 0x20

Referenced by flv_get_metadata_video().

const uint8_t FLV_VIDEO_FRAME_TYPE_KEYFRAME = 0x10

Referenced by flv_get_metadata_video().

const uint8_t FLV_VIDEO_FRAME_TYPE_MASK = 0xF0

Referenced by flv_get_metadata_video().

const uint16_t MAX_EMPTY_BLOCKS = 200

const uint64_t RTMP_AUDIOCODECS = 0x4083380000000000

const uint16_t RTMP_BODY_SIZE_ALLOC = 1024

Referenced by rtmp_body_new().

const uint8_t RTMP_CONTENT_TYPE_AUDIO_DATA = 0x08

const uint8_t RTMP_CONTENT_TYPE_BYTES_READ = 0x03

const uint8_t RTMP_CONTENT_TYPE_CHUNK_SIZE = 0x01

Referenced by rtmp_init_handler().

const uint8_t RTMP_CONTENT_TYPE_CLIENT_BW = 0x06

Referenced by rtmp_init_handler().

Referenced by rtmp_init_handler().

const uint8_t RTMP_CONTENT_TYPE_FLEX_STREAM = 0x0F

Referenced by rtmp_init_handler().

const uint8_t RTMP_CONTENT_TYPE_INVOKE = 0x14

const uint8_t RTMP_CONTENT_TYPE_MESSAGE = 0x11

Referenced by rtmp_init_handler().

const uint8_t RTMP_CONTENT_TYPE_NOTIFY = 0x12

const uint8_t RTMP_CONTENT_TYPE_PING = 0x04

const uint8_t RTMP_CONTENT_TYPE_SERVER_BW = 0x05

const uint8_t RTMP_CONTENT_TYPE_SHARED_OBJECT = 0x13

Referenced by rtmp_init_handler().

const uint8_t RTMP_CONTENT_TYPE_UNKNOWN_02 = 0x02

Referenced by rtmp_init_handler().

const uint8_t RTMP_CONTENT_TYPE_UNKNOWN_07 = 0x07

Referenced by rtmp_init_handler().

const uint8_t RTMP_CONTENT_TYPE_UNKNOWN_0A_0E = 0x0A

Referenced by rtmp_init_handler().

const uint8_t RTMP_CONTENT_TYPE_VIDEO_DATA = 0x09

const uint32_t RTMP_DEFAULT_CHUNK_SIZE = 128

const double RTMP_DEFAULT_STREAM_CLIENT_ID = 1.0

Referenced by rtmp_connect_active().

Referenced by rtmp_get_stream_index().

const uint8_t RTMP_DEFAULT_STREAM_INDEX_CONTROL = 0x02

const uint8_t RTMP_DEFAULT_STREAM_INDEX_INVOKE = 0x03

const uint8_t RTMP_DEFAULT_STREAM_INDEX_NOTIFY = 0x04

Referenced by rtmp_get_stream_index().

const double RTMP_DEFAULT_STREAM_SERVER_ID = 1.0

Referenced by rtmp_handler_invoke().

const uint8_t RTMP_HANDSHAKE = 0x03

const uint16_t RTMP_HANDSHAKE_BODY_SIZE = 1536

const uint8_t RTMP_HEADER_SIZE_1 = 0xC0

const uint8_t RTMP_HEADER_SIZE_12 = 0x00

const uint8_t RTMP_HEADER_SIZE_4 = 0x80

const uint8_t RTMP_HEADER_SIZE_8 = 0x40

const uint8_t RTMP_HEADER_SIZE_MASK = 0xC0

Referenced by rtmp_read_net_packet().

const uint8_t RTMP_HEADER_STREAM_INDEX_MASK = 0x3F

Referenced by rtmp_read_net_packet().

const uint8_t RTMP_HEADER_STREAM_MAX = 64

const uint16_t RTMP_PING_BUFFER_TIME_CLIENT = 0x0003

const uint16_t RTMP_PING_CLEAR_PLAYING_BUFFER = 0x0001

Referenced by rtmp_encode_ping().

const uint16_t RTMP_PING_CLEAR_STREAM = 0x0000

const uint16_t RTMP_PING_CLIENT_FROM_SERVER = 0x0006

const uint16_t RTMP_PING_PONG_FROM_CLIENT = 0x0007

const uint16_t RTMP_PING_RESET_STREAM = 0x0004

Referenced by rtmp_encode_ping().

const uint8_t RTMP_PING_SIZE_CLEAR_STREAM = 6

const uint8_t RTMP_PING_SIZE_RESET_STREAM = 6

const uint32_t RTMP_SERVER_BW = 0x00000200

Referenced by rtmp_handler_invoke().

const uint8_t RTMP_SHARED_OBJECT_DATATYPE_STATUS = 0x07

const uint32_t RTMP_SRC_DST_CONNECT_OBJECT = 0x00000000

const uint32_t RTMP_SRC_DST_CONNECT_OBJECT2 = 0x00000001

const uint32_t RTMP_SRC_DST_DEFAULT = 0x01000000

const uint32_t RTMP_TIME_CLIENT_BUFFER = 2000

Referenced by rtmp_connect_active().

const uint64_t RTMP_VIDEOCODECS = 0x405f000000000000

const uint64_t RTMP_VIDEOFUNCTION = 0x3ff0000000000000


Generated on Tue May 25 08:05:08 2010 for VLC by  doxygen 1.5.6