mirror of https://git.ffmpeg.org/ffmpeg.git
Backport fix for mpegvideo rtp, fixes Issue119, original fix from Dario Gallucci <dariodotgallucciatpolito.it> in feng
Originally committed as revision 10257 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
55bf7fb613
commit
f6df400c0c
|
@ -28,32 +28,39 @@ void ff_rtp_send_mpegvideo(AVFormatContext *s1, const uint8_t *buf1, int size)
|
||||||
RTPDemuxContext *s = s1->priv_data;
|
RTPDemuxContext *s = s1->priv_data;
|
||||||
AVStream *st = s1->streams[0];
|
AVStream *st = s1->streams[0];
|
||||||
int len, h, max_packet_size;
|
int len, h, max_packet_size;
|
||||||
|
int b=1, e=0;
|
||||||
uint8_t *q;
|
uint8_t *q;
|
||||||
|
|
||||||
max_packet_size = s->max_payload_size;
|
max_packet_size = s->max_payload_size;
|
||||||
|
|
||||||
while (size > 0) {
|
while (size > 0) {
|
||||||
/* XXX: more correct headers */
|
len = max_packet_size - 4;
|
||||||
|
|
||||||
|
if (len >= size) {
|
||||||
|
len = size;
|
||||||
|
e = 1;
|
||||||
|
}
|
||||||
|
|
||||||
h = 0;
|
h = 0;
|
||||||
if (st->codec->sub_id == 2)
|
h |= b << 12;
|
||||||
h |= 1 << 26; /* mpeg 2 indicator */
|
h |= e << 11;
|
||||||
|
|
||||||
|
// if (st->codec->sub_id == 2)
|
||||||
|
// h |= 1 << 26; /* mpeg 2 indicator */
|
||||||
|
|
||||||
q = s->buf;
|
q = s->buf;
|
||||||
*q++ = h >> 24;
|
*q++ = h >> 24;
|
||||||
*q++ = h >> 16;
|
*q++ = h >> 16;
|
||||||
*q++ = h >> 8;
|
*q++ = h >> 8;
|
||||||
*q++ = h;
|
*q++ = h;
|
||||||
|
|
||||||
if (st->codec->sub_id == 2) {
|
/* if (st->codec->sub_id == 2) {
|
||||||
h = 0;
|
h = 0;
|
||||||
*q++ = h >> 24;
|
*q++ = h >> 24;
|
||||||
*q++ = h >> 16;
|
*q++ = h >> 16;
|
||||||
*q++ = h >> 8;
|
*q++ = h >> 8;
|
||||||
*q++ = h;
|
*q++ = h;
|
||||||
}
|
} */
|
||||||
|
|
||||||
len = max_packet_size - (q - s->buf);
|
|
||||||
if (len > size)
|
|
||||||
len = size;
|
|
||||||
|
|
||||||
memcpy(q, buf1, len);
|
memcpy(q, buf1, len);
|
||||||
q += len;
|
q += len;
|
||||||
|
|
Loading…
Reference in New Issue