gstreamer的udpmultisink发包,udp居然超过几k,修改成每次发一个188。
环境是ubuntu server 10.10 32位。
修改gst/udp/gstmultiudpsink.c文件。
140,142d139
< static guint8 sendbuf[1024*1024];
< static gint bufremain = 0;
<
434c431
<
gint len, sended=0;
---
> gint len;
441,442d437
< memcpy (sendbuf + bufremain, data, size);
<
445,446d439
< size += bufremain;
<
450d442
<
467c459
< sendbuf + sended,
---
> data,
469c461
< 188, 0, (struct sockaddr *) &client->theiraddr, len);
---
> size, 0, (struct sockaddr *) &client->theiraddr, len);
482d473
< sended += 188;
487,491c478
< if ( size - sended < 188 ) {
< memcpy (sendbuf, sendbuf+sended, size-sended);
< bufremain = size-sended;
< break;
< }
---
> break;
这个修改是为了进行测试,最终的方案应该是实现一个比较理想的mpeg2ts的复用plugin,因为udpmultisink只是简单的把mux后送过来的buffer直接发送出去,因此如果送的合理,那么发的也就合理。
(dqzhangp) |