summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2010-02-02 23:01:53 +0000
committerphintuka <phintuka>2010-02-02 23:01:53 +0000
commit89eabf30618aa7b661e49de950bc3c151f9e3a0e (patch)
treebf14b0dfdb9f5f4624ecd028977f0fb882e509ec
parentf7ee9a40a86caa18a1f05124e7be0f7c6f51e865 (diff)
downloadxineliboutput-89eabf30618aa7b661e49de950bc3c151f9e3a0e.tar.gz
xineliboutput-89eabf30618aa7b661e49de950bc3c151f9e3a0e.tar.bz2
Added sanity checks
Recuced logging
-rw-r--r--tools/ts.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/tools/ts.c b/tools/ts.c
index 063e4c8d..4564fe76 100644
--- a/tools/ts.c
+++ b/tools/ts.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: ts.c,v 1.16 2010-02-02 23:00:00 phintuka Exp $
+ * $Id: ts.c,v 1.17 2010-02-02 23:01:53 phintuka Exp $
*
*/
@@ -538,17 +538,26 @@ ts_state_t *ts_state_init(size_t buffer_size)
{
if (buffer_size < 8 * TS_SIZE)
buffer_size = 8 * TS_SIZE;
+ if (buffer_size > 4*1024*1024) {
+ LOGMSG("ERROR: ts_state_init(%zd)", buffer_size);
+ buffer_size = 4*1024*1024;
+ }
ts_state_t *ts = (ts_state_t*)calloc(1, sizeof(ts_state_t) + buffer_size);
- ts->buf_size = buffer_size;
+ if (ts) {
+ ts->buf_size = buffer_size;
+ }
+
return ts;
}
void ts_state_reset(ts_state_t *ts)
{
- size_t buf_size = ts->buf_size;
- memset(ts, 0, sizeof(ts_state_t));
- ts->buf_size = buf_size;
+ if (ts) {
+ size_t buf_size = ts->buf_size;
+ memset(ts, 0, sizeof(ts_state_t));
+ ts->buf_size = buf_size;
+ }
}
void ts_state_dispose(ts_state_t *ts)
@@ -574,7 +583,7 @@ static size_t ts_add_payload(ts_state_t *ts, const uint8_t *data)
}
if (ts->buf_len >= ts->buf_size - TS_SIZE) {
- LOGMSG("ts_add_payload: buffer full");
+ LOGDBG("ts_add_payload: buffer full");
ts->buf_len -= TS_SIZE;
memmove(ts->buf, ts->buf+TS_SIZE, ts->buf_len);
}