|
FFmpeg
|
#include "libavcodec/bytestream.h"#include "libavutil/avstring.h"#include "libavutil/intfloat.h"#include "avformat.h"#include "rtmppkt.h"#include "flv.h"#include "url.h"Go to the source code of this file.
Functions | |
| void | ff_amf_write_bool (uint8_t **dst, int val) |
| Write boolean value in AMF format to buffer. More... | |
| void | ff_amf_write_number (uint8_t **dst, double val) |
| Write number in AMF format to buffer. More... | |
| void | ff_amf_write_string (uint8_t **dst, const char *str) |
| Write string in AMF format to buffer. More... | |
| void | ff_amf_write_string2 (uint8_t **dst, const char *str1, const char *str2) |
| Write a string consisting of two parts in AMF format to a buffer. More... | |
| void | ff_amf_write_null (uint8_t **dst) |
| Write AMF NULL value to buffer. More... | |
| void | ff_amf_write_object_start (uint8_t **dst) |
| Write marker for AMF object to buffer. More... | |
| void | ff_amf_write_field_name (uint8_t **dst, const char *str) |
| Write string used as field name in AMF object to buffer. More... | |
| void | ff_amf_write_object_end (uint8_t **dst) |
| Write marker for end of AMF object to buffer. More... | |
| int | ff_amf_read_bool (GetByteContext *bc, int *val) |
| Read AMF boolean value. More... | |
| int | ff_amf_read_number (GetByteContext *bc, double *val) |
| Read AMF number value. More... | |
| int | ff_amf_get_string (GetByteContext *bc, uint8_t *str, int strsize, int *length) |
| Get AMF string value. More... | |
| int | ff_amf_read_string (GetByteContext *bc, uint8_t *str, int strsize, int *length) |
| Read AMF string value. More... | |
| int | ff_amf_read_null (GetByteContext *bc) |
| Read AMF NULL value. More... | |
| int | ff_rtmp_check_alloc_array (RTMPPacket **prev_pkt, int *nb_prev_pkt, int channel) |
| Enlarge the prev_pkt array to fit the given channel. More... | |
| int | ff_rtmp_packet_read (URLContext *h, RTMPPacket *p, int chunk_size, RTMPPacket **prev_pkt, int *nb_prev_pkt) |
| Read RTMP packet sent by the server. More... | |
| static int | rtmp_packet_read_one_chunk (URLContext *h, RTMPPacket *p, int chunk_size, RTMPPacket **prev_pkt_ptr, int *nb_prev_pkt, uint8_t hdr) |
| int | ff_rtmp_packet_read_internal (URLContext *h, RTMPPacket *p, int chunk_size, RTMPPacket **prev_pkt, int *nb_prev_pkt, uint8_t hdr) |
| Read internal RTMP packet sent by the server. More... | |
| int | ff_rtmp_packet_write (URLContext *h, RTMPPacket *pkt, int chunk_size, RTMPPacket **prev_pkt_ptr, int *nb_prev_pkt) |
| Send RTMP packet to the server. More... | |
| int | ff_rtmp_packet_create (RTMPPacket *pkt, int channel_id, RTMPPacketType type, int timestamp, int size) |
| Create new RTMP packet with given attributes. More... | |
| void | ff_rtmp_packet_destroy (RTMPPacket *pkt) |
| Free RTMP packet. More... | |
| int | ff_amf_tag_size (const uint8_t *data, const uint8_t *data_end) |
| Calculate number of bytes taken by first AMF entry in data. More... | |
| int | ff_amf_get_field_value (const uint8_t *data, const uint8_t *data_end, const uint8_t *name, uint8_t *dst, int dst_size) |
| Retrieve value of given AMF object field in string form. More... | |
| static const char * | rtmp_packet_type (int type) |
| static void | amf_tag_contents (void *ctx, const uint8_t *data, const uint8_t *data_end) |
| void | ff_rtmp_packet_dump (void *ctx, RTMPPacket *p) |
| Print information and contents of RTMP packet. More... | |
| int | ff_amf_match_string (const uint8_t *data, int size, const char *str) |
| Match AMF string with a NULL-terminated string. More... | |
Write boolean value in AMF format to buffer.
| dst | pointer to the input buffer (will be modified) |
| val | value to write |
Definition at line 31 of file rtmppkt.c.
Referenced by gen_connect(), gen_pause(), and rtmp_write_amf_data().
Write number in AMF format to buffer.
| dst | pointer to the input buffer (will be modified) |
| num | value to write |
Definition at line 37 of file rtmppkt.c.
Referenced by gen_check_bw(), gen_connect(), gen_create_stream(), gen_delete_stream(), gen_fcpublish_stream(), gen_fcsubscribe_stream(), gen_fcunpublish_stream(), gen_get_stream_length(), gen_pause(), gen_play(), gen_publish(), gen_release_stream(), gen_seek(), read_connect(), rtmp_write_amf_data(), send_invoke_response(), and write_status().
Write string in AMF format to buffer.
| dst | pointer to the input buffer (will be modified) |
| str | string to write |
Definition at line 43 of file rtmppkt.c.
Referenced by gen_check_bw(), gen_connect(), gen_create_stream(), gen_delete_stream(), gen_fcpublish_stream(), gen_fcsubscribe_stream(), gen_fcunpublish_stream(), gen_get_stream_length(), gen_pause(), gen_play(), gen_publish(), gen_release_stream(), gen_seek(), read_connect(), rtmp_write(), rtmp_write_amf_data(), send_invoke_response(), and write_status().
Write a string consisting of two parts in AMF format to a buffer.
| dst | pointer to the input buffer (will be modified) |
| str1 | first string to write, may be null |
| str2 | second string to write, may be null |
Definition at line 50 of file rtmppkt.c.
Referenced by gen_connect().
Write AMF NULL value to buffer.
| dst | pointer to the input buffer (will be modified) |
Definition at line 63 of file rtmppkt.c.
Referenced by gen_check_bw(), gen_create_stream(), gen_delete_stream(), gen_fcpublish_stream(), gen_fcsubscribe_stream(), gen_fcunpublish_stream(), gen_get_stream_length(), gen_pause(), gen_play(), gen_publish(), gen_release_stream(), gen_seek(), read_connect(), rtmp_write_amf_data(), send_invoke_response(), and write_status().
Write marker for AMF object to buffer.
| dst | pointer to the input buffer (will be modified) |
Definition at line 68 of file rtmppkt.c.
Referenced by gen_connect(), read_connect(), rtmp_write_amf_data(), and write_status().
Write string used as field name in AMF object to buffer.
| dst | pointer to the input buffer (will be modified) |
| str | string to write |
Definition at line 73 of file rtmppkt.c.
Referenced by gen_connect(), read_connect(), rtmp_write_amf_data(), and write_status().
Write marker for end of AMF object to buffer.
| dst | pointer to the input buffer (will be modified) |
Definition at line 79 of file rtmppkt.c.
Referenced by gen_connect(), read_connect(), rtmp_write_amf_data(), and write_status().
| int ff_amf_read_bool | ( | GetByteContext * | gbc, |
| int * | val | ||
| ) |
Read AMF boolean value.
| [in,out] | gbc | GetByteContext initialized with AMF-formatted data |
| [out] | val | 0 or 1 |
| int ff_amf_read_number | ( | GetByteContext * | gbc, |
| double * | val | ||
| ) |
Read AMF number value.
| [in,out] | gbc | GetByteContext initialized with AMF-formatted data |
| [out] | val | read value |
Definition at line 95 of file rtmppkt.c.
Referenced by find_tracked_method(), read_connect(), read_number_result(), rtmp_send_packet(), and send_invoke_response().
| int ff_amf_get_string | ( | GetByteContext * | bc, |
| uint8_t * | str, | ||
| int | strsize, | ||
| int * | length | ||
| ) |
Get AMF string value.
This function behaves the same as ff_amf_read_string except that it does not expect the AMF type prepended to the actual data. Appends a trailing null byte to output string in order to ease later parsing.
| [in,out] | gbc | GetByteContext initialized with AMF-formatted data |
| [out] | str | read string |
| [in] | strsize | buffer size available to store the read string |
| [out] | length | read string length |
Definition at line 105 of file rtmppkt.c.
Referenced by ff_amf_read_string(), and handle_notify().
| int ff_amf_read_string | ( | GetByteContext * | gbc, |
| uint8_t * | str, | ||
| int | strsize, | ||
| int * | length | ||
| ) |
Read AMF string value.
Appends a trailing null byte to output string in order to ease later parsing.
| [in,out] | gbc | GetByteContext initialized with AMF-formatted data |
| [out] | str | read string |
| [in] | strsize | buffer size available to store the read string |
| [out] | length | read string length |
Definition at line 123 of file rtmppkt.c.
Referenced by handle_notify(), read_connect(), read_number_result(), rtmp_send_packet(), rtmp_write(), and send_invoke_response().
| int ff_amf_read_null | ( | GetByteContext * | gbc | ) |
Read AMF NULL value.
| [in,out] | gbc | GetByteContext initialized with AMF-formatted data |
Definition at line 131 of file rtmppkt.c.
Referenced by read_number_result(), and send_invoke_response().
| int ff_rtmp_check_alloc_array | ( | RTMPPacket ** | prev_pkt, |
| int * | nb_prev_pkt, | ||
| int | channel | ||
| ) |
Enlarge the prev_pkt array to fit the given channel.
| prev_pkt | array with previously sent packet headers |
| nb_prev_pkt | number of allocated elements in prev_pkt |
| channel | the channel number that needs to be allocated |
Definition at line 138 of file rtmppkt.c.
Referenced by ff_rtmp_packet_write(), rtmp_packet_read_one_chunk(), and rtmp_write().
| int ff_rtmp_packet_read | ( | URLContext * | h, |
| RTMPPacket * | p, | ||
| int | chunk_size, | ||
| RTMPPacket ** | prev_pkt, | ||
| int * | nb_prev_pkt | ||
| ) |
Read RTMP packet sent by the server.
| h | reader context |
| p | packet |
| chunk_size | current chunk size |
| prev_pkt | previously read packet headers for all channels (may be needed for restoring incomplete packet header) |
| nb_prev_pkt | number of allocated elements in prev_pkt |
Definition at line 159 of file rtmppkt.c.
Referenced by get_packet(), and read_connect().
|
static |
Definition at line 171 of file rtmppkt.c.
Referenced by ff_rtmp_packet_read_internal().
| int ff_rtmp_packet_read_internal | ( | URLContext * | h, |
| RTMPPacket * | p, | ||
| int | chunk_size, | ||
| RTMPPacket ** | prev_pkt, | ||
| int * | nb_prev_pkt, | ||
| uint8_t | c | ||
| ) |
Read internal RTMP packet sent by the server.
| h | reader context |
| p | packet |
| chunk_size | current chunk size |
| prev_pkt | previously read packet headers for all channels (may be needed for restoring incomplete packet header) |
| nb_prev_pkt | number of allocated elements in prev_pkt |
| c | the first byte already read |
Definition at line 290 of file rtmppkt.c.
Referenced by ff_rtmp_packet_read(), and rtmp_write().
| int ff_rtmp_packet_write | ( | URLContext * | h, |
| RTMPPacket * | p, | ||
| int | chunk_size, | ||
| RTMPPacket ** | prev_pkt, | ||
| int * | nb_prev_pkt | ||
| ) |
Send RTMP packet to the server.
| h | reader context |
| p | packet to send |
| chunk_size | current chunk size |
| prev_pkt | previously sent packet headers for all channels (may be used for packet header compressing) |
| nb_prev_pkt | number of allocated elements in prev_pkt |
Definition at line 305 of file rtmppkt.c.
Referenced by handle_chunk_size(), read_connect(), rtmp_send_packet(), send_invoke_response(), write_begin(), and write_status().
| int ff_rtmp_packet_create | ( | RTMPPacket * | pkt, |
| int | channel_id, | ||
| RTMPPacketType | type, | ||
| int | timestamp, | ||
| int | size | ||
| ) |
Create new RTMP packet with given attributes.
| pkt | packet |
| channel_id | packet channel ID |
| type | packet type |
| timestamp | packet timestamp |
| size | packet size |
Definition at line 402 of file rtmppkt.c.
Referenced by gen_buffer_time(), gen_bytes_read(), gen_check_bw(), gen_connect(), gen_create_stream(), gen_delete_stream(), gen_fcpublish_stream(), gen_fcsubscribe_stream(), gen_fcunpublish_stream(), gen_get_stream_length(), gen_pause(), gen_play(), gen_pong(), gen_publish(), gen_release_stream(), gen_seek(), gen_server_bw(), gen_swf_verification(), read_connect(), rtmp_packet_read_one_chunk(), rtmp_write(), send_invoke_response(), write_begin(), and write_status().
| void ff_rtmp_packet_destroy | ( | RTMPPacket * | pkt | ) |
Free RTMP packet.
| pkt | packet |
Definition at line 420 of file rtmppkt.c.
Referenced by gen_connect(), get_packet(), read_connect(), rtmp_close(), rtmp_packet_read_one_chunk(), rtmp_send_packet(), rtmp_write(), send_invoke_response(), write_begin(), and write_status().
Calculate number of bytes taken by first AMF entry in data.
| data | input data |
| data_end | input buffer end |
Definition at line 428 of file rtmppkt.c.
Referenced by amf_tag_contents(), ff_amf_get_field_value(), ff_amf_tag_size(), ff_rtmp_packet_dump(), handle_invoke_status(), and handle_notify().
| int ff_amf_get_field_value | ( | const uint8_t * | data, |
| const uint8_t * | data_end, | ||
| const uint8_t * | name, | ||
| uint8_t * | dst, | ||
| int | dst_size | ||
| ) |
Retrieve value of given AMF object field in string form.
| data | AMF object data |
| data_end | input buffer end |
| name | name of field to retrieve |
| dst | buffer for storing result |
| dst_size | output buffer size |
Definition at line 472 of file rtmppkt.c.
Referenced by handle_invoke_error(), handle_invoke_status(), and read_connect().
|
static |
Definition at line 519 of file rtmppkt.c.
Referenced by ff_rtmp_packet_dump().
Definition at line 540 of file rtmppkt.c.
Referenced by ff_rtmp_packet_dump().
| void ff_rtmp_packet_dump | ( | void * | ctx, |
| RTMPPacket * | p | ||
| ) |
Print information and contents of RTMP packet.
| ctx | output context |
| p | packet to dump |
Definition at line 610 of file rtmppkt.c.
Referenced by read_connect(), and rtmp_parse_result().
| int ff_amf_match_string | ( | const uint8_t * | data, |
| int | size, | ||
| const char * | str | ||
| ) |
Match AMF string with a NULL-terminated string.
Definition at line 636 of file rtmppkt.c.
Referenced by handle_invoke().
1.8.6