Changeset 3571 for pjproject/branches/1.x/pjmedia/src/pjmedia/stream.c
- Timestamp:
- May 19, 2011 8:05:23 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/branches/1.x/pjmedia/src/pjmedia/stream.c
r3553 r3571 144 144 pj_uint32_t rtcp_interval; /**< Interval, in timestamp. */ 145 145 pj_bool_t initial_rr; /**< Initial RTCP RR sent */ 146 pj_bool_t rtcp_sdes_bye_disabled;/**< Send RTCP SDES/BYE?*/ 146 147 147 148 /* RFC 2833 DTMF transmission queue: */ … … 1827 1828 /* Build RR or SR */ 1828 1829 pjmedia_rtcp_build_rtcp(&stream->rtcp, &sr_rr_pkt, &len); 1829 pkt = (pj_uint8_t*) stream->enc->out_pkt; 1830 pj_memcpy(pkt, sr_rr_pkt, len); 1831 pkt += len; 1832 1833 /* Append SDES */ 1834 len = create_rtcp_sdes(stream, (pj_uint8_t*)pkt, 1835 stream->enc->out_pkt_size - len); 1836 if (len > 0) { 1837 pkt += len; 1838 len = ((pj_uint8_t*)pkt) - ((pj_uint8_t*)stream->enc->out_pkt); 1839 pjmedia_transport_send_rtcp(stream->transport, 1840 stream->enc->out_pkt, len); 1841 } 1830 1831 if (!stream->rtcp_sdes_bye_disabled) { 1832 pkt = (pj_uint8_t*) stream->enc->out_pkt; 1833 pj_memcpy(pkt, sr_rr_pkt, len); 1834 pkt += len; 1835 1836 /* Append SDES */ 1837 len = create_rtcp_sdes(stream, (pj_uint8_t*)pkt, 1838 stream->enc->out_pkt_size - len); 1839 if (len > 0) { 1840 pkt += len; 1841 len = ((pj_uint8_t*)pkt) - ((pj_uint8_t*)stream->enc->out_pkt); 1842 pjmedia_transport_send_rtcp(stream->transport, 1843 stream->enc->out_pkt, len); 1844 } 1845 } else { 1846 pjmedia_transport_send_rtcp(stream->transport, ss_rr_pkt, len); 1847 } 1842 1848 1843 1849 stream->initial_rr = PJ_TRUE; … … 1955 1961 pjmedia_stream *stream; 1956 1962 pj_str_t name; 1957 unsigned jb_init, jb_max, jb_min_pre, jb_max_pre , len;1963 unsigned jb_init, jb_max, jb_min_pre, jb_max_pre; 1958 1964 char *p; 1959 1965 pj_status_t status; … … 1993 1999 stream->rtcp_interval = (PJMEDIA_RTCP_INTERVAL-500 + (pj_rand()%1000)) * 1994 2000 info->fmt.clock_rate / 1000; 2001 stream->rtcp_sdes_bye_disabled = info->rtcp_sdes_bye_disabled; 1995 2002 1996 2003 stream->tx_event_pt = info->tx_event_pt ? info->tx_event_pt : -1; … … 2306 2313 2307 2314 /* Send RTCP SDES */ 2308 len = create_rtcp_sdes(stream, (pj_uint8_t*)stream->enc->out_pkt, 2309 stream->enc->out_pkt_size); 2310 if (len != 0) { 2311 pjmedia_transport_send_rtcp(stream->transport, 2312 stream->enc->out_pkt, len); 2315 if (!stream->rtcp_sdes_bye_disabled) { 2316 pjmedia_stream_send_rtcp_sdes(stream); 2313 2317 } 2314 2318 … … 2365 2369 PJ_DEF(pj_status_t) pjmedia_stream_destroy( pjmedia_stream *stream ) 2366 2370 { 2367 unsigned len;2368 2371 PJ_ASSERT_RETURN(stream != NULL, PJ_EINVAL); 2369 2372 … … 2407 2410 2408 2411 /* Send RTCP BYE */ 2409 if (stream->enc && stream->transport) { 2410 len = create_rtcp_bye(stream, (pj_uint8_t*)stream->enc->out_pkt, 2411 stream->enc->out_pkt_size); 2412 if (len != 0) { 2413 pjmedia_transport_send_rtcp(stream->transport, 2414 stream->enc->out_pkt, len); 2415 } 2412 if (!stream->rtcp_sdes_bye_disabled) { 2413 pjmedia_stream_send_rtcp_bye(stream); 2416 2414 } 2417 2415 … … 2761 2759 } 2762 2760 2761 /* 2762 * Send RTCP SDES. 2763 */ 2764 PJ_DEF(pj_status_t) 2765 pjmedia_stream_send_rtcp_sdes( pjmedia_stream *stream ) 2766 { 2767 unsigned len; 2768 2769 PJ_ASSERT_RETURN(stream, PJ_EINVAL); 2770 2771 len = create_rtcp_sdes(stream, (pj_uint8_t*)stream->enc->out_pkt, 2772 stream->enc->out_pkt_size); 2773 if (len != 0) { 2774 return pjmedia_transport_send_rtcp(stream->transport, 2775 stream->enc->out_pkt, len); 2776 } 2777 2778 return PJ_SUCCESS; 2779 } 2780 2781 /* 2782 * Send RTCP BYE. 2783 */ 2784 PJ_DEF(pj_status_t) 2785 pjmedia_stream_send_rtcp_bye( pjmedia_stream *stream ) 2786 { 2787 PJ_ASSERT_RETURN(stream, PJ_EINVAL); 2788 2789 if (stream->enc && stream->transport) { 2790 unsigned len; 2791 2792 len = create_rtcp_bye(stream, (pj_uint8_t*)stream->enc->out_pkt, 2793 stream->enc->out_pkt_size); 2794 if (len != 0) { 2795 return pjmedia_transport_send_rtcp(stream->transport, 2796 stream->enc->out_pkt, len); 2797 } 2798 } 2799 2800 return PJ_SUCCESS; 2801 }
Note: See TracChangeset
for help on using the changeset viewer.