diff --git a/filters/f_async_queue.c b/filters/f_async_queue.c index 8aa2041dd9..84f38e9460 100644 --- a/filters/f_async_queue.c +++ b/filters/f_async_queue.c @@ -88,6 +88,8 @@ static int64_t frame_get_samples(struct async_queue *q, struct mp_frame frame) struct mp_aframe *aframe = frame.data; res = mp_aframe_get_size(aframe); } + if (mp_frame_is_signaling(frame)) + return 0; return res; } diff --git a/filters/f_async_queue.h b/filters/f_async_queue.h index dcc5ba57eb..50678faec1 100644 --- a/filters/f_async_queue.h +++ b/filters/f_async_queue.h @@ -65,7 +65,8 @@ struct mp_filter *mp_async_queue_create_filter(struct mp_filter *parent, enum mp_async_queue_sample_unit { AQUEUE_UNIT_FRAME = 0, // a frame counts as 1 sample - AQUEUE_UNIT_SAMPLES, // number of audio samples (1 for other media types) + AQUEUE_UNIT_SAMPLES, // number of audio samples (1 for other media types, + // 0 for signaling) }; // Setting this struct to all-0 is equivalent to defaults.