LZ4_decompress_safe() decodes blocks,
while LZ4F_compressFrame() compresses frames.
They are 2 different formats.
They are unrelated : blocks are subdivisions of frames.
But effectively, from a decoder perspective, it must be one way or another.
In order to be compatible with LZ4_decompress(),
one needs to compress blocks,
using, typically, LZ4_compress_default().
Note that, in order to decompress blocks, one needs to transport/provide metadata,
such as the size of said block, and decompressed size (or at least an upper bound).
Such metadata is not part of the block format, and must be provided out-of-band.