xine-lib: xine-lib-1.2.12/src/input/libreal/rmff.h File Reference

xine-lib 1.2.12

Data Structures | Macros | Functions
rmff.h File Reference
`#include <sys/types.h>`
`#include <unistd.h>`
`#include <stdio.h>`
`#include <fcntl.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <inttypes.h>`
`#include <xine/attributes.h>`

Go to the source code of this file.

## Data Structures
struct | rmff_fileheader_t
struct | rmff_prop_t
struct | rmff_mdpr_t
struct | rmff_cont_t
struct | rmff_data_t
struct | rmff_header_t
struct | rmff_pheader_t

## Macros
#define | HAVE_RMFF_H
#define | RMFF_HEADER_SIZE 0x12
#define | RMFF_FILEHEADER_SIZE 18
#define | RMFF_PROPHEADER_SIZE 50
#define | RMFF_MDPRHEADER_SIZE 46
#define | RMFF_CONTHEADER_SIZE 18
#define | RMFF_DATAHEADER_SIZE 18
#define | FOURCC_TAG(ch0, ch1, ch2, ch3)
#define | RMF_TAG FOURCC_TAG('.', 'R', 'M', 'F')
#define | PROP_TAG FOURCC_TAG('P', 'R', 'O', 'P')
#define | MDPR_TAG FOURCC_TAG('M', 'D', 'P', 'R')
#define | CONT_TAG FOURCC_TAG('C', 'O', 'N', 'T')
#define | DATA_TAG FOURCC_TAG('D', 'A', 'T', 'A')
#define | INDX_TAG FOURCC_TAG('I', 'N', 'D', 'X')
#define | PNA_TAG FOURCC_TAG('P', 'N', 'A', 0 )
#define | MLTI_TAG FOURCC_TAG('M', 'L', 'T', 'I')
#define | PN_SAVE_ENABLED 0x01
#define | PN_PERFECT_PLAY_ENABLED 0x02
#define | PN_LIVE_BROADCAST 0x04

## Functions
rmff_fileheader_t * | rmff_new_fileheader (uint32_t num_headers)
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)
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)
rmff_cont_t * | rmff_new_cont (const char *title, const char *author, const char *copyright, const char *comment)
rmff_data_t * | rmff_new_dataheader (uint32_t num_packets, uint32_t next_data_header)
void | rmff_fix_header (rmff_header_t *h)
int | rmff_dump_header (rmff_header_t *h, void *buffer, int max)
void | rmff_dump_pheader (rmff_pheader_t *h, uint8_t *data)

## Macro Definition Documentation

## ◆ CONT_TAG

#define CONT_TAG FOURCC_TAG('C', 'O', 'N', 'T')

## ◆ DATA_TAG

#define DATA_TAG FOURCC_TAG('D', 'A', 'T', 'A')

## ◆ FOURCC_TAG

#define FOURCC_TAG | ( |  | ch0,
|  |  | ch1,
|  |  | ch2,
|  |  | ch3
| ) |  |

Value:
(((long)(unsigned char)(ch3) ) | \
( (long)(unsigned char)(ch2) << 8 ) | \
( (long)(unsigned char)(ch1) << 16 ) | \
( (long)(unsigned char)(ch0) << 24 ) )

## ◆ HAVE_RMFF_H

#define HAVE_RMFF_H

## ◆ INDX_TAG

#define INDX_TAG FOURCC_TAG('I', 'N', 'D', 'X')

## ◆ MDPR_TAG

#define MDPR_TAG FOURCC_TAG('M', 'D', 'P', 'R')

## ◆ MLTI_TAG

#define MLTI_TAG FOURCC_TAG('M', 'L', 'T', 'I')

## ◆ PN_LIVE_BROADCAST

#define PN_LIVE_BROADCAST 0x04

## ◆ PN_PERFECT_PLAY_ENABLED

#define PN_PERFECT_PLAY_ENABLED 0x02

## ◆ PN_SAVE_ENABLED

#define PN_SAVE_ENABLED 0x01

## ◆ PNA_TAG

#define PNA_TAG FOURCC_TAG('P', 'N', 'A', 0 )

## ◆ PROP_TAG

#define PROP_TAG FOURCC_TAG('P', 'R', 'O', 'P')

## ◆ RMF_TAG

#define RMF_TAG FOURCC_TAG('.', 'R', 'M', 'F')

## ◆ RMFF_CONTHEADER_SIZE

#define RMFF_CONTHEADER_SIZE 18

## ◆ RMFF_DATAHEADER_SIZE

#define RMFF_DATAHEADER_SIZE 18

## ◆ RMFF_FILEHEADER_SIZE

#define RMFF_FILEHEADER_SIZE 18

## ◆ RMFF_HEADER_SIZE

#define RMFF_HEADER_SIZE 0x12

## ◆ RMFF_MDPRHEADER_SIZE

#define RMFF_MDPRHEADER_SIZE 46

## ◆ RMFF_PROPHEADER_SIZE

#define RMFF_PROPHEADER_SIZE 50

## Function Documentation

## ◆ rmff_dump_header()

int rmff_dump_header | ( | rmff_header_t * | h,
|  | void * | buffer,
|  | int | max
| ) |  |

References rmff_header_t::cont, rmff_header_t::data, rmff_header_t::fileheader, rmff_header_t::prop, rmff_dump_cont(), rmff_dump_dataheader(), rmff_dump_fileheader(), rmff_dump_mdpr(), rmff_dump_prop(), and rmff_header_t::streams.

Referenced by rtsp_session_start().

## ◆ rmff_dump_pheader()

void rmff_dump_pheader | ( | rmff_pheader_t * | h,
|  | uint8_t * | data
| ) |  |

References rmff_pheader_t::flags, rmff_pheader_t::length, rmff_pheader_t::object_version, rmff_pheader_t::reserved, rmff_pheader_t::stream_number, and rmff_pheader_t::timestamp.

Referenced by real_get_rdt_chunk().

## ◆ rmff_fix_header()

void rmff_fix_header | ( | rmff_header_t * | h | ) |

References rmff_prop_t::avg_bit_rate, rmff_prop_t::avg_packet_size, rmff_header_t::cont, rmff_header_t::data, rmff_prop_t::data_offset, DATA_TAG, rmff_prop_t::duration, rmff_fileheader_t::file_version, rmff_header_t::fileheader, lprintf, rmff_data_t::next_data_header, rmff_fileheader_t::num_headers, rmff_prop_t::num_packets, rmff_data_t::num_packets, rmff_prop_t::num_streams, rmff_fileheader_t::object_id, rmff_data_t::object_id, rmff_fileheader_t::object_version, rmff_data_t::object_version, rmff_header_t::prop, RMF_TAG, rmff_fileheader_t::size, rmff_prop_t::size, rmff_mdpr_t::size, rmff_cont_t::size, rmff_data_t::size, and rmff_header_t::streams.

Referenced by real_parse_sdp(), and real_setup_and_get_header().

## ◆ rmff_new_cont()

rmff_cont_t * rmff_new_cont | ( | const char * | title,
|  | const char * | author,
|  | const char * | copyright,
|  | const char * | comment
| ) |  |

References rmff_cont_t::author, rmff_cont_t::author_len, rmff_cont_t::comment, rmff_cont_t::comment_len, CONT_TAG, rmff_cont_t::copyright, rmff_cont_t::copyright_len, NULL, rmff_cont_t::object_id, rmff_cont_t::object_version, rmff_cont_t::size, rmff_cont_t::title, and rmff_cont_t::title_len.

Referenced by real_parse_sdp().

## ◆ rmff_new_dataheader()

rmff_data_t * rmff_new_dataheader | ( | uint32_t | num_packets,
|  | uint32_t | next_data_header
| ) |  |

References DATA_TAG, rmff_data_t::next_data_header, rmff_data_t::num_packets, rmff_data_t::object_id, rmff_data_t::object_version, and rmff_data_t::size.

Referenced by real_parse_sdp().

## ◆ rmff_new_fileheader()

rmff_fileheader_t * rmff_new_fileheader | ( | uint32_t | num_headers | ) |

References rmff_fileheader_t::file_version, rmff_fileheader_t::num_headers, rmff_fileheader_t::object_id, rmff_fileheader_t::object_version, RMF_TAG, and rmff_fileheader_t::size.

Referenced by real_parse_sdp().

## ◆ rmff_new_mdpr()

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
| ) |  |

References rmff_mdpr_t::avg_bit_rate, rmff_mdpr_t::avg_packet_size, rmff_mdpr_t::duration, rmff_mdpr_t::max_bit_rate, rmff_mdpr_t::max_packet_size, MDPR_TAG, rmff_mdpr_t::mime_type, rmff_mdpr_t::mime_type_size, rmff_mdpr_t::mlti_data, NULL, rmff_mdpr_t::object_id, rmff_mdpr_t::object_version, rmff_mdpr_t::preroll, rmff_mdpr_t::size, rmff_mdpr_t::start_time, rmff_mdpr_t::stream_name, rmff_mdpr_t::stream_name_size, rmff_mdpr_t::stream_number, rmff_mdpr_t::type_specific_data, rmff_mdpr_t::type_specific_len, and xine_memdup().

Referenced by real_parse_sdp().

## ◆ rmff_new_prop()

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
| ) |  |

References rmff_prop_t::avg_bit_rate, rmff_prop_t::avg_packet_size, rmff_prop_t::data_offset, rmff_prop_t::duration, rmff_prop_t::flags, rmff_prop_t::index_offset, rmff_prop_t::max_bit_rate, rmff_prop_t::max_packet_size, rmff_prop_t::num_packets, rmff_prop_t::num_streams, rmff_prop_t::object_id, rmff_prop_t::object_version, rmff_prop_t::preroll, PROP_TAG, and rmff_prop_t::size.

Referenced by real_parse_sdp().