Lines Matching refs:mms
23 #include "mms.h"
29 int ff_mms_read_header(MMSContext *mms, uint8_t *buf, const int size)
33 int remaining_size = mms->asf_header_size - mms->asf_header_read_size;
35 pos = mms->asf_header + mms->asf_header_read_size;
37 if (mms->asf_header_read_size == mms->asf_header_size) {
38 av_freep(&mms->asf_header); // which contains asf header
40 mms->asf_header_read_size += size_to_copy;
44 int ff_mms_read_data(MMSContext *mms, uint8_t *buf, const int size)
47 read_size = FFMIN(size, mms->remaining_in_len);
48 memcpy(buf, mms->read_in_ptr, read_size);
49 mms->remaining_in_len -= read_size;
50 mms->read_in_ptr += read_size;
54 int ff_mms_asf_header_parser(MMSContext *mms)
56 uint8_t *p = mms->asf_header;
59 mms->stream_num = 0;
61 if (mms->asf_header_size < sizeof(ff_asf_guid) * 2 + 22 ||
63 av_log(mms->mms_hd, AV_LOG_ERROR,
65 mms->asf_header_size);
69 end = mms->asf_header + mms->asf_header_size;
80 av_log(mms->mms_hd, AV_LOG_ERROR,
88 mms->asf_packet_len = AV_RL32(p + sizeof(ff_asf_guid) * 2 + 64);
89 if (mms->asf_packet_len <= 0 || mms->asf_packet_len > sizeof(mms->in_buffer)) {
90 av_log(mms->mms_hd, AV_LOG_ERROR,
92 mms->asf_packet_len);
103 if (mms->stream_num < MMS_MAX_STREAMS &&
104 46 + mms->stream_num * 6 < sizeof(mms->out_buffer)) {
105 mms->streams = av_fast_realloc(mms->streams,
106 &mms->nb_streams_allocated,
107 (mms->stream_num + 1) * sizeof(MMSStream));
108 if (!mms->streams)
110 mms->streams[mms->stream_num].id = stream_id;
111 mms->stream_num++;
113 av_log(mms->mms_hd, AV_LOG_ERROR,
124 av_log(mms->mms_hd, AV_LOG_ERROR,
132 av_log(mms->mms_hd, AV_LOG_ERROR,
139 av_log(mms->mms_hd, AV_LOG_ERROR,
149 av_log(mms->mms_hd, AV_LOG_ERROR,