Go to the documentation of this file.
24 #include <sys/types.h>
25 #ifdef HAVE_SYS_SOCKET_H
26 #include <sys/socket.h>
28 #ifdef HAVE_NETINET_IN_H
29 #include <netinet/in.h>
46 #define RMFF_HEADER_SIZE 0x12
48 #define RMFF_FILEHEADER_SIZE 18
49 #define RMFF_PROPHEADER_SIZE 50
50 #define RMFF_MDPRHEADER_SIZE 46
51 #define RMFF_CONTHEADER_SIZE 18
52 #define RMFF_DATAHEADER_SIZE 18
54 #define FOURCC_TAG( ch0, ch1, ch2, ch3 ) \
55 (((long)(unsigned char)(ch3) ) | \
56 ( (long)(unsigned char)(ch2) << 8 ) | \
57 ( (long)(unsigned char)(ch1) << 16 ) | \
58 ( (long)(unsigned char)(ch0) << 24 ) )
61 #define RMF_TAG FOURCC_TAG('.', 'R', 'M', 'F')
62 #define PROP_TAG FOURCC_TAG('P', 'R', 'O', 'P')
63 #define MDPR_TAG FOURCC_TAG('M', 'D', 'P', 'R')
64 #define CONT_TAG FOURCC_TAG('C', 'O', 'N', 'T')
65 #define DATA_TAG FOURCC_TAG('D', 'A', 'T', 'A')
66 #define INDX_TAG FOURCC_TAG('I', 'N', 'D', 'X')
67 #define PNA_TAG FOURCC_TAG('P', 'N', 'A', 0 )
69 #define MLTI_TAG FOURCC_TAG('M', 'L', 'T', 'I')
72 #define PN_SAVE_ENABLED 0x01
73 #define PN_PERFECT_PLAY_ENABLED 0x02
74 #define PN_LIVE_BROADCAST 0x04
191 uint32_t max_bit_rate,
192 uint32_t avg_bit_rate,
193 uint32_t max_packet_size,
194 uint32_t avg_packet_size,
195 uint32_t num_packets,
198 uint32_t index_offset,
199 uint32_t data_offset,
200 uint16_t num_streams,
204 uint16_t stream_number,
205 uint32_t max_bit_rate,
206 uint32_t avg_bit_rate,
207 uint32_t max_packet_size,
208 uint32_t avg_packet_size,
212 const char *stream_name,
213 const char *mime_type,
214 uint32_t type_specific_len,
215 const char *type_specific_data );
220 const char *copyright,
221 const char *comment);
224 uint32_t num_packets, uint32_t next_data_header);
uint32_t index_offset
Definition: rmff.h:103
static int rmff_dump_mdpr(rmff_mdpr_t *mdpr, uint8_t *buffer, int bufsize)
Definition: rmff.c:114
uint32_t avg_packet_size
Definition: rmff.h:120
rmff_cont_t * rmff_new_cont(const char *title, const char *author, const char *copyright, const char *comment)
Definition: rmff.c:651
#define RMF_TAG
Definition: rmff.h:61
#define XINE_MALLOC
Definition: attributes.h:139
uint32_t start_time
Definition: rmff.h:121
#define xine_buffer_free(buf)
Definition: xine_buffer.c:149
rmff_prop_t * rmff_new_prop(uint32_t max_bit_rate, uint32_t avg_bit_rate, uint32_t max_packet_size, uint32_t avg_packet_size, uint32_t num_packets, uint32_t duration, uint32_t preroll, uint32_t index_offset, uint32_t data_offset, uint16_t num_streams, uint16_t flags)
Definition: rmff.c:571
uint32_t preroll
Definition: rmff.h:122
#define RMFF_PROPHEADER_SIZE
Definition: rmff.h:49
uint16_t object_version
Definition: rmff.h:140
uint32_t object_id
Definition: rmff.h:92
#define CONT_TAG
Definition: demux_real.c:70
#define xine_buffer_ensure_size(buf, data)
Definition: xine_buffer.c:332
uint32_t object_id
Definition: rmff.h:138
rmff_header_t * rmff_scan_header(const char *data)
Definition: rmff.c:437
uint32_t size
Definition: rmff.h:93
#define RMFF_MDPRHEADER_SIZE
Definition: rmff.h:50
uint16_t object_version
Definition: rmff.h:94
void * xine_memdup0(const void *src, size_t length)
Definition: utils.c:317
uint32_t num_packets
Definition: rmff.h:100
uint16_t author_len
Definition: rmff.h:144
int mlti_data_size
Definition: rmff.h:131
int rmff_dump_header(rmff_header_t *h, void *buf_gen, int max)
Definition: rmff.c:243
rmff_cont_t * rmff_new_cont(const char *title, const char *author, const char *copyright, const char *comment)
Definition: rmff.c:651
static rmff_mdpr_t * rmff_scan_mdpr(const char *data)
Definition: rmff.c:339
uint32_t max_bit_rate
Definition: rmff.h:117
uint32_t max_packet_size
Definition: rmff.h:119
uint32_t object_id
Definition: rmff.h:155
uint32_t max_bit_rate
Definition: rmff.h:96
#define lprintf(...)
Definition: xineutils.h:620
uint32_t duration
Definition: rmff.h:123
#define RMFF_FILEHEADER_SIZE
Definition: rmff.h:48
#define PN_SAVE_ENABLED
Definition: rmff.h:72
uint8_t mime_type_size
Definition: rmff.h:126
char * comment
Definition: rmff.h:149
uint32_t avg_bit_rate
Definition: rmff.h:118
rmff_mdpr_t * rmff_new_mdpr(uint16_t stream_number, uint32_t max_bit_rate, uint32_t avg_bit_rate, uint32_t max_packet_size, uint32_t avg_packet_size, uint32_t start_time, uint32_t preroll, uint32_t duration, const char *stream_name, const char *mime_type, uint32_t type_specific_len, const char *type_specific_data)
Definition: rmff.c:605
#define _X_BE_16(x)
Definition: bswap.h:40
char * copyright
Definition: rmff.h:147
NULL
Definition: xine_plugin.c:78
rmff_data_t * rmff_new_dataheader(uint32_t num_packets, uint32_t next_data_header)
Definition: rmff.c:689
uint32_t avg_bit_rate
Definition: rmff.h:97
#define RMFF_DATAHEADER_SIZE
Definition: rmff.h:52
static rmff_fileheader_t * rmff_scan_fileheader(const char *data)
Definition: rmff.c:296
uint32_t duration
Definition: rmff.h:101
#define RMFF_CONTHEADER_SIZE
Definition: rmff.h:51
char * author
Definition: rmff.h:145
uint32_t size
Definition: rmff.h:139
rmff_data_t * rmff_new_dataheader(uint32_t num_packets, uint32_t next_data_header)
Definition: rmff.c:689
uint32_t num_packets
Definition: rmff.h:159
rmff_prop_t * rmff_new_prop(uint32_t max_bit_rate, uint32_t avg_bit_rate, uint32_t max_packet_size, uint32_t avg_packet_size, uint32_t num_packets, uint32_t duration, uint32_t preroll, uint32_t index_offset, uint32_t data_offset, uint16_t num_streams, uint16_t flags)
Definition: rmff.c:571
uint32_t max_packet_size
Definition: rmff.h:98
void xine_hexdump(const void *buf_gen, int length)
Definition: utils.c:576
rmff_fileheader_t * rmff_new_fileheader(uint32_t num_headers)
Definition: rmff.c:558
uint16_t copyright_len
Definition: rmff.h:146
#define PN_PERFECT_PLAY_ENABLED
Definition: rmff.h:73
void * xine_memdup(const void *src, size_t length)
Definition: utils.c:308
uint16_t flags
Definition: rmff.h:106
uint32_t object_id
Definition: rmff.h:112
rmff_fileheader_t * rmff_new_fileheader(uint32_t num_headers)
Definition: rmff.c:558
uint32_t size
Definition: rmff.h:156
uint32_t type_specific_len
Definition: rmff.h:128
uint16_t comment_len
Definition: rmff.h:148
rmff_mdpr_t * rmff_new_mdpr(uint16_t stream_number, uint32_t max_bit_rate, uint32_t avg_bit_rate, uint32_t max_packet_size, uint32_t avg_packet_size, uint32_t start_time, uint32_t preroll, uint32_t duration, const char *stream_name, const char *mime_type, uint32_t type_specific_len, const char *type_specific_data)
Definition: rmff.c:605
static rmff_data_t * rmff_scan_dataheader(const char *data)
Definition: rmff.c:420
int rmff_dump_header(rmff_header_t *h, void *buffer, int max)
Definition: rmff.c:243
void rmff_fix_header(rmff_header_t *h)
Definition: rmff.c:771
#define DATA_TAG
Definition: demux_ac3.c:57
char * stream_name
Definition: rmff.h:125
#define MDPR_TAG
Definition: demux_real.c:69
#define PN_LIVE_BROADCAST
Definition: rmff.h:74
char * mlti_data
Definition: rmff.h:132
uint8_t stream_name_size
Definition: rmff.h:124
uint16_t object_version
Definition: rmff.h:114
static int rmff_dump_prop(rmff_prop_t *prop, uint8_t *buffer, int bufsize)
Definition: rmff.c:68
uint32_t size
Definition: rmff.h:113
static int rmff_dump_fileheader(rmff_fileheader_t *fileheader, uint8_t *buffer, int bufsize)
Definition: rmff.c:42
uint16_t object_version
Definition: rmff.h:157
rmff_header_t * rmff_scan_header(const char *data)
Definition: rmff.c:437
static int rmff_dump_dataheader(rmff_data_t *data, uint8_t *buffer, int bufsize)
Definition: rmff.c:217
char * mime_type
Definition: rmff.h:127
char * title
Definition: rmff.h:143
void rmff_dump_pheader(rmff_pheader_t *h, uint8_t *data)
Definition: rmff.c:280
static int rmff_dump_cont(rmff_cont_t *cont, uint8_t *buffer, int bufsize)
Definition: rmff.c:169
#define _X_BE_32(x)
Definition: bswap.h:45
uint16_t num_streams
Definition: rmff.h:105
void rmff_dump_pheader(rmff_pheader_t *h, uint8_t *data)
Definition: rmff.c:280
uint32_t next_data_header
Definition: rmff.h:160
static rmff_prop_t * rmff_scan_prop(const char *data)
Definition: rmff.c:313
void rmff_fix_header(rmff_header_t *h)
Definition: rmff.c:771
#define PROP_TAG
Definition: demux_real.c:68
uint32_t data_offset
Definition: rmff.h:104
char * type_specific_data
Definition: rmff.h:129
uint16_t stream_number
Definition: rmff.h:116
void * xine_buffer_init(int chunk_size)
Definition: xine_buffer.c:129
uint32_t avg_packet_size
Definition: rmff.h:99
uint32_t preroll
Definition: rmff.h:102
uint16_t title_len
Definition: rmff.h:142
static rmff_cont_t * rmff_scan_cont(const char *data)
Definition: rmff.c:392