Lines Matching refs:queue

68  * Remove the first sample from the sample queue.
70 static void sample_queue_pop(HintSampleQueue *queue)
72 if (queue->len <= 0)
74 if (queue->samples[0].own_data)
75 av_freep(&queue->samples[0].data);
76 queue->len--;
77 memmove(queue->samples, queue->samples + 1, sizeof(HintSample)*queue->len);
81 * Empty the sample queue, releasing all memory.
83 static void sample_queue_free(HintSampleQueue *queue)
86 for (i = 0; i < queue->len; i++)
87 if (queue->samples[i].own_data)
88 av_freep(&queue->samples[i].data);
89 av_freep(&queue->samples);
90 queue->len = 0;
91 queue->size = 0;
95 * Add a reference to the sample data to the sample queue. The data is
99 static void sample_queue_push(HintSampleQueue *queue, const uint8_t *data, int size,
106 if (!queue->samples || queue->len >= queue->size) {
108 samples = av_realloc_array(queue->samples, queue->size + 10, sizeof(HintSample));
111 queue->size += 10;
112 queue->samples = samples;
114 queue->samples[queue->len].data = data;
115 queue->samples[queue->len].size = size;
116 queue->samples[queue->len].sample_number = sample;
117 queue->samples[queue->len].offset = 0;
118 queue->samples[queue->len].own_data = 0;
119 queue->len++;
123 * Make local copies of all referenced sample data in the queue.
125 static void sample_queue_retain(HintSampleQueue *queue)
128 for (i = 0; i < queue->len; ) {
129 HintSample *sample = &queue->samples[i];
134 memmove(queue->samples + i, queue->samples + i + 1,
135 sizeof(HintSample)*(queue->len - i - 1));
136 queue->len--;
201 * Look for segments in samples in the sample queue matching the data
202 * in ptr. Samples not matching are removed from the queue. If a match
206 * @param data data to find matches for in the sample queue
208 * @param queue samples used for looking for matching segments
216 HintSampleQueue *queue, int *pos,
220 while (queue->len > 0) {
221 HintSample *sample = &queue->samples[0];
234 sample_queue_pop(queue); /* Not enough useful data left */
244 sample_queue_pop(queue);
284 HintSampleQueue *queue)
289 if (find_sample_match(data, size, queue, &pos, &match_sample,