HowieError EngineImpl::createStream(
      const HowieStreamCreationParams &params,
      HowieStream **out_stream) {
    HOWIE_TRACE_FN(HOWIE_TRACE_LEVEL_CALLS)
    HowieError result = HOWIE_ERROR_UNKNOWN;

    if (out_stream) {
      *out_stream = nullptr;
    }

    StreamImpl *stream = new StreamImpl(deviceCharacteristics_, params);
    if (stream) {
      result = DoAsync([=]{stream->init(engineItf_, outputMixObject_, params);});
      HOWIE_CHECK(result);
    }

    if (out_stream && HOWIE_SUCCEEDED(result)) {
      *out_stream = stream;
    }
    return result;
  }
  HowieError EngineImpl::createStream(
      const HowieStreamCreationParams &params,
      HowieStream **out_stream) {
    HowieError result = HOWIE_ERROR_UNKNOWN;

    __android_log_print(ANDROID_LOG_VERBOSE, "HOWIE", __func__);
    if (out_stream) {
      *out_stream = nullptr;
    }

    StreamImpl *stream = new StreamImpl(deviceCharacteristics, params);
    if (stream) {
      result = stream->init(engineItf_, outputMixObject_, params);
      HOWIE_CHECK(result);
    }

    if (out_stream && HOWIE_SUCCEEDED(result)) {
      *out_stream = stream;
    }
    return result;
  }