46 #define RTCP_SR_SIZE 28
85 int max_packet_size, n;
111 if (max_packet_size <= 12)
135 switch(st->codec->codec_id) {
138 s->buf_ptr = s->buf + 4;
152 if (st->codec->extradata_size > 4 && st->codec->extradata[0] == 1) {
153 s->nal_length_size = (st->codec->extradata[4] & 0x03) + 1;
158 if (!s->max_frames_per_packet) s->max_frames_per_packet = 15;
159 s->max_frames_per_packet = av_clip(s->max_frames_per_packet, 1, 15);
160 s->max_payload_size -= 6;
165 "incompatible with the latest spec drafts.\n");
174 if (!s->max_frames_per_packet)
175 s->max_frames_per_packet = 12;
181 if (1 + s->max_frames_per_packet + n > s->max_payload_size) {
185 if (st->codec->channels != 1) {
213 s1->streams[0]->time_base) + s->base_timestamp;
219 avio_wb32(
s1->pb, ((ntp_time % 1000000) << 32) / 1000000);
232 av_dlog(s1,
"rtp_send_data size=%d\n", len);
252 const uint8_t *buf1,
int size,
int sample_size_bits)
255 int len, max_packet_size, n;
257 int aligned_samples_size = sample_size_bits/
av_gcd(sample_size_bits, 8);
259 max_packet_size = (s->
max_payload_size / aligned_samples_size) * aligned_samples_size;
261 if ((sample_size_bits % 8) == 0 && ((8 *
size) % sample_size_bits) != 0)
266 len =
FFMIN(max_packet_size, size);
280 const uint8_t *buf1,
int size)
283 int len, count, max_packet_size;
289 if ((len + size) > max_packet_size) {
300 if (size > max_packet_size) {
304 len = max_packet_size - 4;
310 s->
buf[2] = count >> 8;
312 memcpy(s->
buf + 4, buf1, len);
326 memcpy(s->
buf_ptr, buf1, size);
332 const uint8_t *buf1,
int size)
335 int len, max_packet_size;
340 len = max_packet_size;
354 const uint8_t *buf1,
int size)
359 while (size >= TS_PACKET_SIZE) {
480 .priv_class = &rtp_muxer_class,