Oh...it's not fixed frame...
To confirm it, I checked return value of BASS_ChannelGetData.
According to BASS_ChannelGetData description...
Return value
If an error occurs, -1 is returned, use BASS_ErrorGetCode to get the error code. When requesting FFT data, the number of bytes read from the channel (to perform the FFT) is returned.
So using BASS_DATA_FFT256, BASS_ChannelGetData uses 256 samples(each channel) to perform FFT.