{"action":"created","issue":{"url":"https://api.github.com/repos/winlinvip/srs.librtmp/issues/1","repository_url":"https://api.github.com/repos/winlinvip/srs.librtmp","labels_url":"https://api.github.com/repos/winlinvip/srs.librtmp/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/winlinvip/srs.librtmp/issues/1/comments","events_url":"https://api.github.com/repos/winlinvip/srs.librtmp/issues/1/events","html_url":"https://github.com/winlinvip/srs.librtmp/pull/1","id":140503738,"number":1,"title":"add SrsRtmpClient send message function to support static message buffer or buffer whose lifecycle is managed by another class","user":{"login":"fritzprix","id":917899,"avatar_url":"https://avatars.githubusercontent.com/u/917899?v=3","gravatar_id":"","url":"https://api.github.com/users/fritzprix","html_url":"https://github.com/fritzprix","followers_url":"https://api.github.com/users/fritzprix/followers","following_url":"https://api.github.com/users/fritzprix/following{/other_user}","gists_url":"https://api.github.com/users/fritzprix/gists{/gist_id}","starred_url":"https://api.github.com/users/fritzprix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fritzprix/subscriptions","organizations_url":"https://api.github.com/users/fritzprix/orgs","repos_url":"https://api.github.com/users/fritzprix/repos","events_url":"https://api.github.com/users/fritzprix/events{/privacy}","received_events_url":"https://api.github.com/users/fritzprix/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-03-13T16:47:15Z","updated_at":"2016-03-14T03:50:20Z","closed_at":"2016-03-14T02:35:46Z","pull_request":{"url":"https://api.github.com/repos/winlinvip/srs.librtmp/pulls/1","html_url":"https://github.com/winlinvip/srs.librtmp/pull/1","diff_url":"https://github.com/winlinvip/srs.librtmp/pull/1.diff","patch_url":"https://github.com/winlinvip/srs.librtmp/pull/1.patch"},"body":"- rtmp message sending interface of SrsRtmpClient has assumed message is allocated in dynamic way\r\n  but in some case, static memory can be used as message buffer (for example, 3rd party flv parser or reader has its own buffer)\r\n  or the buffers lifecycle is managed by flv parser or reader.\r\n  in that case, SrsRtmpClient try to free repeatedly and this typically causes fault (heap corruption) in linux system.\r\n  so interfaces for sending RTMP messages are added and they don't free message buffer."},"comment":{"url":"https://api.github.com/repos/winlinvip/srs.librtmp/issues/comments/196127751","html_url":"https://github.com/winlinvip/srs.librtmp/pull/1#issuecomment-196127751","issue_url":"https://api.github.com/repos/winlinvip/srs.librtmp/issues/1","id":196127751,"user":{"login":"winlinvip","id":2777660,"avatar_url":"https://avatars.githubusercontent.com/u/2777660?v=3","gravatar_id":"","url":"https://api.github.com/users/winlinvip","html_url":"https://github.com/winlinvip","followers_url":"https://api.github.com/users/winlinvip/followers","following_url":"https://api.github.com/users/winlinvip/following{/other_user}","gists_url":"https://api.github.com/users/winlinvip/gists{/gist_id}","starred_url":"https://api.github.com/users/winlinvip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/winlinvip/subscriptions","organizations_url":"https://api.github.com/users/winlinvip/orgs","repos_url":"https://api.github.com/users/winlinvip/repos","events_url":"https://api.github.com/users/winlinvip/events{/privacy}","received_events_url":"https://api.github.com/users/winlinvip/received_events","type":"User","site_admin":false},"created_at":"2016-03-14T03:50:20Z","updated_at":"2016-03-14T03:50:20Z","body":"应该是直接改srs_librtmp.h，在调用底层函数前copy。"}}