Data Structures | Defines | Typedefs | Enumerations | Functions

libavformat/rtmppkt.h File Reference

#include "avformat.h"

Go to the source code of this file.

Data Structures

struct  RTMPPacket
 structure for holding RTMP packets More...

Defines

#define RTMP_CHANNELS   65599
 maximum possible number of different RTMP channels

Typedefs

typedef enum RTMPPacketType RTMPPacketType
 known RTMP packet types
typedef struct RTMPPacket RTMPPacket
 structure for holding RTMP packets

Enumerations

enum  RTMPChannel {
  RTMP_NETWORK_CHANNEL = 2, RTMP_SYSTEM_CHANNEL, RTMP_SOURCE_CHANNEL, RTMP_VIDEO_CHANNEL = 8,
  RTMP_AUDIO_CHANNEL
}
 

channels used to for RTMP packets with different purposes (i.e.

More...
enum  RTMPPacketType {
  RTMP_PT_CHUNK_SIZE = 1, RTMP_PT_BYTES_READ = 3, RTMP_PT_PING, RTMP_PT_SERVER_BW,
  RTMP_PT_CLIENT_BW, RTMP_PT_AUDIO = 8, RTMP_PT_VIDEO, RTMP_PT_FLEX_STREAM = 15,
  RTMP_PT_FLEX_OBJECT, RTMP_PT_FLEX_MESSAGE, RTMP_PT_NOTIFY, RTMP_PT_SHARED_OBJ,
  RTMP_PT_INVOKE, RTMP_PT_METADATA = 22
}
 

known RTMP packet types

More...
enum  RTMPPacketSize { RTMP_PS_TWELVEBYTES = 0, RTMP_PS_EIGHTBYTES, RTMP_PS_FOURBYTES, RTMP_PS_ONEBYTE }
 

possible RTMP packet header sizes

More...

Functions

int ff_rtmp_packet_create (RTMPPacket *pkt, int channel_id, RTMPPacketType type, int timestamp, int size)
 Creates new RTMP packet with given attributes.
void ff_rtmp_packet_destroy (RTMPPacket *pkt)
 Frees RTMP packet.
int ff_rtmp_packet_read (URLContext *h, RTMPPacket *p, int chunk_size, RTMPPacket *prev_pkt)
 Reads RTMP packet sent by the server.
int ff_rtmp_packet_write (URLContext *h, RTMPPacket *p, int chunk_size, RTMPPacket *prev_pkt)
 Sends RTMP packet to the server.
void ff_rtmp_packet_dump (void *ctx, RTMPPacket *p)
 Prints information and contents of RTMP packet.
int ff_amf_tag_size (const uint8_t *data, const uint8_t *data_end)
 Calculates number of bytes taken by first AMF entry in data.
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)
 Retrieves value of given AMF object field in string form.
void ff_amf_write_bool (uint8_t **dst, int val)
 Writes boolean value in AMF format to buffer.
void ff_amf_write_number (uint8_t **dst, double num)
 Writes number in AMF format to buffer.
void ff_amf_write_string (uint8_t **dst, const char *str)
 Writes string in AMF format to buffer.
void ff_amf_write_null (uint8_t **dst)
 Writes AMF NULL value to buffer.
void ff_amf_write_object_start (uint8_t **dst)
 Writes marker for AMF object to buffer.
void ff_amf_write_field_name (uint8_t **dst, const char *str)
 Writes string used as field name in AMF object to buffer.
void ff_amf_write_object_end (uint8_t **dst)
 Writes marker for end of AMF object to buffer.

Define Documentation

#define RTMP_CHANNELS   65599

maximum possible number of different RTMP channels

Definition at line 28 of file rtmppkt.h.


Typedef Documentation

typedef struct RTMPPacket RTMPPacket

structure for holding RTMP packets

known RTMP packet types


Enumeration Type Documentation

channels used to for RTMP packets with different purposes (i.e.

data, network control, remote procedure calls, etc.)

Enumerator:
RTMP_NETWORK_CHANNEL 

channel for network-related messages (bandwidth report, ping, etc)

RTMP_SYSTEM_CHANNEL 

channel for sending server control messages

RTMP_SOURCE_CHANNEL 

channel for sending a/v to server

RTMP_VIDEO_CHANNEL 

channel for video data

RTMP_AUDIO_CHANNEL 

channel for audio data

Definition at line 34 of file rtmppkt.h.

possible RTMP packet header sizes

Enumerator:
RTMP_PS_TWELVEBYTES 

packet has 12-byte header

RTMP_PS_EIGHTBYTES 

packet has 8-byte header

RTMP_PS_FOURBYTES 

packet has 4-byte header

RTMP_PS_ONEBYTE 

packet is really a next chunk of a packet

Definition at line 65 of file rtmppkt.h.

known RTMP packet types

Enumerator:
RTMP_PT_CHUNK_SIZE 

chunk size change

RTMP_PT_BYTES_READ 

number of bytes read

RTMP_PT_PING 

ping

RTMP_PT_SERVER_BW 

server bandwidth

RTMP_PT_CLIENT_BW 

client bandwidth

RTMP_PT_AUDIO 

audio packet

RTMP_PT_VIDEO 

video packet

RTMP_PT_FLEX_STREAM 

Flex shared stream.

RTMP_PT_FLEX_OBJECT 

Flex shared object.

RTMP_PT_FLEX_MESSAGE 

Flex shared message.

RTMP_PT_NOTIFY 

some notification

RTMP_PT_SHARED_OBJ 

shared object

RTMP_PT_INVOKE 

invoke some stream action

RTMP_PT_METADATA 

FLV metadata.

Definition at line 45 of file rtmppkt.h.


Function Documentation

int ff_rtmp_packet_create ( RTMPPacket pkt,
int  channel_id,
RTMPPacketType  type,
int  timestamp,
int  size 
)

Creates new RTMP packet with given attributes.

Parameters:
pkt packet
channel_id packet channel ID
type packet type
timestamp packet timestamp
size packet size
Returns:
zero on success, negative value otherwise

Definition at line 232 of file rtmppkt.c.

Referenced by ff_rtmp_packet_read(), gen_bytes_read(), gen_connect(), gen_create_stream(), gen_delete_stream(), gen_fcpublish_stream(), gen_fcunpublish_stream(), gen_play(), gen_pong(), gen_publish(), gen_release_stream(), and rtmp_write().

void ff_rtmp_packet_destroy ( RTMPPacket pkt  ) 
void ff_rtmp_packet_dump ( void *  ctx,
RTMPPacket p 
)

Prints information and contents of RTMP packet.

Parameters:
h output context
p packet to dump

Definition at line 422 of file rtmppkt.c.

Referenced by rtmp_parse_result().

int ff_rtmp_packet_read ( URLContext h,
RTMPPacket p,
int  chunk_size,
RTMPPacket prev_pkt 
)

Reads RTMP packet sent by the server.

Parameters:
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)
Returns:
number of bytes read on success, negative value otherwise

Definition at line 72 of file rtmppkt.c.

Referenced by get_packet().

int ff_rtmp_packet_write ( URLContext h,
RTMPPacket p,
int  chunk_size,
RTMPPacket prev_pkt 
)

Sends RTMP packet to the server.

Parameters:
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)
Returns:
number of bytes written on success, negative value otherwise

Definition at line 159 of file rtmppkt.c.

Referenced by gen_bytes_read(), gen_connect(), gen_create_stream(), gen_delete_stream(), gen_fcpublish_stream(), gen_fcunpublish_stream(), gen_play(), gen_pong(), gen_publish(), gen_release_stream(), rtmp_parse_result(), and rtmp_write().