Lines Matching refs:mms
33 #include "mms.h"
57 MMSContext mms;
66 MMSContext *mms = &mmsh->mms;
67 ffurl_closep(&mms->mms_hd);
68 av_freep(&mms->streams);
69 av_freep(&mms->asf_header);
75 MMSContext *mms = &mmsh->mms;
81 res = ffurl_read_complete(mms->mms_hd, chunk_header, CHUNK_HEADER_LENGTH);
103 res = ffurl_read_complete(mms->mms_hd, ext_header, ext_header_len);
116 MMSContext *mms = &mmsh->mms;
118 if (len > sizeof(mms->in_buffer)) {
121 len, sizeof(mms->in_buffer));
124 res = ffurl_read_complete(mms->mms_hd, mms->in_buffer, len);
130 if (len > mms->asf_packet_len) {
132 "Chunk length %d exceed packet length %d\n",len, mms->asf_packet_len);
135 memset(mms->in_buffer + len, 0, mms->asf_packet_len - len); // padding
137 mms->read_in_ptr = mms->in_buffer;
138 mms->remaining_in_len = mms->asf_packet_len;
144 MMSContext *mms = &mmsh->mms;
155 if (!mms->header_parsed) {
156 if (mms->asf_header) {
157 if (len != mms->asf_header_size) {
158 mms->asf_header_size = len;
160 mms->asf_header_size, len);
161 av_freep(&mms->asf_header);
164 mms->asf_header = av_mallocz(len);
165 if (!mms->asf_header) {
168 mms->asf_header_size = len;
170 if (len > mms->asf_header_size) {
173 len, mms->asf_header_size);
176 res = ffurl_read_complete(mms->mms_hd, mms->asf_header, len);
182 mms->asf_header_size = len;
183 if (!mms->header_parsed) {
184 res = ff_mms_asf_header_parser(mms);
185 mms->header_parsed = 1;
193 if (len > sizeof(mms->in_buffer)) {
196 len, sizeof(mms->in_buffer));
199 res = ffurl_read_complete(mms->mms_hd, mms->in_buffer, len);
219 MMSContext *mms;
222 mms = &mmsh->mms;
231 if (ffurl_alloc(&mms->mms_hd, httpname, AVIO_FLAG_READ,
245 av_opt_set(mms->mms_hd->priv_data, "headers", headers, 0);
247 if (!mms->mms_hd->protocol_whitelist && h->protocol_whitelist) {
248 mms->mms_hd->protocol_whitelist = av_strdup(h->protocol_whitelist);
249 if (!mms->mms_hd->protocol_whitelist) {
255 err = ffurl_connect(mms->mms_hd, NULL);
266 ffurl_closep(&mms->mms_hd);
268 if ((err = ffurl_alloc(&mms->mms_hd, httpname, AVIO_FLAG_READ,
272 stream_selection = av_mallocz(mms->stream_num * 19 + 1);
275 for (i = 0; i < mms->stream_num; i++) {
277 err = snprintf(tmp, sizeof(tmp), "ffff:%d:0 ", mms->streams[i].id);
280 av_strlcat(stream_selection, tmp, mms->stream_num * 19 + 1);
294 host, port, mmsh->request_seq++, mms->stream_num, stream_selection, timestamp);
301 av_opt_set(mms->mms_hd->priv_data, "headers", headers, 0);
303 err = ffurl_connect(mms->mms_hd, NULL);
330 MMSContext *mms = &mmsh->mms;
341 mms->header_parsed = 0;
360 MMSContext *mms = &mmsh->mms;
362 if (mms->asf_header_read_size < mms->asf_header_size) {
364 res = ff_mms_read_header(mms, buf, size);
366 if (!mms->remaining_in_len && (res = handle_chunk_type(mmsh)))
368 res = ff_mms_read_data(mms, buf, size);
391 mmsh->mms.asf_header_read_size = mmsh->mms.asf_header_size;
403 MMSContext *mms = &mmsh->mms;
406 return mms->asf_header_read_size + mms->remaining_in_len + mmsh->chunk_seq * (int64_t)mms->asf_packet_len;