summaryrefslogtreecommitdiffstats
path: root/ext/mplex/gstmplexibitstream.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mplex/gstmplexibitstream.cc')
-rw-r--r--ext/mplex/gstmplexibitstream.cc26
1 files changed, 14 insertions, 12 deletions
diff --git a/ext/mplex/gstmplexibitstream.cc b/ext/mplex/gstmplexibitstream.cc
index 28c0ff0b..0f517703 100644
--- a/ext/mplex/gstmplexibitstream.cc
+++ b/ext/mplex/gstmplexibitstream.cc
@@ -66,21 +66,20 @@ GstMplexIBitStream::~GstMplexIBitStream (void)
* Read data.
*/
-size_t GstMplexIBitStream::ReadStreamBytes (uint8_t * buf, size_t size)
+size_t
+GstMplexIBitStream::ReadStreamBytes (uint8_t * buf, size_t size)
{
- guint8 *
- data;
- guint
- read;
+ guint8 *data;
+
+ guint read = 0;
if (eos)
return 0;
while (!eos && (read = gst_bytestream_peek_bytes (bs, &data, size)) != size) {
- GstEvent *
- event;
- guint
- pending;
+ GstEvent *event;
+
+ guint pending;
gst_bytestream_get_status (bs, &pending, &event);
if (event) {
@@ -95,8 +94,10 @@ size_t GstMplexIBitStream::ReadStreamBytes (uint8_t * buf, size_t size)
}
}
- memcpy (buf, data, read);
- gst_bytestream_flush_fast (bs, read);
+ if (read > 0) {
+ memcpy (buf, data, read);
+ gst_bytestream_flush_fast (bs, read);
+ }
return read;
}
@@ -105,7 +106,8 @@ size_t GstMplexIBitStream::ReadStreamBytes (uint8_t * buf, size_t size)
* Are we at EOS?
*/
-bool GstMplexIBitStream::EndOfStream (void)
+bool
+GstMplexIBitStream::EndOfStream (void)
{
return eos;
}