code: def _decompress_into_buffer(self, out_buffer):
          
          zresult = lib.ZSTD_decompressStream(self._decompressor._dctx,
                                              out_buffer, self._in_buffer)
  
          if self._in_buffer.pos == self._in_buffer.size:
              self._in_buffer.src = ffi.NULL
              self._in_buffer.pos = 0
              self._in_buffer.size = 0
              self._source_buffer = None
  
              if not hasattr(self._source, 'read'):
                  self._finished_input = True
  
          if lib.ZSTD_isError(zresult):
              raise ZstdError('zstd decompress error: %s' %
                              _zstd_error(zresult))
  
          # Emit data if there is data AND either:
          # a) output buffer is full (read amount is satisfied)
          # b) we're at end of a frame and not in frame spanning mode
          return (out_buffer.pos and
                  (out_buffer.pos == out_buffer.size or
                   zresult == 0 and not self._read_across_frames))
docs: Decompress available input into an output buffer.
  
          Returns True if data in output buffer should be emitted.