]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Reduce FFmpeg dependencies
authorAndreas Öman <andreas@lonelycoder.com>
Wed, 23 Jun 2010 21:43:00 +0000 (21:43 +0000)
committerAndreas Öman <andreas@lonelycoder.com>
Wed, 23 Jun 2010 21:43:00 +0000 (21:43 +0000)
20 files changed:
src/dvr/dvr.h
src/dvr/dvr_rec.c
src/dvr/mkmux.c
src/htsp.c
src/iptv_input.c
src/main.c
src/packet.c
src/parser_latm.c
src/parsers.c
src/plumbing/tsfix.c
src/psi.c
src/rawtsinput.c
src/transports.c
src/tsdemux.c
src/tvhead.h
src/v4l.c
src/webui/extjs.c
src/webui/extjs_dvb.c
src/webui/extjs_v4l.c
src/webui/simpleui.c

index 60df784065f3240513a16178cec1e1e217e586fa..9413a0c6f1dbdc89f31f5ca37edc0644acee972a 100644 (file)
@@ -19,7 +19,6 @@
 #ifndef DVR_H
 #define DVR_H
 
-#include <libavformat/avformat.h>
 #include <regex.h>
 #include "epg.h"
 #include "channels.h"
index 1a35e2e38d784773368b6cea3c44d92278dee2a7..003a1d85c631c72802095918c745f1989b492d3a 100644 (file)
  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <stdarg.h>
 #include <pthread.h>
 #include <assert.h>
 #include <string.h>
 #include <sys/stat.h>
 #include <libgen.h> /* basename */
 
-#include <libavutil/avstring.h>
-#include <libavcodec/avcodec.h>
-
 #include "htsstr.h"
 
 #include "tvhead.h"
@@ -192,7 +190,7 @@ pvr_generate_filename(dvr_entry_t *de)
   filename = strdup(de->de_ititle);
   cleanupfilename(filename);
 
-  av_strlcpy(path, dvr_storage, sizeof(path));
+  snprintf(path, sizeof(path), "%s", dvr_storage);
 
   /* Append per-day directory */
 
index 223fca5643f038ef2bd41957ff7ac60e8867b694..4e35d5b3e5f12185926c6d2caa852cbd1a748041 100644 (file)
 #include <fcntl.h>
 #include <unistd.h>
 #include <assert.h>
+#include <string.h>
 
 #include "tvhead.h"
 #include "streaming.h"
 #include "dvr.h"
 #include "mkmux.h"
 #include "ebml.h"
+#include "libavcodec/avcodec.h"
 
 TAILQ_HEAD(mk_cue_queue, mk_cue);
 
@@ -176,7 +178,7 @@ mk_build_tracks(mk_mux_t *mkm, const struct streaming_start *ss)
 
     mkm->tracks[i].index = ssc->ssc_index;
     mkm->tracks[i].type  = ssc->ssc_type;
-    mkm->tracks[i].nextpts = AV_NOPTS_VALUE;
+    mkm->tracks[i].nextpts = PTS_UNSET;
 
     switch(ssc->ssc_type) {
     case SCT_MPEG2VIDEO:
@@ -572,11 +574,11 @@ mk_write_frame_i(mk_mux_t *mkm, mk_track *t, th_pkt_t *pkt)
   size_t len;
   const int clusersizemax = 2000000;
 
-  if(pts == AV_NOPTS_VALUE)
+  if(pts == PTS_UNSET)
     // This is our best guess, it might be wrong but... oh well
     pts = t->nextpts;
 
-  if(pts != AV_NOPTS_VALUE) {
+  if(pts != PTS_UNSET) {
     t->nextpts = pts + (pkt->pkt_duration >> pkt->pkt_field);
        
     nxt = av_rescale_q(t->nextpts, mpeg_tc, mkv_tc);
index 8e3b4b655e1fff62e238f08ea9bf2110d70fd57a..de326cb2b05c34a08b02c84fd6c6057e60aeb470 100644 (file)
@@ -45,6 +45,7 @@
 #include "settings.h"
 #include <sys/time.h>
 
+#include "libavcodec/avcodec.h"
 
 static void *htsp_server;
 
@@ -1406,12 +1407,12 @@ htsp_stream_deliver(htsp_subscription_t *hs, th_pkt_t *pkt)
   htsmsg_add_u32(m, "com", pkt->pkt_commercial);
 
 
-  if(pkt->pkt_pts != AV_NOPTS_VALUE) {
+  if(pkt->pkt_pts != PTS_UNSET) {
     int64_t pts = av_rescale_q(pkt->pkt_pts, mpeg_tc, AV_TIME_BASE_Q);
     htsmsg_add_s64(m, "pts", pts);
   }
 
-  if(pkt->pkt_dts != AV_NOPTS_VALUE) {
+  if(pkt->pkt_dts != PTS_UNSET) {
     int64_t dts = av_rescale_q(pkt->pkt_dts, mpeg_tc, AV_TIME_BASE_Q);
     htsmsg_add_s64(m, "dts", dts);
   }
@@ -1449,7 +1450,7 @@ htsp_stream_deliver(htsp_subscription_t *hs, th_pkt_t *pkt)
       htsmsg_add_s64(m, "delay", 0);
     } else if((hm = TAILQ_FIRST(&hs->hs_q.hmq_q)) != NULL &&
              (n = hm->hm_msg) != NULL && !htsmsg_get_s64(n, "dts", &ts) &&
-             pkt->pkt_dts != AV_NOPTS_VALUE && ts != AV_NOPTS_VALUE) {
+             pkt->pkt_dts != PTS_UNSET && ts != PTS_UNSET) {
       htsmsg_add_s64(m, "delay", pkt->pkt_dts - ts);
     }
     pthread_mutex_unlock(&htsp->htsp_out_mutex);
index 60f228022593a4e878ec30ec65450b92e73ce55b..ef7ae1431a25dcd465f32ed5d69076e3833d5087 100644 (file)
@@ -33,8 +33,6 @@
 #include <errno.h>
 #include <linux/netdevice.h>
 
-//#include <libavutil/avstring.h>
-
 #include "tvhead.h"
 #include "htsmsg.h"
 #include "channels.h"
index 703e99210968c2c1cb6973da73a697e63dd8347e..b66ce193e9c2c4fa940c9907d5d3637a14aaaf0b 100644 (file)
@@ -35,8 +35,6 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-#include <libavformat/avformat.h>
-
 #include "tvhead.h"
 #include "tcp.h"
 #include "access.h"
@@ -360,8 +358,6 @@ main(int argc, char **argv)
   /**
    * Initialize subsystems
    */
-  av_register_all();
-
   xmltv_init();   /* Must be initialized before channels */
 
   transport_init();
index e80890828d8cb23d71e3ceb09e72d7007a801c33..9231a6e063429681eac7efb318933c8895b50723 100644 (file)
@@ -46,7 +46,7 @@ pkt_alloc(const void *data, size_t datalen, int64_t pts, int64_t dts)
   pkt = calloc(1, sizeof(th_pkt_t));
   pkt->pkt_payloadlen = datalen;
   if(datalen > 0) {
-    pkt->pkt_payload = malloc(datalen + FF_INPUT_BUFFER_PADDING_SIZE);
+    pkt->pkt_payload = malloc(datalen);
     if(data != NULL)
       memcpy(pkt->pkt_payload, data, datalen);
   }
@@ -123,7 +123,7 @@ pkt_merge_global(th_pkt_t *pkt)
   
   n->pkt_payloadlen = pkt->pkt_globaldata_len + pkt->pkt_payloadlen;
 
-  n->pkt_payload = malloc(n->pkt_payloadlen + FF_INPUT_BUFFER_PADDING_SIZE);
+  n->pkt_payload = malloc(n->pkt_payloadlen);
   memcpy(n->pkt_payload, pkt->pkt_globaldata, pkt->pkt_globaldata_len);
   memcpy(n->pkt_payload + pkt->pkt_globaldata_len, pkt->pkt_payload,
         pkt->pkt_payloadlen);
@@ -147,14 +147,12 @@ pkt_copy(th_pkt_t *pkt)
   n->pkt_refcount = 1;
 
   if(pkt->pkt_globaldata_len) {
-    n->pkt_globaldata = malloc(pkt->pkt_globaldata_len + 
-                              FF_INPUT_BUFFER_PADDING_SIZE);
+    n->pkt_globaldata = malloc(pkt->pkt_globaldata_len);
     memcpy(n->pkt_globaldata, pkt->pkt_globaldata, pkt->pkt_globaldata_len);
   }
 
   if(pkt->pkt_payloadlen) {
-    n->pkt_payload = malloc(pkt->pkt_payloadlen + 
-                              FF_INPUT_BUFFER_PADDING_SIZE);
+    n->pkt_payload = malloc(pkt->pkt_payloadlen);
     memcpy(n->pkt_payload, pkt->pkt_payload, pkt->pkt_payloadlen);
   }
 
index 62e944258899438b9a9461db3bfac7f6e5f1e10b..d1a318f3daa56ff616b7b4c3c6dff1da1806f69f 100644 (file)
@@ -191,7 +191,7 @@ parse_latm_audio_mux_element(th_transport_t *t, th_stream_t *st, uint8_t *data,
   if(slot_len * 8 > remaining_bits(&bs))
     return NULL;
 
-  if(st->st_curdts == AV_NOPTS_VALUE)
+  if(st->st_curdts == PTS_UNSET)
     return NULL;
 
   th_pkt_t *pkt = pkt_alloc(NULL, 0, st->st_curdts, st->st_curdts);
index 1c25ad540b94d667d2734d08770c808e0a9fa457..8011020424232d5af17ac287268a64d7577a007f 100644 (file)
@@ -76,7 +76,7 @@ getpts(const uint8_t *p)
 
   } else {
     // Marker bits not present
-    return AV_NOPTS_VALUE;
+    return PTS_UNSET;
   }
 }
 
@@ -458,7 +458,7 @@ makeapkt(th_transport_t *t, th_stream_t *st, const void *buf,
          
   parser_deliver(t, st, pkt);
          
-  st->st_curdts = AV_NOPTS_VALUE;
+  st->st_curdts = PTS_UNSET;
   st->st_nextdts = dts + duration;
 }
          
@@ -506,10 +506,10 @@ parse_mpa(th_transport_t *t, th_stream_t *st, size_t ilen,
        int duration = 90000 * 1152 / sr;
        int64_t dts = st->st_curdts;
 
-       if(dts == AV_NOPTS_VALUE)
+       if(dts == PTS_UNSET)
          dts = st->st_nextdts;
 
-       if(dts != AV_NOPTS_VALUE && 
+       if(dts != PTS_UNSET && 
           len >= i + fsize + 4 &&
           mpa_valid_frame(buf + i + fsize)) {
          
@@ -637,10 +637,10 @@ parse_ac3(th_transport_t *t, th_stream_t *st, size_t ilen,
        int duration = 90000 * 1536 / sr;
        int64_t dts = st->st_curdts;
 
-       if(dts == AV_NOPTS_VALUE)
+       if(dts == PTS_UNSET)
          dts = st->st_nextdts;
 
-       if(dts != AV_NOPTS_VALUE && 
+       if(dts != PTS_UNSET && 
           len >= i + fsize + 6 &&
           ac3_valid_frame(buf + i + fsize)) {
          makeapkt(t, st, buf + i, fsize, dts, duration);
@@ -684,7 +684,7 @@ parse_pes_header(th_transport_t *t, th_stream_t *st,
 
     d = (pts - dts) & PTS_MASK;
     if(d > 180000) // More than two seconds of PTS/DTS delta, probably corrupt
-      pts = dts = AV_NOPTS_VALUE;
+      pts = dts = PTS_UNSET;
 
   } else if((flags & 0xc0) == 0x80) {
     if(hlen < 5)
@@ -695,8 +695,8 @@ parse_pes_header(th_transport_t *t, th_stream_t *st,
     return hlen + 3;
 
   if(st->st_buffer_errors) {
-    st->st_curdts = AV_NOPTS_VALUE;
-    st->st_curpts = AV_NOPTS_VALUE;
+    st->st_curdts = PTS_UNSET;
+    st->st_curpts = PTS_UNSET;
   } else {
     st->st_curdts = dts;
     st->st_curpts = pts;
@@ -704,8 +704,8 @@ parse_pes_header(th_transport_t *t, th_stream_t *st,
   return hlen + 3;
 
  err:
-  st->st_curdts = AV_NOPTS_VALUE;
-  st->st_curpts = AV_NOPTS_VALUE;
+  st->st_curdts = PTS_UNSET;
+  st->st_curpts = PTS_UNSET;
   limitedlog(&st->st_loglimit_pes, "TS", transport_component_nicename(st),
             "Corrupted PES header");
   return -1;
@@ -835,9 +835,7 @@ parser_global_data_move(th_stream_t *st, const uint8_t *data, size_t len)
   int len2 = drop_trailing_zeroes(data, len);
 
   st->st_global_data = realloc(st->st_global_data,
-                              st->st_global_data_len + len2 +
-                              FF_INPUT_BUFFER_PADDING_SIZE);
-  
+                              st->st_global_data_len + len2);
   memcpy(st->st_global_data + st->st_global_data_len, data, len2);
   st->st_global_data_len += len2;
 
@@ -944,11 +942,11 @@ parse_mpeg2video(th_transport_t *t, th_stream_t *st, size_t len,
       st->st_buffer = malloc(st->st_buffer_size);
       
       /* If we know the frame duration, increase DTS accordingly */
-      if(st->st_curdts != AV_NOPTS_VALUE)
+      if(st->st_curdts != PTS_UNSET)
        st->st_curdts += st->st_frame_duration;
 
       /* PTS cannot be extrapolated (it's not linear) */
-      st->st_curpts = AV_NOPTS_VALUE
+      st->st_curpts = PTS_UNSET
       return 1;
     }
     break;
@@ -990,7 +988,7 @@ parse_h264(th_transport_t *t, th_stream_t *st, size_t len,
     if(len >= 9)
       parse_pes_header(t, st, buf + 6, len - 6);
 
-    if(st->st_prevdts != AV_NOPTS_VALUE && st->st_curdts != AV_NOPTS_VALUE) {
+    if(st->st_prevdts != PTS_UNSET && st->st_curdts != PTS_UNSET) {
       d = (st->st_curdts - st->st_prevdts) & 0x1ffffffffLL;
 
       if(d < 90000)
@@ -1077,8 +1075,8 @@ parse_h264(th_transport_t *t, th_stream_t *st, size_t len,
       st->st_curpkt = NULL;
       st->st_buffer = malloc(st->st_buffer_size);
 
-      st->st_curdts = AV_NOPTS_VALUE;
-      st->st_curpts = AV_NOPTS_VALUE;
+      st->st_curdts = PTS_UNSET;
+      st->st_curpts = PTS_UNSET;
     }
     return 1;
   }
index f56c38f95f5be0dbc497973056f294912e996c65..f9cf8c30410e027e5aeb10a1084077dba298cb77 100644 (file)
@@ -96,8 +96,8 @@ tsfix_add_stream(tsfix_t *tf, int index, streaming_component_type_t type)
 
   tfs->tfs_type = type;
   tfs->tfs_index = index;
-  tfs->tfs_last_dts_norm = AV_NOPTS_VALUE;
-  tfs->tfs_last_dts_in = AV_NOPTS_VALUE;
+  tfs->tfs_last_dts_norm = PTS_UNSET;
+  tfs->tfs_last_dts_in = PTS_UNSET;
   tfs->tfs_dts_epoch = 0; 
 
   LIST_INSERT_HEAD(&tf->tf_streams, tfs, tfs_link);
@@ -121,7 +121,7 @@ tsfix_start(tsfix_t *tf, streaming_start_t *ss)
 
   TAILQ_INIT(&tf->tf_ptsq);
 
-  tf->tf_tsref = AV_NOPTS_VALUE;
+  tf->tf_tsref = PTS_UNSET;
   tf->tf_hasvideo = hasvideo;
 }
 
@@ -148,7 +148,7 @@ normalize_ts(tsfix_t *tf, tfstream_t *tfs, th_pkt_t *pkt)
 
   int checkts = SCT_ISAUDIO(tfs->tfs_type) || SCT_ISVIDEO(tfs->tfs_type);
 
-  if(tf->tf_tsref == AV_NOPTS_VALUE) {
+  if(tf->tf_tsref == PTS_UNSET) {
     pkt_ref_dec(pkt);
     return;
   }
@@ -156,7 +156,7 @@ normalize_ts(tsfix_t *tf, tfstream_t *tfs, th_pkt_t *pkt)
   /* Subtract the transport wide start offset */
   dts = pkt->pkt_dts - tf->tf_tsref;
 
-  if(tfs->tfs_last_dts_norm == AV_NOPTS_VALUE) {
+  if(tfs->tfs_last_dts_norm == PTS_UNSET) {
     if(dts < 0) {
       /* Early packet with negative time stamp, drop those */
       pkt_ref_dec(pkt);
@@ -191,7 +191,7 @@ normalize_ts(tsfix_t *tf, tfstream_t *tfs, th_pkt_t *pkt)
   dts += tfs->tfs_dts_epoch;
   tfs->tfs_last_dts_norm = dts;
 
-  if(pkt->pkt_pts != AV_NOPTS_VALUE) {
+  if(pkt->pkt_pts != PTS_UNSET) {
     /* Compute delta between PTS and DTS (and watch out for 33 bit wrap) */
     int64_t ptsoff = (pkt->pkt_pts - pkt->pkt_dts) & PTS_MASK;
     
@@ -286,7 +286,7 @@ static void
 compute_pts(tsfix_t *tf, tfstream_t *tfs, th_pkt_t *pkt)
 {
   // If PTS is missing, set it to DTS if not video
-  if(pkt->pkt_pts == AV_NOPTS_VALUE && !SCT_ISVIDEO(tfs->tfs_type)) {
+  if(pkt->pkt_pts == PTS_UNSET && !SCT_ISVIDEO(tfs->tfs_type)) {
     pkt->pkt_pts = pkt->pkt_dts;
     tsfixprintf("TSFIX: %-12s PTS set to %lld\n",
                streaming_component_type2txt(tfs->tfs_type),
@@ -294,7 +294,7 @@ compute_pts(tsfix_t *tf, tfstream_t *tfs, th_pkt_t *pkt)
   }
 
   /* PTS known and no other packets in queue, deliver at once */
-  if(pkt->pkt_pts != AV_NOPTS_VALUE && TAILQ_FIRST(&tf->tf_ptsq) == NULL)
+  if(pkt->pkt_pts != PTS_UNSET && TAILQ_FIRST(&tf->tf_ptsq) == NULL)
     normalize_ts(tf, tfs, pkt);
   else
     recover_pts(tf, tfs, pkt);
@@ -317,18 +317,18 @@ tsfix_input_packet(tsfix_t *tf, streaming_message_t *sm)
   }
 
 
-  if(tf->tf_tsref == AV_NOPTS_VALUE &&
+  if(tf->tf_tsref == PTS_UNSET &&
      (!tf->tf_hasvideo ||
       (SCT_ISVIDEO(tfs->tfs_type) && pkt->pkt_frametype == PKT_I_FRAME))) {
       tf->tf_tsref = pkt->pkt_dts;
       tsfixprintf("reference clock set to %lld\n", tf->tf_tsref);
   }
 
-  if(pkt->pkt_dts == AV_NOPTS_VALUE) {
+  if(pkt->pkt_dts == PTS_UNSET) {
 
     int pdur = pkt->pkt_duration >> pkt->pkt_field;
 
-    if(tfs->tfs_last_dts_in == AV_NOPTS_VALUE) {
+    if(tfs->tfs_last_dts_in == PTS_UNSET) {
       pkt_ref_dec(pkt);
       return;
     }
index 2496e7669e4d569caf2e41be209aa186171fbab1..c0cd9057480fcc3e49575b4aec9342f977c86c44 100644 (file)
--- a/src/psi.c
+++ b/src/psi.c
@@ -22,9 +22,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <libavutil/common.h>
-#include <libavutil/avstring.h>
-
 #include "tvhead.h"
 #include "psi.h"
 #include "transports.h"
@@ -1031,7 +1028,7 @@ psi_load_transport_settings(htsmsg_t *m, th_transport_t *t)
     st = transport_stream_create(t, pid, type);
     
     if((v = htsmsg_get_str(c, "language")) != NULL)
-      av_strlcpy(st->st_lang, v, 4);
+      snprintf(st->st_lang, 4, "%s", v);
 
     if(!htsmsg_get_u32(c, "position", &u32))
       st->st_position = u32;
index dc1d60a746ef5a13c923937c8c166636d8e8e18f..3c39e1206857e35b05de87db83690742f55f9c19 100644 (file)
@@ -243,17 +243,17 @@ process_ts_packet(rawts_t *rt, uint8_t *tsb)
   }
   
   LIST_FOREACH(t, &rt->rt_transports, tht_group_link) {
-    pcr = AV_NOPTS_VALUE;
+    pcr = PTS_UNSET;
 
     ts_recv_packet1(t, tsb, &pcr);
 
-    if(pcr != AV_NOPTS_VALUE) {
+    if(pcr != PTS_UNSET) {
       
       if(rt->rt_pcr_pid == 0)
        rt->rt_pcr_pid = pid;
 
       if(rt->rt_pcr_pid == pid) {
-       if(t->tht_pcr_last != AV_NOPTS_VALUE && didsleep == 0) {
+       if(t->tht_pcr_last != PTS_UNSET && didsleep == 0) {
          struct timespec slp;
          int64_t delta = pcr - t->tht_pcr_last;
 
index d659111d96e3223ac780304932b4562eba684c44..dceb446be9cd1c524c66ff32881617e8ae186543 100644 (file)
@@ -63,12 +63,12 @@ stream_init(th_stream_t *st)
   st->st_cc_valid = 0;
 
   st->st_startcond = 0xffffffff;
-  st->st_curdts = AV_NOPTS_VALUE;
-  st->st_curpts = AV_NOPTS_VALUE;
-  st->st_prevdts = AV_NOPTS_VALUE;
+  st->st_curdts = PTS_UNSET;
+  st->st_curpts = PTS_UNSET;
+  st->st_prevdts = PTS_UNSET;
 
-  st->st_pcr_real_last = AV_NOPTS_VALUE;
-  st->st_pcr_last      = AV_NOPTS_VALUE;
+  st->st_pcr_real_last = PTS_UNSET;
+  st->st_pcr_last      = PTS_UNSET;
   st->st_pcr_drift     = 0;
   st->st_pcr_recovery_fails = 0;
 }
@@ -502,7 +502,7 @@ transport_create(const char *identifier, int type, int source_type)
   t->tht_source_type = source_type;
   t->tht_refcount = 1;
   t->tht_enabled = 1;
-  t->tht_pcr_last = AV_NOPTS_VALUE;
+  t->tht_pcr_last = PTS_UNSET;
   TAILQ_INIT(&t->tht_components);
 
   streaming_pad_init(&t->tht_streaming_pad);
index 555d05fa36ca29fb4c57cfdef06835fde6d79e8d..83f91fcfa3949e6fcb98b749e7ccd35226c434fe 100644 (file)
@@ -125,8 +125,6 @@ ts_recv_packet0(th_transport_t *t, th_stream_t *st, const uint8_t *tsb)
   }
 }
 
-static const AVRational mpeg_tc = {1, 90000};
-
 /**
  * Recover PCR
  *
@@ -155,14 +153,14 @@ ts_extract_pcr(th_transport_t *t, th_stream_t *st, const uint8_t *tsb,
 
   real = getmonoclock();
 
-  if(st->st_pcr_real_last != AV_NOPTS_VALUE) {
+  if(st->st_pcr_real_last != PTS_UNSET) {
     d = (real - st->st_pcr_real_last) - (pcr - st->st_pcr_last);
     
     if(d < -90000LL || d > 90000LL) {
       st->st_pcr_recovery_fails++;
       if(st->st_pcr_recovery_fails > 10) {
        st->st_pcr_recovery_fails = 0;
-       st->st_pcr_real_last = AV_NOPTS_VALUE;
+       st->st_pcr_real_last = PTS_UNSET;
       }
       return;
     }
index 5d824f0f10df08c2d86db6da81cb0b5b2e5e8107..7814b38644519596ca1b810c9f0fb48f88cca37a 100644 (file)
 #include "avg.h"
 #include "hts_strtab.h"
 
-#include <libavcodec/avcodec.h>
-
 #include "redblack.h"
 
+#define PTS_UNSET INT64_C(0x8000000000000000)
+
 extern pthread_mutex_t global_lock;
 extern pthread_mutex_t ffmpeg_lock;
 extern pthread_mutex_t fork_lock;
index 6d1d3308b281ea6d41c640be11251916e83d39ab..0754079e38a7be39345b173710aa919e3d12e1ef 100644 (file)
--- a/src/v4l.c
+++ b/src/v4l.c
@@ -18,7 +18,7 @@
 
 #include <assert.h>
 #include <pthread.h>
-
+#include <ctype.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioctl.h>
index 94a1c117905f1aeded61f689124c7966617386aa..18edc653651d2ade4b0fe5c001931c2cf5a47a20 100644 (file)
@@ -25,7 +25,6 @@
 #include <stdarg.h>
 
 #include <arpa/inet.h>
-#include <libavutil/avstring.h>
 
 #include "htsmsg.h"
 #include "htsmsg_json.h"
index f17b487685b586f45dc022662a508e5f52ef9b9e..a4da7b7483e770bdc401e6c318905c3de8d3b889 100644 (file)
@@ -25,7 +25,6 @@
 #include <stdarg.h>
 
 #include <arpa/inet.h>
-#include <libavutil/avstring.h>
 
 #include "htsmsg.h"
 #include "htsmsg_json.h"
index ab817258600d27d805877ee4df0d3fa36765aa60..4b22e93881cadfb9ebbf378b28acc8846aa64e26 100644 (file)
@@ -25,7 +25,6 @@
 #include <stdarg.h>
 
 #include <arpa/inet.h>
-#include <libavutil/avstring.h>
 
 #include "htsmsg.h"
 #include "htsmsg_json.h"
index f2392c243c47c8bd37e31c265649bd70adf2aa7e..4fae2d8da0fc4b25afdd56180c9c13bcb72b37c9 100644 (file)
@@ -22,6 +22,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <limits.h>
 
 #include "tvhead.h"
 #include "http.h"