[FFmpeg-devel] RTSP marker-bit packet merging
Ronald S. Bultje
rsbultje
Mon Jan 26 00:33:42 CET 2009
Hi,
I've seen in several (QDM2, SV3V, X-QT and UDP RTSP/ASF) cases that
there is a reuse of packet merging code where packet data (minus some
small header) is merged and finished when the marker bit is set. Is it
OK if I add some generic code to rtpdec.c to handle this? It would
look like this:
rtp.h:
struct RTPMergePacketStruct {
char *buf;
int pos;
}
+ function decl
rtpdec.c:
/** return 0 on full packet and 1 on incomplete packet */
int rtp_merge_packet_data(struct RTPMergePacketStruct *bla, AVPacket
*pkt, char *buf, int len, int *flags)
{
if (bla->pos == 0)
bla->buf = av_malloc(len);
else
bla->buf = av_realloc(bla->buf, bla->pos + len);
if (!bla->buf)
return AVERROR(ENOMEM);
memcpy(bla->buf + bla->pos, buf, len);
bla->pos += len;
if (*flags & RTP_FLAG_MARKER) {
pkt->data = bla->buf;
pkt->len = bla->pos;
bla->pos = 0;
pkt->flags = *flags & 0x1; //keyframe flag
return 0;
}
return 1;
}
This is probably more pseudo-code than anything else, just wanted to
see if this was OK.
Ronald
More information about the ffmpeg-devel
mailing list