Mercurial > libavformat.hg
diff rmenc.c @ 4097:f8a743bd2df8 libavformat
Split RMContext into RMDemux/MuxContext and make them private in rmdec/enc.c.
Reason for this is that there are no shared entries in the demuxer/muxer
context, making it a mystery as to why it was shared between the two. See
"[PATCH] clean rmdemux/muxcontext" patch on mailinglist.
author | rbultje |
---|---|
date | Sat, 13 Dec 2008 21:40:20 +0000 |
parents | 8b4be8aa2324 |
children | 77e0c7511d41 |
line wrap: on
line diff
--- a/rmenc.c Sat Dec 13 21:37:27 2008 +0000 +++ b/rmenc.c Sat Dec 13 21:40:20 2008 +0000 @@ -21,6 +21,25 @@ #include "avformat.h" #include "rm.h" +typedef struct { + int nb_packets; + int packet_total_size; + int packet_max_size; + /* codec related output */ + int bit_rate; + float frame_rate; + int nb_frames; /* current frame number */ + int total_frames; /* total number of frames */ + int num; + AVCodecContext *enc; +} StreamInfo; + +typedef struct { + StreamInfo streams[2]; + StreamInfo *audio_stream, *video_stream; + int data_pos; /* position of the data after the header */ +} RMMuxContext; + /* in ms */ #define BUFFER_DURATION 0 @@ -44,7 +63,7 @@ static void rv10_write_header(AVFormatContext *ctx, int data_size, int index_pos) { - RMContext *rm = ctx->priv_data; + RMMuxContext *rm = ctx->priv_data; ByteIOContext *s = ctx->pb; StreamInfo *stream; unsigned char *data_offset_ptr, *start_ptr; @@ -271,7 +290,7 @@ static int rm_write_header(AVFormatContext *s) { - RMContext *rm = s->priv_data; + RMMuxContext *rm = s->priv_data; StreamInfo *stream; int n; AVCodecContext *codec; @@ -315,7 +334,7 @@ static int rm_write_audio(AVFormatContext *s, const uint8_t *buf, int size, int flags) { uint8_t *buf1; - RMContext *rm = s->priv_data; + RMMuxContext *rm = s->priv_data; ByteIOContext *pb = s->pb; StreamInfo *stream = rm->audio_stream; int i; @@ -339,7 +358,7 @@ static int rm_write_video(AVFormatContext *s, const uint8_t *buf, int size, int flags) { - RMContext *rm = s->priv_data; + RMMuxContext *rm = s->priv_data; ByteIOContext *pb = s->pb; StreamInfo *stream = rm->video_stream; int key_frame = !!(flags & PKT_FLAG_KEY); @@ -393,7 +412,7 @@ static int rm_write_trailer(AVFormatContext *s) { - RMContext *rm = s->priv_data; + RMMuxContext *rm = s->priv_data; int data_size, index_pos, i; ByteIOContext *pb = s->pb; @@ -435,7 +454,7 @@ NULL_IF_CONFIG_SMALL("RM format"), "application/vnd.rn-realmedia", "rm,ra", - sizeof(RMContext), + sizeof(RMMuxContext), CODEC_ID_AC3, CODEC_ID_RV10, rm_write_header,