RTMPWriter::RTMPWriter() 
  :rtmp(NULL)
  ,state(RW_STATE_NONE)
  ,cb_disconnect(NULL)
  ,cb_user(NULL)
{

  //#if !defined(NDEBUG)
  RTMP_LogSetLevel(RTMP_LOGDEBUG);
  RTMP_LogSetOutput(stderr);
  //#endif

  signal(SIGPIPE, rtmp_sigpipe_handler);
  // signal(SIGPIPE, SIG_IGN);
  
}
LibRtmp::LibRtmp(bool isNeedLog, bool isNeedRecord)
{
    if (isNeedLog)
    {
        flog_ = fopen("librtmp.log", "w");
        RTMP_LogSetLevel(RTMP_LOGDEBUG2);
        RTMP_LogSetOutput(flog_);
    }
    else
    {
        flog_ = NULL;
    }

    rtmp_ = RTMP_Alloc();
    RTMP_Init(rtmp_);
    RTMP_SetBufferMS(rtmp_, 300);

    streming_url_ = NULL;
    is_need_record_ = isNeedRecord;
}