diff --git a/gst/rtmp2/rtmp/rtmpchunkstream.c b/gst/rtmp2/rtmp/rtmpchunkstream.c index b0aa1fa806..cca8848815 100644 --- a/gst/rtmp2/rtmp/rtmpchunkstream.c +++ b/gst/rtmp2/rtmp/rtmpchunkstream.c @@ -666,6 +666,23 @@ gst_rtmp_chunk_stream_serialize_next (GstRtmpChunkStream * cstream, return serialize_next (cstream, chunk_size, CHUNK_TYPE_3); } +GstBuffer * +gst_rtmp_chunk_stream_serialize_all (GstRtmpChunkStream * cstream, + GstBuffer * buffer, guint32 chunk_size) +{ + GstBuffer *outbuf, *nextbuf; + + outbuf = gst_rtmp_chunk_stream_serialize_start (cstream, buffer, chunk_size); + nextbuf = gst_rtmp_chunk_stream_serialize_next (cstream, chunk_size); + + while (nextbuf) { + outbuf = gst_buffer_append (outbuf, nextbuf); + nextbuf = gst_rtmp_chunk_stream_serialize_next (cstream, chunk_size); + } + + return outbuf; +} + GstRtmpChunkStreams * gst_rtmp_chunk_streams_new (void) { diff --git a/gst/rtmp2/rtmp/rtmpchunkstream.h b/gst/rtmp2/rtmp/rtmpchunkstream.h index 6466f3b46d..e2b0d9b861 100644 --- a/gst/rtmp2/rtmp/rtmpchunkstream.h +++ b/gst/rtmp2/rtmp/rtmpchunkstream.h @@ -45,6 +45,8 @@ GstBuffer * gst_rtmp_chunk_stream_serialize_start (GstRtmpChunkStream * cstream, GstBuffer * buffer, guint32 chunk_size); GstBuffer * gst_rtmp_chunk_stream_serialize_next (GstRtmpChunkStream * cstream, guint32 chunk_size); +GstBuffer * gst_rtmp_chunk_stream_serialize_all (GstRtmpChunkStream * cstream, + GstBuffer * buffer, guint32 chunk_size); GstRtmpChunkStreams * gst_rtmp_chunk_streams_new (void); void gst_rtmp_chunk_streams_free (gpointer ptr);