comparison mmf.c @ 2771:d52c718e83f9 libavformat

Use dynamically allocated ByteIOContext in AVFormatContext patch by: Bj«Órn Axelsson, bjorn d axelsson a intinor d se thread: [PATCH] Remove static ByteIOContexts, 06 nov 2007
author andoma
date Wed, 21 Nov 2007 07:41:00 +0000
parents 213268d7594e
children 7a0230981402
comparison
equal deleted inserted replaced
2770:a7e42cf4b364 2771:d52c718e83f9
58 } 58 }
59 59
60 static int mmf_write_header(AVFormatContext *s) 60 static int mmf_write_header(AVFormatContext *s)
61 { 61 {
62 MMFContext *mmf = s->priv_data; 62 MMFContext *mmf = s->priv_data;
63 ByteIOContext *pb = &s->pb; 63 ByteIOContext *pb = s->pb;
64 offset_t pos; 64 offset_t pos;
65 int rate; 65 int rate;
66 66
67 rate = mmf_rate_code(s->streams[0]->codec->sample_rate); 67 rate = mmf_rate_code(s->streams[0]->codec->sample_rate);
68 if(rate < 0) { 68 if(rate < 0) {
106 return 0; 106 return 0;
107 } 107 }
108 108
109 static int mmf_write_packet(AVFormatContext *s, AVPacket *pkt) 109 static int mmf_write_packet(AVFormatContext *s, AVPacket *pkt)
110 { 110 {
111 ByteIOContext *pb = &s->pb; 111 ByteIOContext *pb = s->pb;
112 put_buffer(pb, pkt->data, pkt->size); 112 put_buffer(pb, pkt->data, pkt->size);
113 return 0; 113 return 0;
114 } 114 }
115 115
116 /* Write a variable-length symbol */ 116 /* Write a variable-length symbol */
125 } 125 }
126 } 126 }
127 127
128 static int mmf_write_trailer(AVFormatContext *s) 128 static int mmf_write_trailer(AVFormatContext *s)
129 { 129 {
130 ByteIOContext *pb = &s->pb; 130 ByteIOContext *pb = s->pb;
131 MMFContext *mmf = s->priv_data; 131 MMFContext *mmf = s->priv_data;
132 offset_t pos, size; 132 offset_t pos, size;
133 int gatetime; 133 int gatetime;
134 134
135 if (!url_is_streamed(&s->pb)) { 135 if (!url_is_streamed(s->pb)) {
136 /* Fill in length fields */ 136 /* Fill in length fields */
137 end_tag_be(pb, mmf->awapos); 137 end_tag_be(pb, mmf->awapos);
138 end_tag_be(pb, mmf->atrpos); 138 end_tag_be(pb, mmf->atrpos);
139 end_tag_be(pb, 8); 139 end_tag_be(pb, 8);
140 140
181 static int mmf_read_header(AVFormatContext *s, 181 static int mmf_read_header(AVFormatContext *s,
182 AVFormatParameters *ap) 182 AVFormatParameters *ap)
183 { 183 {
184 MMFContext *mmf = s->priv_data; 184 MMFContext *mmf = s->priv_data;
185 unsigned int tag; 185 unsigned int tag;
186 ByteIOContext *pb = &s->pb; 186 ByteIOContext *pb = s->pb;
187 AVStream *st; 187 AVStream *st;
188 offset_t file_size, size; 188 offset_t file_size, size;
189 int rate, params; 189 int rate, params;
190 190
191 tag = get_le32(pb); 191 tag = get_le32(pb);
263 { 263 {
264 MMFContext *mmf = s->priv_data; 264 MMFContext *mmf = s->priv_data;
265 AVStream *st; 265 AVStream *st;
266 int ret, size; 266 int ret, size;
267 267
268 if (url_feof(&s->pb)) 268 if (url_feof(s->pb))
269 return AVERROR(EIO); 269 return AVERROR(EIO);
270 st = s->streams[0]; 270 st = s->streams[0];
271 271
272 size = MAX_SIZE; 272 size = MAX_SIZE;
273 if(size > mmf->data_size) 273 if(size > mmf->data_size)
278 278
279 if (av_new_packet(pkt, size)) 279 if (av_new_packet(pkt, size))
280 return AVERROR(EIO); 280 return AVERROR(EIO);
281 pkt->stream_index = 0; 281 pkt->stream_index = 0;
282 282
283 ret = get_buffer(&s->pb, pkt->data, pkt->size); 283 ret = get_buffer(s->pb, pkt->data, pkt->size);
284 if (ret < 0) 284 if (ret < 0)
285 av_free_packet(pkt); 285 av_free_packet(pkt);
286 286
287 mmf->data_size -= ret; 287 mmf->data_size -= ret;
288 288