
Defines | |
| #define | XOR_TABLE_LEN 37 |
| #define | BE_32(x) GetDWBE(x) |
| #define | LE_32(x) GetDWLE(x) |
| #define | BE_16(x) GetWBE(x) |
| #define | LE_16(x) GetWLE(x) |
| #define | BE_32C(x, y) do {uint32_t in=y; *(uint32_t *)(x)=GetDWBE(&in);} while(0) |
| #define | LE_32C(x, y) do {uint32_t in=y; *(uint32_t *)(x)=GetDWLE(&in);} while(0) |
| #define | MAX(x, y) ((x>y) ? x : y) |
| #define | MAX_DESC_BUF (20 * 1024 * 1024) |
| maximum size of the rtsp description, must be < INT_MAX | |
Functions | |
| static void | hash (char *field, char *param) |
| static void | call_hash (char *key, char *challenge, unsigned int len) |
| static void | calc_response (char *result, char *field) |
| static void | calc_response_string (char *result, char *challenge) |
| static void | real_calc_response_and_checksum (char *response, char *chksum, char *challenge) |
| static int | select_mlti_data (const char *mlti_chunk, int mlti_size, int selection, char **out) |
| static rmff_header_t * | real_parse_sdp (char *data, char **stream_rules, uint32_t bandwidth) |
| int | real_get_rdt_chunk_header (rtsp_client_t *rtsp_session, rmff_pheader_t *ph) |
| int | real_get_rdt_chunk (rtsp_client_t *rtsp_session, rmff_pheader_t *ph, unsigned char **buffer) |
| rmff_header_t * | real_setup_and_get_header (rtsp_client_t *rtsp_session, int bandwidth) |
Variables | |
| static const unsigned char | xor_table [] |
| #define BE_16 | ( | x | ) | GetWBE(x) |
Referenced by rmff_dump_cont(), rmff_dump_dataheader(), rmff_dump_fileheader(), rmff_dump_mdpr(), rmff_dump_prop(), and select_mlti_data().
| #define BE_32 | ( | x | ) | GetDWBE(x) |
| #define BE_32C | ( | x, | |||
| y | ) | do {uint32_t in=y; *(uint32_t *)(x)=GetDWBE(&in);} while(0) |
Referenced by real_calc_response_and_checksum().
| #define LE_16 | ( | x | ) | GetWLE(x) |
| #define LE_32 | ( | x | ) | GetDWLE(x) |
Referenced by calc_response(), call_hash(), and hash().
| #define LE_32C | ( | x, | |||
| y | ) | do {uint32_t in=y; *(uint32_t *)(x)=GetDWLE(&in);} while(0) |
Referenced by call_hash(), and hash().
| #define MAX | ( | x, | |||
| y | ) | ((x>y) ? x : y) |
Referenced by real_parse_sdp().
| #define MAX_DESC_BUF (20 * 1024 * 1024) |
| #define XOR_TABLE_LEN 37 |
Referenced by real_calc_response_and_checksum().
| static void calc_response | ( | char * | result, | |
| char * | field | |||
| ) | [static] |
| static void calc_response_string | ( | char * | result, | |
| char * | challenge | |||
| ) | [static] |
References a, b, calc_response(), call_hash(), and i.
Referenced by real_calc_response_and_checksum().
| static void call_hash | ( | char * | key, | |
| char * | challenge, | |||
| unsigned int | len | |||
| ) | [static] |
References a, b, c, hash(), LE_32, LE_32C, and lprintf().
Referenced by calc_response(), and calc_response_string().
| static void hash | ( | char * | field, | |
| char * | param | |||
| ) | [static] |
| static void real_calc_response_and_checksum | ( | char * | response, | |
| char * | chksum, | |||
| char * | challenge | |||
| ) | [static] |
References BE_32C, calc_response_string(), i, xor_table, and XOR_TABLE_LEN.
Referenced by real_setup_and_get_header().
| int real_get_rdt_chunk | ( | rtsp_client_t * | rtsp_session, | |
| rmff_pheader_t * | ph, | |||
| unsigned char ** | buffer | |||
| ) |
References rmff_pheader_t::length, rmff_dump_pheader(), and rtsp_read_data().
Referenced by BlockRead().
| int real_get_rdt_chunk_header | ( | rtsp_client_t * | rtsp_session, | |
| rmff_pheader_t * | ph | |||
| ) |
References BE_32, rmff_pheader_t::flags, rmff_pheader_t::length, lprintf(), rmff_pheader_t::object_version, rmff_pheader_t::reserved, rtsp_read_data(), size, rmff_pheader_t::stream_number, and rmff_pheader_t::timestamp.
Referenced by BlockRead().
| static rmff_header_t* real_parse_sdp | ( | char * | data, | |
| char ** | stream_rules, | |||
| uint32_t | bandwidth | |||
| ) | [static] |
References sdpplin_t::abstract, sdpplin_stream_t::asm_rule_book, asmrp_match(), sdpplin_t::author, sdpplin_stream_t::avg_bit_rate, sdpplin_stream_t::avg_packet_size, b, rmff_header_t::cont, sdpplin_t::copyright, rmff_header_t::data, sdpplin_stream_t::duration, rmff_header_t::fileheader, sdpplin_t::flags, i, lprintf(), MAX, sdpplin_stream_t::max_bit_rate, sdpplin_stream_t::max_packet_size, sdpplin_stream_t::mime_type, sdpplin_stream_t::mlti_data, sdpplin_stream_t::mlti_data_size, sdpplin_stream_t::preroll, rmff_header_t::prop, rmff_fix_header(), rmff_free_header(), rmff_new_cont(), rmff_new_dataheader(), rmff_new_fileheader(), rmff_new_mdpr(), rmff_new_prop(), sdpplin_free(), sdpplin_parse(), select_mlti_data(), sdpplin_stream_t::start_time, sdpplin_t::stream, sdpplin_t::stream_count, sdpplin_stream_t::stream_id, sdpplin_stream_t::stream_name, rmff_header_t::streams, and sdpplin_t::title.
Referenced by real_setup_and_get_header().
| rmff_header_t* real_setup_and_get_header | ( | rtsp_client_t * | rtsp_session, | |
| int | bandwidth | |||
| ) |
References rmff_cont_t::author, rmff_header_t::cont, rmff_cont_t::copyright, description, lprintf(), MAX_DESC_BUF, rmff_prop_t::num_streams, rmff_header_t::prop, real_calc_response_and_checksum(), real_parse_sdp(), realloc_or_free(), rmff_fix_header(), rmff_free_header(), rtsp_get_mrl(), rtsp_read_data(), rtsp_request_describe(), rtsp_request_play(), rtsp_request_setparameter(), rtsp_request_setup(), rtsp_schedule_field(), rtsp_search_answers(), rtsp_send_ok(), size, strdup(), and rmff_cont_t::title.
| static int select_mlti_data | ( | const char * | mlti_chunk, | |
| int | mlti_size, | |||
| int | selection, | |||
| char ** | out | |||
| ) | [static] |
const unsigned char xor_table[] [static] |
Initial value:
{
0x05, 0x18, 0x74, 0xd0, 0x0d, 0x09, 0x02, 0x53,
0xc0, 0x01, 0x05, 0x05, 0x67, 0x03, 0x19, 0x70,
0x08, 0x27, 0x66, 0x10, 0x10, 0x72, 0x08, 0x09,
0x63, 0x11, 0x03, 0x71, 0x08, 0x08, 0x70, 0x02,
0x10, 0x57, 0x05, 0x18, 0x54, 0x00, 0x00, 0x00 }
Referenced by real_calc_response_and_checksum().
1.5.6