[bTSstream-devel] [Git][videolan/bitstream][master] 6 commits: examples: cleanup Makefile

Massiot gitlab at videolan.org
Thu Dec 14 18:08:50 CET 2017


Massiot pushed to branch master at VideoLAN / bitstream


Commits:
161bb0fd by Clément Vasseur at 2017-12-11T16:58:54+00:00
examples: cleanup Makefile

- - - - -
6e3328a8 by Clément Vasseur at 2017-12-11T16:58:54+00:00
Install pkg-config file

- - - - -
7f41381e by Clément Vasseur at 2017-12-11T16:58:54+00:00
Fix invalid suffix on literal

C++11 requires a space between literal and string macro.

- - - - -
49157018 by Clément Vasseur at 2017-12-12T10:54:14+00:00
Use make check instead of headers_test.sh

- - - - -
622c3bb3 by Clément Vasseur at 2017-12-12T10:54:14+00:00
Add missing inline for dvb_time_format_UTC

- - - - -
20ce4345 by Clément Vasseur at 2017-12-12T10:54:14+00:00
dvb/sim.h: simplify TLV_DECLARE_PARAM

Fix int-in-bool-context warning from g++:
./dvb/sim.h:206:40: error: ‘<<’ in boolean context, did you mean ‘<’ ?

- - - - -


11 changed files:

- .gitignore
- Makefile
- + bitstream.pc.in
- dvb/si/datetime.h
- dvb/si/desc_44.h
- dvb/si/desc_5a.h
- dvb/sim.h
- + examples/.gitignore
- examples/Makefile
- − headers_test.sh
- scte/35_print.h


Changes:

=====================================
.gitignore
=====================================
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,9 @@
-examples/dvb_ecmg
-examples/dvb_ecmg_test
-examples/dvb_gen_si
-examples/dvb_print_si
-examples/mpeg_print_pcr
-examples/mpeg_restamp
-examples/rtp_check_seqnum
+/bitstream
+/bitstream.pc
+/examples/dvb_ecmg
+/examples/dvb_ecmg_test
+/examples/dvb_gen_si
+/examples/dvb_print_si
+/examples/mpeg_print_pcr
+/examples/mpeg_restamp
+/examples/rtp_check_seqnum


=====================================
Makefile
=====================================
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,22 @@
 PREFIX ?= /usr/local
-INCLUDE = $(subst //,/,$(DESTDIR)/$(PREFIX)/include/bitstream)
+INCLUDEDIR = $(PREFIX)/include
+LIBDIR = $(PREFIX)/lib
+INCLUDE = $(DESTDIR)$(INCLUDEDIR)/bitstream
+PKGCONFIG = $(DESTDIR)$(LIBDIR)/pkgconfig
 VERSION = 1.2
 
 all:
-	@echo "Run \"make install\" to install biTStream into $(INCLUDE)"
+	ln -nsf .. examples/bitstream
+	$(MAKE) -C examples
 
-install:
+bitstream.pc: bitstream.pc.in
+	@echo "GEN      $@"
+	@sed -e 's|@PREFIX@|$(PREFIX)|' \
+	     -e 's|@INCLUDEDIR@|$(INCLUDEDIR)|' \
+	     -e 's|@VERSION@|$(VERSION)|' \
+	     $< > $@
+
+install: bitstream.pc
 	@echo "INSTALL  $(INCLUDE)"
 	@install -d $(INCLUDE)
 	@install -m 644 common.h $(INCLUDE)/
@@ -29,12 +40,42 @@ install:
 	@install -m 644 scte/*.h $(INCLUDE)/scte
 	@install -d $(INCLUDE)/smpte
 	@install -m 644 smpte/*.h $(INCLUDE)/smpte
+	@echo "INSTALL  $(PKGCONFIG)/bitstream.pc"
+	@install -d $(PKGCONFIG)
+	@install -m 644 bitstream.pc $(PKGCONFIG)
 
 uninstall:
 	@echo "REMOVE   $(INCLUDE)"
-	@rm -rf $(INCLUDE)
+	@$(RM) -r $(INCLUDE)
+	@echo "REMOVE   $(PKGCONFIG)/bitstream.pc"
+	@$(RM) $(PKGCONFIG)/bitstream.pc
 
 dist:
-	git archive --format=tar --prefix=bitstream-$(VERSION)/ master | bzip2 -9 > bitstream-$(VERSION).tar.bz2
+	git archive --format=tar --prefix=bitstream-$(VERSION)/ master | \
+	  bzip2 -9 > bitstream-$(VERSION).tar.bz2
+
+clean:
+	$(RM) bitstream bitstream.pc
+	$(MAKE) -C examples clean
+
+# if you want to check only particular headers,
+# use make check HEADER_LIST="dvb/sim.h ietf/rtp.h"
+
+HEADER_LIST = $$(find * -name '*.h')
+
+FLAGS = -I. -Werror -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wformat=2
+
+compiler_c = $(CC) $(FLAGS) $(CFLAGS)
+compiler_c++ = $(CXX) $(FLAGS) $(CXXFLAGS)
+compile = $(compiler_$1) -include "$$header" -c -x $1 /dev/null -o /dev/null
+
+check:
+	@ln -nsf . bitstream
+	@for header in $(HEADER_LIST); do \
+	  $(if $(V),set -x;) \
+	  $(call compile,c) || exit 1; \
+	  $(call compile,c++) || exit 1; \
+	  echo "PASS: $$header"; \
+	done
 
-.PHONY: install uninstall distcheck
+.PHONY: all install uninstall dist clean check


=====================================
bitstream.pc.in
=====================================
--- /dev/null
+++ b/bitstream.pc.in
@@ -0,0 +1,7 @@
+prefix=@PREFIX@
+includedir=@INCLUDEDIR@
+
+Name: bitstream
+Description: Binary structures for MPEG, DVB, IETF, SMPTE, IEEE, SCTE, etc.
+Version: @VERSION@
+Cflags: -I${includedir}


=====================================
dvb/si/datetime.h
=====================================
--- a/dvb/si/datetime.h
+++ b/dvb/si/datetime.h
@@ -124,7 +124,7 @@ static inline uint32_t dvb_time_encode_duration(unsigned int duration_sec)
 }
 #undef dec2bcd
 
-static time_t dvb_time_format_UTC(uint64_t UTC_time, struct tm *tm, char *output) {
+static inline time_t dvb_time_format_UTC(uint64_t UTC_time, struct tm *tm, char *output) {
     struct tm tm_local;
     if (tm == NULL)
         tm = &tm_local;


=====================================
dvb/si/desc_44.h
=====================================
--- a/dvb/si/desc_44.h
+++ b/dvb/si/desc_44.h
@@ -128,14 +128,14 @@ static inline void desc44_print(const uint8_t *p_desc, f_print pf_print,
     switch (i_print_type) {
     case PRINT_XML:
         pf_print(opaque,
-             "<CABLE_DESC frequency=\"%"PRIu64"\" fecouter=\"%s\" modulation=\"%s\" symbolrate=\"%u\" fecinner=\"%s\"/>",
+             "<CABLE_DESC frequency=\"%" PRIu64 "\" fecouter=\"%s\" modulation=\"%s\" symbolrate=\"%u\" fecinner=\"%s\"/>",
              desc44_get_frequency(p_desc), psz_fecouter, psz_modulation,
              desc44_get_symbolrate(p_desc),
              dvb_delivery_get_fec(desc43_get_fecinner(p_desc)));
         break;
     default:
         pf_print(opaque,
-             "    - desc 44 dvb-c frequency=%"PRIu64" Hz fecouter=%s modulation=%s symbolrate=%u fecinner=%s",
+             "    - desc 44 dvb-c frequency=%" PRIu64 " Hz fecouter=%s modulation=%s symbolrate=%u fecinner=%s",
              desc44_get_frequency(p_desc), psz_fecouter, psz_modulation,
              desc44_get_symbolrate(p_desc),
              dvb_delivery_get_fec(desc43_get_fecinner(p_desc)));


=====================================
dvb/si/desc_5a.h
=====================================
--- a/dvb/si/desc_5a.h
+++ b/dvb/si/desc_5a.h
@@ -247,7 +247,7 @@ static inline void desc5a_print(const uint8_t *p_desc, f_print pf_print,
     switch (i_print_type) {
     case PRINT_XML:
         pf_print(opaque,
-             "<TERRESTRIAL_DESC frequency=\"%"PRIu64"\" bandwidth=\"%u\" priority=\"%s\" timeslicing=\"%d\" mpefec=\"%d\" constellation=\"%s\" hierarchy=\"%s\" coderatehp=\"%s\" coderatelp=\"%s\" guard=\"%s\" transmission=\"%s\" otherfrequency=\"%d\"/>",
+             "<TERRESTRIAL_DESC frequency=\"%" PRIu64 "\" bandwidth=\"%u\" priority=\"%s\" timeslicing=\"%d\" mpefec=\"%d\" constellation=\"%s\" hierarchy=\"%s\" coderatehp=\"%s\" coderatelp=\"%s\" guard=\"%s\" transmission=\"%s\" otherfrequency=\"%d\"/>",
              desc5a_get_frequency(p_desc), i_bandwidth,
              desc5a_get_priority(p_desc) ? "HP" : "LP",
              desc5a_get_timeslicing(p_desc) ? 1 : 0,
@@ -260,7 +260,7 @@ static inline void desc5a_print(const uint8_t *p_desc, f_print pf_print,
         break;
     default:
         pf_print(opaque,
-             "    - desc 5a dvb-t frequency=%"PRIu64" Hz bandwidth=%u MHz priority=%s timeslicing=%d mpefec=%d constellation=%s hierarchy=%s coderatehp=%s coderatelp=%s guard=%s transmission=%s otherfrequency=%d",
+             "    - desc 5a dvb-t frequency=%" PRIu64 " Hz bandwidth=%u MHz priority=%s timeslicing=%d mpefec=%d constellation=%s hierarchy=%s coderatehp=%s coderatelp=%s guard=%s transmission=%s otherfrequency=%d",
              desc5a_get_frequency(p_desc), i_bandwidth,
              desc5a_get_priority(p_desc) ? "HP" : "LP",
              desc5a_get_timeslicing(p_desc) ? 1 : 0,


=====================================
dvb/sim.h
=====================================
--- a/dvb/sim.h
+++ b/dvb/sim.h
@@ -203,9 +203,9 @@ static inline bool intf##_append_##name(uint8_t *p_tlv, type i_##name)      \
 static inline type intf##_find_##name(uint8_t *p_tlv, uint16_t n)           \
 {                                                                           \
     const uint8_t *p_tlv_n = tlv_find_param(p_tlv, param, n);               \
-    type i_##name = (type)(p_tlv_n[4]) << 8 * (sizeof(type) - 1);           \
+    type i_##name = 0;                                                      \
     int i;                                                                  \
-    for (i = 1; i < sizeof(type); i++)                                      \
+    for (i = 0; i < sizeof(type); i++)                                      \
         i_##name |= (utype)(p_tlv_n[4 + i]) << 8 * (sizeof(type) - i - 1);  \
     return i_##name;                                                        \
 }


=====================================
examples/.gitignore
=====================================
--- /dev/null
+++ b/examples/.gitignore
@@ -0,0 +1 @@
+/bitstream


=====================================
examples/Makefile
=====================================
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -1,22 +1,24 @@
-CFLAGS = -Wall -O2 -g
-CFLAGS_LOCAL = -Wall -O2 -g -I. -I../..
-LDFLAGS = -lrt
+PREFIX ?= /usr/local
+WARN = -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare
+CPPFLAGS = -I.
+CFLAGS := $(WARN) -O2 -g $(CFLAGS)
+LDFLAGS := -lrt $(LDFLAGS)
 OBJ = dvb_print_si dvb_gen_si dvb_ecmg dvb_ecmg_test mpeg_print_pcr rtp_check_seqnum mpeg_restamp
 
 ifeq "$(shell uname -s)" "Darwin"
-LDFLAGS += -liconv
+LDLIBS += -liconv
 # Prevent generation of .dSYM debug directories
 CFLAGS += -gstabs
-CFLAGS_LOCAL += -gstabs
 endif
 
 all: $(OBJ)
 
 %: %.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
 
-local: CFLAGS = $(CFLAGS_LOCAL)
-local: all
+install: $(OBJ)
+	install -d "$(DESTDIR)$(PREFIX)/bin"
+	install -m 755 $(OBJ) "$(DESTDIR)$(PREFIX)/bin"
 
 clean:
-	rm -rf $(OBJ)
+	$(RM) $(OBJ)


=====================================
headers_test.sh deleted
=====================================
--- a/headers_test.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-# Test if each header can be used standalone
-# Copyright (C) 2011 Unix Solutions Ltd.
-#
-# License: MIT
-# Authors: Georgi Chorbadzhiyski <georgi at unixsol.org>
-#
-
-HEADER_LIST="dvb/sim.h ietf/rtp.h"
-# Find is used in such a way in order to work on OS X as well as Linux
-# If you want to test only particular headers comment the line bellow
-HEADER_LIST=$(find * | grep \\.h$ | sort | sed -e 's|^\./||')
-
-for suffix in "c" "cpp"
-do
-    case $suffix in
-        "cpp")
-            compiler="g++"
-            ;;
-        *)
-            compiler="gcc"
-            ;;
-    esac
-    for HDR in $HEADER_LIST
-    do
-        test_file=$(echo $HDR | sed -e 's|/|_|g;s|\.h$||')
-        echo "Testing ($compiler): $HDR"
-        printf "#include \"$HDR\"\n\nint main(void) { return 0; }\n" > $test_file.$suffix
-        $compiler -I.. -Werror -Wall -Wextra -Wno-unused -Wno-sign-compare -Wformat-security $test_file.$suffix -o $test_file
-        [ $? != 0 ] && exit 1
-        rm $test_file $test_file.$suffix
-    done
-done


=====================================
scte/35_print.h
=====================================
--- a/scte/35_print.h
+++ b/scte/35_print.h
@@ -62,12 +62,12 @@ static inline void scte35_null_print(const uint8_t *p_scte35,
     switch (i_print_type) {
     case PRINT_XML:
         pf_print(print_opaque,
-                 "<SCTE35 command=\"%"PRIu8"\" command_str=\"null\" pts_adjustment=\"%"PRIu64"\">",
+                 "<SCTE35 command=\"%" PRIu8 "\" command_str=\"null\" pts_adjustment=\"%" PRIu64 "\">",
                  SCTE35_NULL_COMMAND, i_pts_adjustment);
         break;
     default:
         pf_print(print_opaque,
-                 "new SCTE35 command=%"PRIu8" command_str=null pts_adjustment=%"PRIu64,
+                 "new SCTE35 command=%" PRIu8 " command_str=null pts_adjustment=%" PRIu64,
                  SCTE35_NULL_COMMAND, i_pts_adjustment);
     }
 }
@@ -82,12 +82,12 @@ static inline void scte35_insert_print(const uint8_t *p_scte35,
         switch (i_print_type) {
         case PRINT_XML:
             pf_print(print_opaque,
-                     "<SCTE35 command=\"%"PRIu8"\" command_str=\"insert\" pts_adjustment=\"%"PRIu64"\" event_id=\"%"PRIu32"\" cancel=\"1\">",
+                     "<SCTE35 command=\"%" PRIu8 "\" command_str=\"insert\" pts_adjustment=\"%" PRIu64 "\" event_id=\"%" PRIu32 "\" cancel=\"1\">",
                      SCTE35_INSERT_COMMAND, i_pts_adjustment, i_event_id);
             break;
         default:
             pf_print(print_opaque,
-                     "new SCTE35 command=%"PRIu8" command_str=insert pts_adjustment=%"PRIu64" event_id=%"PRIu32" cancel=true",
+                     "new SCTE35 command=%" PRIu8 " command_str=insert pts_adjustment=%" PRIu64 " event_id=%" PRIu32 " cancel=true",
                      SCTE35_INSERT_COMMAND, i_pts_adjustment, i_event_id);
         }
         return;
@@ -113,12 +113,12 @@ static inline void scte35_insert_print(const uint8_t *p_scte35,
         switch (i_print_type) {
         case PRINT_XML:
             snprintf(psz_duration, 255,
-                     " auto_return=\"%d\" duration=\"%"PRIu64"\"",
+                     " auto_return=\"%d\" duration=\"%" PRIu64 "\"",
                      b_auto_return ? 1 : 0, i_duration);
             break;
         default:
             snprintf(psz_duration, 255,
-                     " auto_return=%s duration=%"PRIu64"",
+                     " auto_return=%s duration=%" PRIu64 "",
                      b_auto_return ? "true" : "false", i_duration);
         }
     }
@@ -157,11 +157,11 @@ static inline void scte35_insert_print(const uint8_t *p_scte35,
 
             switch (i_print_type) {
             case PRINT_XML:
-                snprintf(psz_splice_time, 255, " splice_time=\"%"PRIu64"\"",
+                snprintf(psz_splice_time, 255, " splice_time=\"%" PRIu64 "\"",
                          i_pts_time);
                 break;
             default:
-                snprintf(psz_splice_time, 255, " splice_time=%"PRIu64"",
+                snprintf(psz_splice_time, 255, " splice_time=%" PRIu64 "",
                          i_pts_time);
             }
         }
@@ -170,14 +170,14 @@ static inline void scte35_insert_print(const uint8_t *p_scte35,
     switch (i_print_type) {
     case PRINT_XML:
         pf_print(print_opaque,
-                 "<SCTE35 command=\"%"PRIu8"\" command_str=\"insert\" pts_adjustment=\"%"PRIu64"\" event_id=\"%"PRIu32"\" cancel=\"0\" out_of_network=\"%d\" program_splice=\"%d\"%s%s unique_program_id=\"%"PRIu16"\">",
+                 "<SCTE35 command=\"%" PRIu8 "\" command_str=\"insert\" pts_adjustment=\"%" PRIu64 "\" event_id=\"%" PRIu32 "\" cancel=\"0\" out_of_network=\"%d\" program_splice=\"%d\"%s%s unique_program_id=\"%" PRIu16 "\">",
                  SCTE35_INSERT_COMMAND, i_pts_adjustment, i_event_id,
                  b_out_of_network ? 1 : 0, b_program_splice ? 1 : 0,
                  psz_splice_time, psz_duration, i_unique_program_id);
         break;
     default:
         pf_print(print_opaque,
-                 "new SCTE35 command=%"PRIu8" command_str=insert pts_adjustment=%"PRIu64" event_id=%"PRIu32" cancel=false out_of_network=%s program_splice=%s%s%s unique_program_id=%"PRIu16,
+                 "new SCTE35 command=%" PRIu8 " command_str=insert pts_adjustment=%" PRIu64 " event_id=%" PRIu32 " cancel=false out_of_network=%s program_splice=%s%s%s unique_program_id=%" PRIu16,
                  SCTE35_INSERT_COMMAND, i_pts_adjustment, i_event_id,
                  b_out_of_network ? "true" : "false",
                  b_program_splice ? "true" : "false",
@@ -195,23 +195,23 @@ static inline void scte35_time_signal_print(const uint8_t *p_scte35,
     case PRINT_XML:
         if (scte35_splice_time_has_time_specified(p_splice_time))
             pf_print(print_opaque,
-                     "<SCTE35 command=\"%"PRIu8"\" command_str=\"time_signal\" pts_adjustment=\"%"PRIu64"\" splice_time=\"%"PRIu64"\">",
+                     "<SCTE35 command=\"%" PRIu8 "\" command_str=\"time_signal\" pts_adjustment=\"%" PRIu64 "\" splice_time=\"%" PRIu64 "\">",
                      SCTE35_TIME_SIGNAL_COMMAND, i_pts_adjustment,
                      scte35_splice_time_get_pts_time(p_splice_time));
         else
             pf_print(print_opaque,
-                     "<SCTE35 command=\"%"PRIu8"\" command_str=\"time_signal\" pts_adjustment=\"%"PRIu64"\" splice_time=\"undefined\">",
+                     "<SCTE35 command=\"%" PRIu8 "\" command_str=\"time_signal\" pts_adjustment=\"%" PRIu64 "\" splice_time=\"undefined\">",
                      SCTE35_TIME_SIGNAL_COMMAND, i_pts_adjustment);
         break;
     default:
         if (scte35_splice_time_has_time_specified(p_splice_time))
             pf_print(print_opaque,
-                     "new SCTE35 command=%"PRIu8" command_str=time_signal pts_adjustment=%"PRIu64" splice_time=%"PRIu64,
+                     "new SCTE35 command=%" PRIu8 " command_str=time_signal pts_adjustment=%" PRIu64 " splice_time=%" PRIu64,
                      SCTE35_TIME_SIGNAL_COMMAND, i_pts_adjustment,
                      scte35_splice_time_get_pts_time(p_splice_time));
         else
             pf_print(print_opaque,
-                     "new SCTE35 command=%"PRIu8" command_str=time_signal pts_adjustment=%"PRIu64" splice_time=undefined",
+                     "new SCTE35 command=%" PRIu8 " command_str=time_signal pts_adjustment=%" PRIu64 " splice_time=undefined",
                      SCTE35_TIME_SIGNAL_COMMAND, i_pts_adjustment);
     }
 }
@@ -225,12 +225,12 @@ static inline void scte35_private_print(const uint8_t *p_scte35,
     switch (i_print_type) {
     case PRINT_XML:
         pf_print(print_opaque,
-                 "<SCTE35 command=\"%"PRIu8"\" command_str=\"private\" pts_adjustment=\"%"PRIu64"\" identifier=\"%"PRIu32"\" />",
+                 "<SCTE35 command=\"%" PRIu8 "\" command_str=\"private\" pts_adjustment=\"%" PRIu64 "\" identifier=\"%" PRIu32 "\" />",
                  SCTE35_PRIVATE_COMMAND, i_pts_adjustment, i_identifier);
         break;
     default:
         pf_print(print_opaque,
-                 "new SCTE35 command=%"PRIu8" command_str=private pts_adjustment=%"PRIu64" identifier=%"PRIu32,
+                 "new SCTE35 command=%" PRIu8 " command_str=private pts_adjustment=%" PRIu64 " identifier=%" PRIu32,
                  SCTE35_PRIVATE_COMMAND, i_pts_adjustment, i_identifier);
     }
 }
@@ -268,12 +268,12 @@ static inline void scte35_print(const uint8_t *p_scte35,
         switch (i_print_type) {
         case PRINT_XML:
             pf_print(print_opaque,
-                     "<SCTE35 command=\"%"PRIu8"\" command_str=\"%s\" pts_adjustment=\"%"PRIu64"\">",
+                     "<SCTE35 command=\"%" PRIu8 "\" command_str=\"%s\" pts_adjustment=\"%" PRIu64 "\">",
                      i_type, scte35_get_command_type_txt(i_type), i_pts_adjustment);
             break;
         default:
             pf_print(print_opaque,
-                     "new SCTE35 command=%"PRIu8" command_str=%s pts_adjustment=%"PRIu64,
+                     "new SCTE35 command=%" PRIu8 " command_str=%s pts_adjustment=%" PRIu64,
                      i_type, scte35_get_command_type_txt(i_type), i_pts_adjustment);
         }
     }



View it on GitLab: https://code.videolan.org/videolan/bitstream/compare/e9408996e7557e4a6b9f8e2e7ea1b1cb959bf837...20ce4345061499abc0389e9cd837665a62ad6add

---
View it on GitLab: https://code.videolan.org/videolan/bitstream/compare/e9408996e7557e4a6b9f8e2e7ea1b1cb959bf837...20ce4345061499abc0389e9cd837665a62ad6add
You're receiving this email because of your account on code.videolan.org.


More information about the biTStream-devel mailing list