00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef FFMPEG_RM_H
00023 #define FFMPEG_RM_H
00024
00025 #include "avformat.h"
00026
00027
00028 typedef struct {
00029 int nb_packets;
00030 int packet_total_size;
00031 int packet_max_size;
00032
00033 int bit_rate;
00034 float frame_rate;
00035 int nb_frames;
00036 int total_frames;
00037 int num;
00038 AVCodecContext *enc;
00039 } StreamInfo;
00040
00041 typedef struct {
00042 StreamInfo streams[2];
00043 StreamInfo *audio_stream, *video_stream;
00044 int data_pos;
00045 int nb_packets;
00046 int old_format;
00047 int current_stream;
00048 int remaining_len;
00049 uint8_t *videobuf;
00050 int videobufsize;
00051 int videobufpos;
00052 int curpic_num;
00053 int cur_slice, slices;
00054 int64_t pktpos;
00055
00056 uint8_t *audiobuf;
00057 int64_t audiotimestamp;
00058 int sub_packet_cnt;
00059 int sub_packet_size, sub_packet_h, coded_framesize;
00060 int audio_stream_num;
00061 int audio_pkt_cnt;
00062 int audio_framesize;
00063 int sub_packet_lengths[16];
00064 } RMContext;
00065
00075 int ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVStream *st);
00076
00091 int ff_rm_parse_packet (AVFormatContext *s, AVStream *st, int len,
00092 AVPacket *pkt, int *seq, int *flags, int64_t *ts);
00093
00106 void ff_rm_retrieve_cache (AVFormatContext *s, AVStream *st, AVPacket *pkt);
00107
00108 #endif