Lines Matching refs:data
42 * RTP/Xiph specific private data.
53 static void xiph_close_context(PayloadContext * data)
55 ffio_free_dyn_buf(&data->fragment);
56 av_freep(&data->split_buf);
60 static int xiph_handle_packet(AVFormatContext *ctx, PayloadContext *data,
69 if (!data->split_buf || data->split_pos + 2 > data->split_buf_len ||
70 data->split_pkts <= 0) {
71 av_log(ctx, AV_LOG_ERROR, "No more data to return\n");
74 pkt_len = AV_RB16(data->split_buf + data->split_pos);
75 data->split_pos += 2;
76 if (pkt_len > data->split_buf_len - data->split_pos) {
77 av_log(ctx, AV_LOG_ERROR, "Not enough data to return\n");
85 memcpy(pkt->data, data->split_buf + data->split_pos, pkt_len);
86 data->split_pos += pkt_len;
87 data->split_pkts--;
88 return data->split_pkts > 0;
110 if (ident != data->ident) {
131 memcpy(pkt->data, buf, pkt_len);
137 if (len > data->split_buf_size || !data->split_buf) {
138 av_freep(&data->split_buf);
139 data->split_buf_size = 2 * len;
140 data->split_buf = av_malloc(data->split_buf_size);
141 if (!data->split_buf) {
147 memcpy(data->split_buf, buf, len);
148 data->split_buf_len = len;
149 data->split_pos = 0;
150 data->split_pkts = num_pkts;
157 // start of xiph data fragment
160 // end packet has been lost somewhere, so drop buffered data
161 ffio_free_dyn_buf(&data->fragment);
163 if((res = avio_open_dyn_buf(&data->fragment)) < 0)
166 avio_write(data->fragment, buf, pkt_len);
167 data->timestamp = *timestamp;
171 if (data->timestamp != *timestamp) {
174 ffio_free_dyn_buf(&data->fragment);
178 if (!data->fragment) {
184 // copy data to fragment buffer
185 avio_write(data->fragment, buf, pkt_len);
188 // end of xiph data packet
189 int ret = ff_rtp_finalize_packet(pkt, &data->fragment, st->index);
354 PayloadContext *data, const char *line)
362 return ff_parse_fmtp(s, s->streams[st_index], data, p,