• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/libav-0.8.8/libavformat/

Lines Matching defs:qdm

75 static int qdm2_parse_config(PayloadContext *qdm, AVStream *st,
90 /* FIXME: set default qdm->block_size */
95 qdm->subpkts_per_block = p[2];
100 qdm->block_type = AV_RB16(p + 2);
120 qdm->block_size = AV_RB32(p + 26);
145 * or more superblocks (containing qdm->subpkts_per_block subpackets
152 static int qdm2_parse_subpacket(PayloadContext *qdm, AVStream *st,
174 to_copy = FFMIN(len + (p - &buf[1]), 0x800 - qdm->len[id]);
175 memcpy(&qdm->buf[id][qdm->len[id]], buf + 1, to_copy);
176 qdm->len[id] += to_copy;
186 static int qdm2_restore_block(PayloadContext *qdm, AVStream *st, AVPacket *pkt)
192 assert(qdm->cache > 0);
194 if (qdm->len[n] > 0)
198 if ((res = av_new_packet(pkt, qdm->block_size)) < 0)
205 if (qdm->len[n] > 0xff) {
206 *p++ = qdm->block_type | 0x80;
207 AV_WB16(p, qdm->len[n]);
210 *p++ = qdm->block_type;
211 *p++ = qdm->len[n];
213 if ((include_csum = (qdm->block_type == 2 || qdm->block_type == 4))) {
219 to_copy = FFMIN(qdm->len[n], pkt->size - (p - pkt->data));
220 memcpy(p, qdm->buf[n], to_copy);
221 qdm->len[n] = 0;
228 for (q = pkt->data; q < &pkt->data[qdm->block_size]; q++)
237 static int qdm2_parse_packet(AVFormatContext *s, PayloadContext *qdm,
251 if (qdm->n_pkts > 0) {
254 qdm->n_pkts = 0;
255 memset(qdm->len, 0, sizeof(qdm->len));
258 if ((res = qdm2_parse_config(qdm, st, ++p, end)) < 0)
274 if ((res = qdm2_parse_subpacket(qdm, st, p, end)) < 0)
279 qdm->timestamp = *timestamp;
280 if (++qdm->n_pkts < qdm->subpkts_per_block)
282 qdm->cache = 0;
284 if (qdm->len[n] > 0)
285 qdm->cache++;
289 if (!qdm->cache || (res = qdm2_restore_block(qdm, st, pkt)) < 0)
291 if (--qdm->cache == 0)
292 qdm->n_pkts = 0;
294 *timestamp = qdm->timestamp;
295 qdm->timestamp = RTP_NOTS_VALUE;
297 return (qdm->cache > 0) ? 1 : 0;
305 static void qdm2_extradata_free(PayloadContext *qdm)
307 av_free(qdm);