summaryrefslogtreecommitdiff
path: root/ext/kate
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2011-08-04 13:05:22 -0700
committerDavid Schleef <ds@schleef.org>2012-01-22 15:49:44 -0800
commit6786f8c7bfafad5a95a7b257a233dae2fdcfc913 (patch)
tree110f9805b3af37ec4906cf9603eca07d9d872c90 /ext/kate
parentc92efe38e9f3e60509449ce1bb0d5a6d880c337a (diff)
downloadgstreamer-plugins-bad-6786f8c7bfafad5a95a7b257a233dae2fdcfc913.tar.gz
kateenc: Don't error on empty input buffers
Diffstat (limited to 'ext/kate')
-rw-r--r--ext/kate/gstkateenc.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/ext/kate/gstkateenc.c b/ext/kate/gstkateenc.c
index e378a5cf3..8b782c6a1 100644
--- a/ext/kate/gstkateenc.c
+++ b/ext/kate/gstkateenc.c
@@ -952,27 +952,25 @@ gst_kate_enc_chain_text (GstKateEnc * ke, GstBuffer * buf,
rflow = GST_FLOW_ERROR;
} else {
const char *text = (const char *) GST_BUFFER_DATA (buf);
- if (text) {
- size_t text_len = GST_BUFFER_SIZE (buf);
- kate_float t0 = start / (double) GST_SECOND;
- kate_float t1 = stop / (double) GST_SECOND;
- GST_LOG_OBJECT (ke, "Encoding text: %*.*s (%u bytes) from %f to %f",
- (int) text_len, (int) text_len, GST_BUFFER_DATA (buf),
- GST_BUFFER_SIZE (buf), t0, t1);
- ret = kate_encode_text (&ke->k, t0, t1, text, text_len, &kp);
- if (G_UNLIKELY (ret < 0)) {
- GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL),
- ("Failed to encode text: %d", ret));
- rflow = GST_FLOW_ERROR;
- } else {
- rflow =
- gst_kate_enc_chain_push_packet (ke, &kp, start, stop - start + 1);
- }
- } else {
- /* FIXME: this should not be an error, we should ignore it and move on */
+ size_t text_len = GST_BUFFER_SIZE (buf);
+ kate_float t0 = start / (double) GST_SECOND;
+ kate_float t1 = stop / (double) GST_SECOND;
+
+ if (text == NULL) {
+ text = "";
+ text_len = 0;
+ }
+
+ GST_LOG_OBJECT (ke, "Encoding text: %*.*s (%u bytes) from %f to %f",
+ (int) text_len, (int) text_len, GST_BUFFER_DATA (buf),
+ GST_BUFFER_SIZE (buf), t0, t1);
+ ret = kate_encode_text (&ke->k, t0, t1, text, text_len, &kp);
+ if (G_UNLIKELY (ret < 0)) {
GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL),
- ("no text in text packet"));
+ ("Failed to encode text: %d", ret));
rflow = GST_FLOW_ERROR;
+ } else {
+ rflow = gst_kate_enc_chain_push_packet (ke, &kp, start, stop - start + 1);
}
}