Lines Matching refs:align
86 GstAudioStreamAlign *align; in gst_audio_stream_align_new() local
92 align = g_new0 (GstAudioStreamAlign, 1); in gst_audio_stream_align_new()
93 align->rate = rate; in gst_audio_stream_align_new()
94 align->alignment_threshold = alignment_threshold; in gst_audio_stream_align_new()
95 align->discont_wait = discont_wait; in gst_audio_stream_align_new()
97 align->timestamp_at_discont = GST_CLOCK_TIME_NONE; in gst_audio_stream_align_new()
98 align->samples_since_discont = 0; in gst_audio_stream_align_new()
99 gst_audio_stream_align_mark_discont (align); in gst_audio_stream_align_new()
101 return align; in gst_audio_stream_align_new()
115 gst_audio_stream_align_copy (const GstAudioStreamAlign * align) in gst_audio_stream_align_copy() argument
119 g_return_val_if_fail (align != NULL, NULL); in gst_audio_stream_align_copy()
122 *copy = *align; in gst_audio_stream_align_copy()
137 gst_audio_stream_align_free (GstAudioStreamAlign * align) in gst_audio_stream_align_free() argument
139 g_return_if_fail (align != NULL); in gst_audio_stream_align_free()
140 g_free (align); in gst_audio_stream_align_free()
154 gst_audio_stream_align_set_rate (GstAudioStreamAlign * align, gint rate) in gst_audio_stream_align_set_rate() argument
156 g_return_if_fail (align != NULL); in gst_audio_stream_align_set_rate()
159 if (align->rate == rate) in gst_audio_stream_align_set_rate()
162 align->rate = rate; in gst_audio_stream_align_set_rate()
163 gst_audio_stream_align_mark_discont (align); in gst_audio_stream_align_set_rate()
177 gst_audio_stream_align_get_rate (const GstAudioStreamAlign * align) in gst_audio_stream_align_get_rate() argument
179 g_return_val_if_fail (align != NULL, 0); in gst_audio_stream_align_get_rate()
181 return align->rate; in gst_audio_stream_align_get_rate()
195 align, GstClockTime alignment_threshold) in gst_audio_stream_align_set_alignment_threshold()
197 g_return_if_fail (align != NULL); in gst_audio_stream_align_set_alignment_threshold()
200 align->alignment_threshold = alignment_threshold; in gst_audio_stream_align_set_alignment_threshold()
215 align) in gst_audio_stream_align_get_alignment_threshold()
217 g_return_val_if_fail (align != NULL, 0); in gst_audio_stream_align_get_alignment_threshold()
219 return align->alignment_threshold; in gst_audio_stream_align_get_alignment_threshold()
232 gst_audio_stream_align_set_discont_wait (GstAudioStreamAlign * align, in gst_audio_stream_align_set_discont_wait() argument
235 g_return_if_fail (align != NULL); in gst_audio_stream_align_set_discont_wait()
238 align->discont_wait = discont_wait; in gst_audio_stream_align_set_discont_wait()
252 gst_audio_stream_align_get_discont_wait (const GstAudioStreamAlign * align) in gst_audio_stream_align_get_discont_wait() argument
254 g_return_val_if_fail (align != NULL, 0); in gst_audio_stream_align_get_discont_wait()
256 return align->discont_wait; in gst_audio_stream_align_get_discont_wait()
268 gst_audio_stream_align_mark_discont (GstAudioStreamAlign * align) in gst_audio_stream_align_mark_discont() argument
270 g_return_if_fail (align != NULL); in gst_audio_stream_align_mark_discont()
272 align->next_offset = -1; in gst_audio_stream_align_mark_discont()
273 align->discont_time = GST_CLOCK_TIME_NONE; in gst_audio_stream_align_mark_discont()
289 align) in gst_audio_stream_align_get_timestamp_at_discont()
291 g_return_val_if_fail (align != NULL, GST_CLOCK_TIME_NONE); in gst_audio_stream_align_get_timestamp_at_discont()
293 return align->timestamp_at_discont; in gst_audio_stream_align_get_timestamp_at_discont()
309 align) in gst_audio_stream_align_get_samples_since_discont()
311 g_return_val_if_fail (align != NULL, 0); in gst_audio_stream_align_get_samples_since_discont()
313 return align->samples_since_discont; in gst_audio_stream_align_get_samples_since_discont()
349 gst_audio_stream_align_process (GstAudioStreamAlign * align, in gst_audio_stream_align_process() argument
357 g_return_val_if_fail (align != NULL, FALSE); in gst_audio_stream_align_process()
361 gst_util_uint64_scale (start_time, ABS (align->rate), GST_SECOND); in gst_audio_stream_align_process()
365 gst_util_uint64_scale_int (end_offset, GST_SECOND, ABS (align->rate)); in gst_audio_stream_align_process()
369 if (align->next_offset == (guint64) - 1 || discont) { in gst_audio_stream_align_process()
375 if (align->rate > 0) { in gst_audio_stream_align_process()
376 diff = ABSDIFF (start_offset, align->next_offset); in gst_audio_stream_align_process()
378 diff = ABSDIFF (end_offset, align->next_offset); in gst_audio_stream_align_process()
382 gst_util_uint64_scale_int (align->alignment_threshold, in gst_audio_stream_align_process()
383 ABS (align->rate), GST_SECOND); in gst_audio_stream_align_process()
387 if (align->discont_wait > 0) { in gst_audio_stream_align_process()
388 if (align->discont_time == GST_CLOCK_TIME_NONE) { in gst_audio_stream_align_process()
389 align->discont_time = align->rate > 0 ? start_time : end_time; in gst_audio_stream_align_process()
390 } else if ((align->rate > 0 in gst_audio_stream_align_process()
392 align->discont_time) >= align->discont_wait) in gst_audio_stream_align_process()
393 || (align->rate < 0 in gst_audio_stream_align_process()
395 align->discont_time) >= align->discont_wait)) { in gst_audio_stream_align_process()
397 align->discont_time = GST_CLOCK_TIME_NONE; in gst_audio_stream_align_process()
402 } else if (G_UNLIKELY (align->discont_time != GST_CLOCK_TIME_NONE)) { in gst_audio_stream_align_process()
404 align->discont_time = GST_CLOCK_TIME_NONE; in gst_audio_stream_align_process()
410 if (align->next_offset != (guint64) - 1) in gst_audio_stream_align_process()
413 align->next_offset, start_offset); in gst_audio_stream_align_process()
414 align->next_offset = align->rate > 0 ? end_offset : start_offset; in gst_audio_stream_align_process()
415 align->timestamp_at_discont = start_time; in gst_audio_stream_align_process()
416 align->samples_since_discont = 0; in gst_audio_stream_align_process()
419 align->discont_time = GST_CLOCK_TIME_NONE; in gst_audio_stream_align_process()
423 if (align->rate > 0) { in gst_audio_stream_align_process()
425 gst_util_uint64_scale (align->next_offset, GST_SECOND, in gst_audio_stream_align_process()
426 ABS (align->rate)); in gst_audio_stream_align_process()
428 start_offset = align->next_offset; in gst_audio_stream_align_process()
429 align->next_offset += n_samples; in gst_audio_stream_align_process()
432 gst_util_uint64_scale (align->next_offset, GST_SECOND, in gst_audio_stream_align_process()
433 ABS (align->rate)) - timestamp; in gst_audio_stream_align_process()
435 guint64 old_offset = align->next_offset; in gst_audio_stream_align_process()
437 if (align->next_offset > n_samples) in gst_audio_stream_align_process()
438 align->next_offset -= n_samples; in gst_audio_stream_align_process()
440 align->next_offset = 0; in gst_audio_stream_align_process()
441 start_offset = align->next_offset; in gst_audio_stream_align_process()
444 gst_util_uint64_scale (align->next_offset, GST_SECOND, in gst_audio_stream_align_process()
445 ABS (align->rate)); in gst_audio_stream_align_process()
449 ABS (align->rate)) - timestamp; in gst_audio_stream_align_process()
453 align->samples_since_discont += n_samples; in gst_audio_stream_align_process()