42
42
43
43
@interface LFStreamRtmpSocket ()<LFStreamingBufferDelegate>
44
44
{
45
- RTMP * _rtmp;
45
+ PILI_RTMP * _rtmp;
46
46
}
47
47
@property (nonatomic , weak ) id <LFStreamSocketDelegate> delegate;
48
48
@property (nonatomic , strong ) LFLiveStreamInfo *stream;
49
49
@property (nonatomic , strong ) LFStreamingBuffer *buffer;
50
50
@property (nonatomic , strong ) dispatch_queue_t socketQueue;
51
+ // 错误信息
52
+ @property (nonatomic , assign ) RTMPError error;
51
53
@property (nonatomic , assign ) NSInteger retryTimes4netWorkBreaken;
52
54
53
55
@property (nonatomic , assign ) BOOL isSending;
@@ -84,8 +86,8 @@ - (void) start{
84
86
- (void ) stop {
85
87
dispatch_async (self.socketQueue , ^{
86
88
if (_rtmp != NULL ){
87
- RTMP_Close (_rtmp);
88
- RTMP_Free (_rtmp);
89
+ PILI_RTMP_Close (_rtmp, &_error );
90
+ PILI_RTMP_Free (_rtmp);
89
91
_rtmp = NULL ;
90
92
}
91
93
[self clean ];
@@ -156,30 +158,30 @@ -(NSInteger) RTMP264_Connect:(char *)push_url{
156
158
}
157
159
158
160
if (_rtmp != NULL ){
159
- RTMP_Close (_rtmp);
160
- RTMP_Free (_rtmp);
161
+ PILI_RTMP_Close (_rtmp, &_error );
162
+ PILI_RTMP_Free (_rtmp);
161
163
}
162
164
163
- _rtmp = RTMP_Alloc ();
164
- RTMP_Init (_rtmp);
165
+ _rtmp = PILI_RTMP_Alloc ();
166
+ PILI_RTMP_Init (_rtmp);
165
167
166
168
// 设置URL
167
- if (RTMP_SetupURL (_rtmp, push_url) < 0 ){
169
+ if (PILI_RTMP_SetupURL (_rtmp, push_url, &_error ) < 0 ){
168
170
// log(LOG_ERR, "RTMP_SetupURL() failed!");
169
171
goto Failed;
170
172
}
171
173
172
174
// 设置可写,即发布流,这个函数必须在连接前使用,否则无效
173
- RTMP_EnableWrite (_rtmp);
175
+ PILI_RTMP_EnableWrite (_rtmp);
174
176
_rtmp->Link .timeout = RTMP_RECEIVE_TIMEOUT;
175
177
176
178
// 连接服务器
177
- if (RTMP_Connect (_rtmp, NULL ) < 0 ){
179
+ if (PILI_RTMP_Connect (_rtmp, NULL , &_error ) < 0 ){
178
180
goto Failed;
179
181
}
180
182
181
183
// 连接流
182
- if (RTMP_ConnectStream (_rtmp, 0 ) < 0 ) {
184
+ if (PILI_RTMP_ConnectStream (_rtmp, 0 , &_error ) < 0 ) {
183
185
goto Failed;
184
186
}
185
187
@@ -197,8 +199,8 @@ -(NSInteger) RTMP264_Connect:(char *)push_url{
197
199
return 0 ;
198
200
199
201
Failed:
200
- RTMP_Close (_rtmp);
201
- RTMP_Free (_rtmp);
202
+ PILI_RTMP_Close (_rtmp, &_error );
203
+ PILI_RTMP_Free (_rtmp);
202
204
[self clean ];
203
205
if (self.delegate && [self .delegate respondsToSelector: @selector (socketStatus:status: )]){
204
206
[self .delegate socketStatus: self status: LFLiveError];
@@ -209,7 +211,7 @@ -(NSInteger) RTMP264_Connect:(char *)push_url{
209
211
#pragma mark -- Rtmp Send
210
212
211
213
- (void )sendMetaData {
212
- RTMPPacket packet;
214
+ PILI_RTMPPacket packet;
213
215
214
216
char pbuf[2048 ], *pend = pbuf+sizeof (pbuf);
215
217
@@ -254,9 +256,9 @@ - (void)sendMetaData {
254
256
*enc++ = 0 ;
255
257
*enc++ = 0 ;
256
258
*enc++ = AMF_OBJECT_END;
257
-
259
+
258
260
packet.m_nBodySize = enc - packet.m_body ;
259
- if (!RTMP_SendPacket (_rtmp, &packet, FALSE )) {
261
+ if (!PILI_RTMP_SendPacket (_rtmp, &packet, FALSE , &_error )) {
260
262
return ;
261
263
}
262
264
}
@@ -336,9 +338,9 @@ - (void)sendVideo:(LFVideoFrame*)frame{
336
338
337
339
-(NSInteger ) sendPacket : (unsigned int )nPacketType data : (unsigned char *)data size : (NSInteger ) size nTimestamp : (uint64_t ) nTimestamp {
338
340
NSInteger rtmpLength = size;
339
- RTMPPacket rtmp_pack;
340
- RTMPPacket_Reset (&rtmp_pack);
341
- RTMPPacket_Alloc (&rtmp_pack,(uint32_t )rtmpLength);
341
+ PILI_RTMPPacket rtmp_pack;
342
+ PILI_RTMPPacket_Reset (&rtmp_pack);
343
+ PILI_RTMPPacket_Alloc (&rtmp_pack,(uint32_t )rtmpLength);
342
344
343
345
rtmp_pack.m_nBodySize = (uint32_t )size;
344
346
memcpy (rtmp_pack.m_body ,data,size);
@@ -354,13 +356,13 @@ -(NSInteger) sendPacket:(unsigned int)nPacketType data:(unsigned char *)data siz
354
356
355
357
NSInteger nRet = [self RtmpPacketSend: &rtmp_pack];
356
358
357
- RTMPPacket_Free (&rtmp_pack);
359
+ PILI_RTMPPacket_Free (&rtmp_pack);
358
360
return nRet;
359
361
}
360
362
361
- - (NSInteger )RtmpPacketSend : (RTMPPacket *)packet {
362
- if (RTMP_IsConnected (_rtmp)){
363
- int success = RTMP_SendPacket (_rtmp,packet,0 );
363
+ - (NSInteger )RtmpPacketSend : (PILI_RTMPPacket *)packet {
364
+ if (PILI_RTMP_IsConnected (_rtmp)){
365
+ int success = PILI_RTMP_SendPacket (_rtmp,packet,0 ,&_error );
364
366
if (success){
365
367
self.isSending = NO ;
366
368
[self sendFrame ];
0 commit comments