Mercurial > libavformat.hg
annotate rtp_mpv.c @ 2412:a19cdec5d552 libavformat
Remove commented code (payload header extension)
author | lucabe |
---|---|
date | Wed, 29 Aug 2007 10:42:13 +0000 |
parents | 9134c5f663bd |
children | 0b5863b939d3 |
rev | line source |
---|---|
0 | 1 /* |
2406
18e94e5989d8
Move the RTP packetization code for MPEG12 video in its own file (rtp_mpv.c)
lucabe
parents:
2274
diff
changeset
|
2 * RTP packetization for MPEG video |
0 | 3 * Copyright (c) 2002 Fabrice Bellard. |
4 * | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
5 * This file is part of FFmpeg. |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
6 * |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
0 | 8 * modify it under the terms of the GNU Lesser General Public |
9 * License as published by the Free Software Foundation; either | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
0 | 11 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
0 | 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 * Lesser General Public License for more details. | |
16 * | |
17 * You should have received a copy of the GNU Lesser General Public | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1332
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
896
edbe5c3717f9
Update licensing information: The FSF changed postal address.
diego
parents:
885
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 20 */ |
21 #include "avformat.h" | |
1419 | 22 #include "rtp_internal.h" |
0 | 23 |
24 /* NOTE: a single frame must be passed with sequence header if | |
25 needed. XXX: use slices. */ | |
2406
18e94e5989d8
Move the RTP packetization code for MPEG12 video in its own file (rtp_mpv.c)
lucabe
parents:
2274
diff
changeset
|
26 void ff_rtp_send_mpegvideo(AVFormatContext *s1, const uint8_t *buf1, int size) |
0 | 27 { |
294
6091b76cfc2a
added MPEG2TS support in RTP, SDP and RTSP - replaced fake RTP demux by a specific API
bellard
parents:
241
diff
changeset
|
28 RTPDemuxContext *s = s1->priv_data; |
0 | 29 AVStream *st = s1->streams[0]; |
30 int len, h, max_packet_size; | |
2411
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
31 int b=1, e=0; |
65 | 32 uint8_t *q; |
0 | 33 |
34 max_packet_size = s->max_payload_size; | |
35 | |
36 while (size > 0) { | |
2411
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
37 len = max_packet_size - 4; |
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
38 |
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
39 if (len >= size) { |
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
40 len = size; |
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
41 e = 1; |
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
42 } |
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
43 |
0 | 44 h = 0; |
2411
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
45 h |= b << 12; |
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
46 h |= e << 11; |
9134c5f663bd
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
lu_zero
parents:
2406
diff
changeset
|
47 |
0 | 48 q = s->buf; |
49 *q++ = h >> 24; | |
50 *q++ = h >> 16; | |
51 *q++ = h >> 8; | |
52 *q++ = h; | |
53 | |
54 memcpy(q, buf1, len); | |
55 q += len; | |
56 | |
57 /* 90 KHz time stamp */ | |
885 | 58 s->timestamp = s->base_timestamp + |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
777
diff
changeset
|
59 av_rescale((int64_t)s->cur_timestamp * st->codec->time_base.num, 90000, st->codec->time_base.den); //FIXME pass timestamps |
2406
18e94e5989d8
Move the RTP packetization code for MPEG12 video in its own file (rtp_mpv.c)
lucabe
parents:
2274
diff
changeset
|
60 ff_rtp_send_data(s1, s->buf, q - s->buf, (len == size)); |
0 | 61 |
62 buf1 += len; | |
63 size -= len; | |
64 } | |
65 s->cur_timestamp++; | |
66 } | |
67 | |
294
6091b76cfc2a
added MPEG2TS support in RTP, SDP and RTSP - replaced fake RTP demux by a specific API
bellard
parents:
241
diff
changeset
|
68 |