Sample rate discrepancy?
Hello, I have a node created with pw_filter_new_simple and the following properties:
PW_KEY_MEDIA_TYPE, "Audio",
PW_KEY_MEDIA_CATEGORY, "Duplex",
PW_KEY_MEDIA_ROLE, "DSP",
PW_KEY_MEDIA_NAME, "ossia",
PW_KEY_NODE_LATENCY, "256/44100",
PW_KEY_NODE_RATE, "1/44100",
PW_KEY_NODE_FORCE_QUANTUM, "true",
PW_KEY_NODE_LOCK_QUANTUM, "true",
PW_KEY_NODE_ALWAYS_PROCESS, "true",
PW_KEY_NODE_LOCK_RATE, "true",
PW_KEY_NODE_FORCE_RATE, "true",
PW_KEY_NODE_PAUSE_ON_IDLE, "false",
PW_KEY_NODE_SUSPEND_ON_IDLE, "false",
It shows up in pw-top as this:
R 64 256 44100 47.6us 39.1us 0.01 0.01 0 + ossia score
but from within my process function, given struct spa_io_position* position
, I see position->clock.rate == 1/48000
and the function is indeed called at a 256/48000 rate (I observe 5.33 milliseconds between calls). Where does this mismatch happen, what can I do?
Setting
PIPEWIRE_LATENCY=256/44100
PIPEWIRE_QUANTUM=256/44100
seems to have no effect with pipewire directly. Going through the JACK API works.