Lines Matching +full:- +full:av

18  *  Boston, MA  02110-1301, USA.
106 #define STR2AVAL(av,str) av.av_val = str; av.av_len = strlen(av.av_val) argument
161 int nBodySize = pack->m_nBodySize; in ServeInvoke()
163 if (body > pack->m_body) in ServeInvoke()
164 nBodySize--; in ServeInvoke()
205 server->rc.Link.app = pval; in ServeInvoke()
210 server->rc.Link.flashVer = pval; in ServeInvoke()
217 RTMP_HashSWF(pval.av_val, &server->rc.Link.SWFSize, in ServeInvoke()
218 (unsigned char *)server->rc.Link.SWFHash, 30); in ServeInvoke()
220 server->rc.Link.swfUrl = pval; in ServeInvoke()
228 server->rc.Link.tcUrl = pval; in ServeInvoke()
236 server->rc.Link.protocol = RTMP_PROTOCOL_RTMP; in ServeInvoke()
241 server->rc.Link.protocol = RTMP_PROTOCOL_RTMPE; in ServeInvoke()
246 len = r2 - r1; in ServeInvoke()
248 len = pval.av_len - (r1 - pval.av_val); in ServeInvoke()
252 server->rc.Link.hostname.av_val = r2; in ServeInvoke()
256 server->rc.Link.hostname.av_len = r1 - r2; in ServeInvoke()
258 server->rc.Link.port = atoi(r1); in ServeInvoke()
262 server->rc.Link.hostname.av_len = len; in ServeInvoke()
263 server->rc.Link.port = 1935; in ServeInvoke()
270 server->rc.Link.pageUrl = pval; in ServeInvoke()
275 server->rc.m_fAudioCodecs = cobj.o_props[i].p_vu.p_number; in ServeInvoke()
279 server->rc.m_fVideoCodecs = cobj.o_props[i].p_vu.p_number; in ServeInvoke()
283 server->rc.m_fEncoding = cobj.o_props[i].p_vu.p_number; in ServeInvoke()
284 server->rc.m_bSendEncoding = TRUE; in ServeInvoke()
293 server->rc.Link.lFlags |= RTMP_LF_AUTH; in ServeInvoke()
296 AMFProp_GetString(&obj.o_props[4], &server->rc.Link.auth); in ServeInvoke()
300 if (!RTMP_Connect(&server->rc, pack)) in ServeInvoke()
305 server->rc.m_bSendCounter = FALSE; in ServeInvoke()
310 AVal av; in ServeInvoke() local
320 server->rc.m_stream_id = pack->m_nInfoField2; in ServeInvoke()
321 AMFProp_GetString(AMF_GetProp(&obj, NULL, 3), &av); in ServeInvoke()
322 server->rc.Link.playpath = av; in ServeInvoke()
323 if (!av.av_val) in ServeInvoke()
327 for (fl = server->f_head; fl; fl=fl->f_next) in ServeInvoke()
329 if (AVMATCH(&av, &fl->f_path)) in ServeInvoke()
333 q = memchr(av.av_val, '?', av.av_len); in ServeInvoke()
336 if (q == av.av_val) in ServeInvoke()
338 av.av_val++; in ServeInvoke()
339 av.av_len--; in ServeInvoke()
343 av.av_len = q - av.av_val; in ServeInvoke()
347 for (p=av.av_val+av.av_len-1; p>=av.av_val; p--) in ServeInvoke()
351 av.av_len -= p - av.av_val; in ServeInvoke()
352 av.av_val = p; in ServeInvoke()
356 if (av.av_val[0] == '.') in ServeInvoke()
358 av.av_val++; in ServeInvoke()
359 av.av_len--; in ServeInvoke()
361 flen = av.av_len; in ServeInvoke()
367 memcpy(file, av.av_val, av.av_len); in ServeInvoke()
369 sprintf(file+av.av_len, "%02x", count); in ServeInvoke()
371 file[av.av_len] = '\0'; in ServeInvoke()
376 server->rc.Link.playpath.av_len, server->rc.Link.playpath.av_val, in ServeInvoke()
385 av = server->rc.Link.playpath; in ServeInvoke()
386 fl = malloc(sizeof(Flist)+av.av_len+1); in ServeInvoke()
387 fl->f_file = out; in ServeInvoke()
388 fl->f_path.av_len = av.av_len; in ServeInvoke()
389 fl->f_path.av_val = (char *)(fl+1); in ServeInvoke()
390 memcpy(fl->f_path.av_val, av.av_val, av.av_len); in ServeInvoke()
391 fl->f_path.av_val[av.av_len] = '\0'; in ServeInvoke()
392 fl->f_next = NULL; in ServeInvoke()
393 if (server->f_tail) in ServeInvoke()
394 server->f_tail->f_next = fl; in ServeInvoke()
396 server->f_head = fl; in ServeInvoke()
397 server->f_tail = fl; in ServeInvoke()
405 AMFProp_GetString(AMF_GetProp(&obj2, &av_code, -1), &code); in ServeInvoke()
406 AMFProp_GetString(AMF_GetProp(&obj2, &av_level, -1), &level); in ServeInvoke()
420 if (server->f_cur) in ServeInvoke()
422 if (server->f_cur->f_next) in ServeInvoke()
423 server->f_cur = server->f_cur->f_next; in ServeInvoke()
427 for (server->f_cur = server->f_head; server->f_cur && in ServeInvoke()
428 !server->f_cur->f_file; server->f_cur = server->f_cur->f_next) ; in ServeInvoke()
430 server->rc.m_bPlaying = TRUE; in ServeInvoke()
446 RTMP_Close(&server->rc); in ServeInvoke()
460 cst[which], packet->m_packetType, packet->m_nBodySize); in ServePacket()
462 switch (packet->m_packetType) in ServePacket()
509 ret = ServeInvoke(server, which, packet, packet->m_body + 1); in ServePacket()
522 ret = ServeInvoke(server, which, packet, packet->m_body); in ServePacket()
531 packet->m_packetType); in ServePacket()
533 RTMP_LogHex(RTMP_LOGDEBUG, packet->m_body, packet->m_nBodySize); in ServePacket()
546 int ret = -1, len = *plen; in WriteStream()
550 char *packetBody = packet->m_body; in WriteStream()
551 unsigned int nPacketLen = packet->m_nBodySize; in WriteStream()
554 if (packet->m_packetType == RTMP_PACKET_TYPE_VIDEO && in WriteStream()
561 if (packet->m_packetType == RTMP_PACKET_TYPE_VIDEO && nPacketLen <= 5) in WriteStream()
568 if (packet->m_packetType == RTMP_PACKET_TYPE_AUDIO && nPacketLen <= 1) in WriteStream()
576 RTMP_Log(RTMP_LOGDEBUG, "type: %02X, size: %d, TS: %d ms", packet->m_packetType, in WriteStream()
577 nPacketLen, packet->m_nTimeStamp); in WriteStream()
578 if (packet->m_packetType == RTMP_PACKET_TYPE_VIDEO) in WriteStream()
585 ((packet->m_packetType == RTMP_PACKET_TYPE_AUDIO in WriteStream()
586 || packet->m_packetType == RTMP_PACKET_TYPE_VIDEO in WriteStream()
587 || packet->m_packetType == RTMP_PACKET_TYPE_INFO) ? 11 : 0) in WriteStream()
588 + (packet->m_packetType != 0x16 ? 4 : 0); in WriteStream()
598 ret = -1; // fatal error in WriteStream()
607 if (packet->m_packetType == RTMP_PACKET_TYPE_AUDIO in WriteStream()
608 || packet->m_packetType == RTMP_PACKET_TYPE_VIDEO in WriteStream()
609 || packet->m_packetType == RTMP_PACKET_TYPE_INFO) in WriteStream()
612 …//*dataType |= (((packet->m_packetType == RTMP_PACKET_TYPE_AUDIO)<<2)|(packet->m_packetType == RTM… in WriteStream()
614 (*nTimeStamp) = packet->m_nTimeStamp; in WriteStream()
617 *ptr++ = packet->m_packetType; in WriteStream()
631 if (packet->m_packetType == RTMP_PACKET_TYPE_FLASH_VIDEO) in WriteStream()
654 ret = -2; in WriteStream()
695 if (packet->m_packetType != RTMP_PACKET_TYPE_FLASH_VIDEO) in WriteStream()
741 int sockfd = server->socket; in doServe()
747 server->state = STREAMING_IN_PROGRESS; in doServe()
762 RTMP_Init(&server->rs); in doServe()
763 RTMP_Init(&server->rc); in doServe()
764 server->rs.m_sb.sb_socket = sockfd; in doServe()
765 if (!RTMP_Serve(&server->rs)) in doServe()
775 while (RTMP_IsConnected(&server->rs) && RTMP_ReadPacket(&server->rs, &ps)) in doServe()
781 if (RTMP_IsConnected(&server->rc)) in doServe()
788 server->rc.Link.timeout = 10; in doServe()
789 server->rs.Link.timeout = 10; in doServe()
790 while (RTMP_IsConnected(&server->rs) || RTMP_IsConnected(&server->rc)) in doServe()
795 cr = server->rc.m_sb.sb_size; in doServe()
796 sr = server->rs.m_sb.sb_size; in doServe()
803 n = server->rs.m_sb.sb_socket; in doServe()
804 if (server->rc.m_sb.sb_socket > n) in doServe()
805 n = server->rc.m_sb.sb_socket; in doServe()
807 if (RTMP_IsConnected(&server->rs)) in doServe()
809 if (RTMP_IsConnected(&server->rc)) in doServe()
810 FD_SET(server->rc.m_sb.sb_socket, &rfds); in doServe()
813 tv.tv_sec = server->f_cur ? 30 : 60; in doServe()
818 if (server->f_cur && server->rc.m_mediaChannel && !paused) in doServe()
820 … server->rc.m_pauseStamp = server->rc.m_channelTimestamp[server->rc.m_mediaChannel]; in doServe()
821 if (RTMP_ToggleStream(&server->rc)) in doServe()
830 if (server->rs.m_sb.sb_socket > 0 && in doServe()
831 FD_ISSET(server->rs.m_sb.sb_socket, &rfds)) in doServe()
833 if (server->rc.m_sb.sb_socket > 0 && in doServe()
834 FD_ISSET(server->rc.m_sb.sb_socket, &rfds)) in doServe()
839 while (RTMP_ReadPacket(&server->rs, &ps)) in doServe()
847 server->rs.m_inChunkSize = AMF_DecodeInt32(ps.m_body); in doServe()
849 server->rs.m_inChunkSize); in doServe()
850 server->rc.m_outChunkSize = server->rs.m_inChunkSize; in doServe()
874 /* Assume the interesting media is on a non-zero stream */ in doServe()
893 if (ServePacket(server, 0, &ps) && server->f_cur) in doServe()
895 fclose(server->f_cur->f_file); in doServe()
896 server->f_cur->f_file = NULL; in doServe()
897 server->f_cur = NULL; in doServe()
900 RTMP_SendPacket(&server->rc, &ps, FALSE); in doServe()
907 while (RTMP_ReadPacket(&server->rc, &pc)) in doServe()
914 if (pc.m_nTimeStamp <= server->rc.m_mediaStamp) in doServe()
917 server->rc.m_pausing = 0; in doServe()
924 server->rc.m_inChunkSize = AMF_DecodeInt32(pc.m_body); in doServe()
926 server->rc.m_inChunkSize); in doServe()
927 server->rs.m_outChunkSize = server->rc.m_inChunkSize; in doServe()
936 if (server->rc.Link.SWFSize) in doServe()
938 RTMP_SendCtrl(&server->rc, 0x1b, 0, 0); in doServe()
946 else if (server->f_cur && ( in doServe()
951 RTMP_ClientPacket(&server->rc, &pc)) in doServe()
953 int len = WriteStream(&buf, &buflen, &server->stamp, &pc); in doServe()
954 if (len > 0 && fwrite(buf, 1, len, server->f_cur->f_file) != len) in doServe()
960 if (ServePacket(server, 1, &pc) && server->f_cur) in doServe()
962 fclose(server->f_cur->f_file); in doServe()
963 server->f_cur->f_file = NULL; in doServe()
964 server->f_cur = NULL; in doServe()
968 if (sendit && RTMP_IsConnected(&server->rs)) in doServe()
969 RTMP_SendChunk(&server->rs, &rk); in doServe()
975 if (!RTMP_IsConnected(&server->rs) && RTMP_IsConnected(&server->rc) in doServe()
976 && !server->f_cur) in doServe()
977 RTMP_Close(&server->rc); in doServe()
982 RTMP_Close(&server->rs); in doServe()
983 RTMP_Close(&server->rc); in doServe()
984 while (server->f_head) in doServe()
986 Flist *fl = server->f_head; in doServe()
987 server->f_head = fl->f_next; in doServe()
988 if (fl->f_file) in doServe()
989 fclose(fl->f_file); in doServe()
992 server->f_tail = NULL; in doServe()
993 server->f_cur = NULL; in doServe()
996 server->rc.Link.hostname.av_val = NULL; in doServe()
997 server->rc.Link.tcUrl.av_val = NULL; in doServe()
998 server->rc.Link.swfUrl.av_val = NULL; in doServe()
999 server->rc.Link.pageUrl.av_val = NULL; in doServe()
1000 server->rc.Link.app.av_val = NULL; in doServe()
1001 server->rc.Link.auth.av_val = NULL; in doServe()
1002 server->rc.Link.flashVer.av_val = NULL; in doServe()
1006 if (server->state == STREAMING_IN_PROGRESS) in doServe()
1007 server->state = STREAMING_ACCEPTING; in doServe()
1016 server->state = STREAMING_ACCEPTING; in serverThread()
1018 while (server->state == STREAMING_ACCEPTING) in serverThread()
1024 accept(server->socket, (struct sockaddr *) &addr, &addrlen); in serverThread()
1041 srv2->socket = sockfd; in serverThread()
1051 server->state = STREAMING_STOPPED; in serverThread()
1063 if (sockfd == -1) in startStreaming()
1078 -1) in startStreaming()
1085 if (listen(sockfd, 10) == -1) in startStreaming()
1093 server->socket = sockfd; in startStreaming()
1105 if (server->state != STREAMING_STOPPED) in stopStreaming()
1107 int fd = server->socket; in stopStreaming()
1108 server->socket = 0; in stopStreaming()
1109 if (server->state == STREAMING_IN_PROGRESS) in stopStreaming()
1111 server->state = STREAMING_STOPPING; in stopStreaming()
1114 while (server->state != STREAMING_STOPPED) in stopStreaming()
1122 server->state = STREAMING_STOPPED; in stopStreaming()
1153 if (argc > 1 && !strcmp(argv[1], "-z")) in main()
1181 while (rtmpServer->state != STREAMING_STOPPED) in main()