]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
transcoding: little cleanups
authorJaroslav Kysela <perex@perex.cz>
Tue, 16 Jan 2018 17:42:02 +0000 (18:42 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 16 Jan 2018 17:45:29 +0000 (18:45 +0100)
src/transcoding/memutils.c
src/transcoding/memutils.h
src/transcoding/transcode/stream.c

index 3313fd815c8a913d5cf7b6aee7f5c687aff4714b..97044fc09fa39ab272c1a3078ca2f221e9403981 100644 (file)
@@ -27,12 +27,14 @@ static char *
 str_add(const char *sep, const char *str)
 {
     size_t sep_len = strlen(sep), str_len = strlen(str);
-    char *result = NULL;
+    char *result = malloc(sep_len + str_len + 1);
 
-    if ((result = calloc(1, sep_len + str_len + 1))) {
+    if (result) {
         if (str_len > 0) {
-            strncpy(result, sep, sep_len);
-            strncat(result, str, str_len);
+            strcpy(result, sep);
+            strcat(result, str);
+        } else {
+            result[0] = '\0';
         }
     }
     return result;
@@ -46,32 +48,35 @@ str_vjoin(const char *separator, va_list ap)
     char *str = NULL, *tmp_result = NULL, *result = NULL;
     size_t str_len = 0, result_size = 1;
 
-    if ((result = calloc(1, result_size))) {
-        while ((va_str = va_arg(ap, const char *))) {
-            if (strlen(va_str)) {
-                if ((str = str_add(strlen(result) ? sep : "", va_str))) {
-                    if ((str_len = strlen(str))) {
-                        result_size += str_len;
-                        if ((tmp_result = realloc(result, result_size))) {
-                            result = tmp_result;
-                            strncat(result, str, str_len);
-                        }
-                        else {
-                            str_clear(result);
-                        }
-                    }
-                    str_clear(str);
-                }
-                else {
-                    str_clear(result);
-                }
-                if (!result) {
-                    break;
+    result = calloc(1, result_size);
+    if (result == NULL)
+        return NULL;
+    while ((va_str = va_arg(ap, const char *))) {
+        str_len = strlen(va_str);
+        if (str_len == 0)
+            continue;
+        str = str_add(result[0] ? sep : "", va_str);
+        if (str) {
+            str_len = strlen(str);
+            if (str_len) {
+                if ((tmp_result = realloc(result, result_size + str_len))) {
+                    result = tmp_result;
+                    strcpy(result + result_size - 1, str);
+                    result_size += str_len;
+                } else {
+                    goto reterr;
                 }
             }
+            str_clear(str);
+        } else {
+            goto reterr;
         }
     }
     return result;
+
+reterr:
+    free(result);
+    return NULL;
 }
 
 
@@ -101,9 +106,8 @@ str_snprintf(char *str, size_t size, const char *format, ...)
 uint8_t *
 pktbuf_copy_data(pktbuf_t *pb)
 {
-    uint8_t *data = av_mallocz(pb->pb_size);
-    if (data) {
+    uint8_t *data = av_malloc(pb->pb_size);
+    if (data)
         memcpy(data, pb->pb_data, pb->pb_size);
-    }
     return data;
 }
index 08233ebabdd73401bf9516a42853d85f0cceff98..3ca2c9ebe71019db5ae405d1c4dba6cb9e249b1e 100644 (file)
 
 #define TVH_INPUT_BUFFER_MAX_SIZE (INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE)
 
-
-#define TVHPKT_INCREF pkt_ref_inc
-
-#define TVHPKT_DECREF pkt_ref_dec
-
 #define TVHPKT_CLEAR(ptr) \
     do { \
         th_pkt_t *_tmp = (ptr); \
         if (_tmp != NULL) { \
             (ptr) = NULL; \
-            TVHPKT_DECREF(_tmp); \
+            pkt_ref_dec(_tmp); \
         } \
     } while (0)
 
 #define TVHPKT_SET(ptr, pkt) \
     do { \
-        TVHPKT_INCREF((pkt)); \
+        pkt_ref_inc((pkt)); \
         TVHPKT_CLEAR((ptr)); \
         (ptr) = (pkt); \
     } while (0)
 
-
 #define str_clear(str) \
     do { \
         if ((str) != NULL) { \
index 909aef1c874488cf1ebfee9af962d6a8c5779abb..2c5c6864c4c28dab2a4aa38fcac6374b247ee1a2 100644 (file)
@@ -124,7 +124,7 @@ tvh_stream_handle(TVHStream *self, th_pkt_t *pkt)
     if (pkt->pkt_payload && self->context) {
         return (tvh_context_handle(self->context, pkt) < 0) ? -1 : 0;
     }
-    TVHPKT_INCREF(pkt);
+    pkt_ref_inc(pkt);
     return tvh_transcoder_deliver(self->transcoder, pkt);
 }