Coder Social home page Coder Social logo

tstools's People

Contributors

elliotth avatar jc-kynesim avatar rrw1000w avatar tibs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tstools's Issues

Patch for /h222_defns.h

New defines that have no impact on existing code.
They will be used to add support of Apple HLS SAMPLE-AES encrypted audio/video 
stream extraction using ts2es.

Three new encrypted audio/video stream type values are defined by Apple for use 
in HLS SAMPLE-AES encrypted streams:
https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/HLS_
Sample_Encryption/TransportStreamSignaling/TransportStreamSignaling.html#//apple
_ref/doc/uid/TP40012862-CH3-SW1

Original issue reported on code.google.com by [email protected] on 5 Sep 2013 at 7:57

Attachments:

Check for last_cc incorrectly excludes last CC being zero


In tsreport.c I believe there's a error in the check as per the diff below. The 
check is for ss->last_cc being set (i.e. there has been a previous CC). last_cc 
is set to -1 to indicate no previous CC, so the check must be for last_cc >= 0 
(or >-1, or != -1). Otherwise a valid previous CC of zero will read as there 
having been no previous CC, potentially missing an error. 

diff --git a/tsreport.c b/tsreport.c
index c7885bc..29d20d1 100644
--- a/tsreport.c
+++ b/tsreport.c
@@ -496,7 +496,7 @@ static int report_buffering_stats(TS_reader_p  tsreader,
       // CC is meant to increment if we have a payload and not if we don't
       // CC may legitimately 'be wrong' if the discontinuity flag is set

-      if (ss->last_cc > 0 && !is_discontinuity)
+      if (ss->last_cc >= 0 && !is_discontinuity)
       {
         // We are allowed 1 dup packet
         if (ss->last_cc == cc)

Original issue reported on code.google.com by [email protected] on 29 Jul 2013 at 10:39

fails to compile on osx

What steps will reproduce the problem?
1. cd tstools
2. make
3. first off Makefile must be fixed to ignore usage of ppc
   secondly - libtool is given bogus parms of -static and -dynamic
              which fail on osx lion 10.7

What is the expected output? What do you see instead?

        make fails on osx

What version of the product are you using? On what operating system?

macbook pro 
osx lion 10.7.4 (latest as of June 2012)

uname -a
Darwin BAM-025644-SS.local 11.4.0 Darwin Kernel Version 11.4.0: Mon Apr  9 
19:32:15 PDT 2012; root:xnu-1699.26.8~1/RELEASE_X86_64 x86_64

Please provide any additional information below.


libtool: unrecognized option `-static'


Original issue reported on code.google.com by [email protected] on 27 Jun 2012 at 9:31

Error messages are written to stdout rather than stderr

As titled, error messages like "### Error writing out TS packet data: XXX" are all printed to stdout not stderr. For an old tsplay I used before, which was built from source code of 5 years ago, error messages were printed to stderr and normal outputs were written to stdout as expected.

Is this change intended or accidental?

esreport -framesize reports incorrect frametypes for MPEG-2

What steps will reproduce the problem?
1. esreport -framesize movie.es (where es file is MPEG-2)

What is the expected output? What do you see instead?

Expected
Frame sizes ranged from   343 to   19687 bytes, mean   3667.11
          I frames from 19687 to   19687 bytes, mean  19687.00
          P frames from   719 to    9439 bytes, mean   3804.33
          B frames from   343 to     409 bytes, mean    380.80

Actual
Frame sizes ranged from   343 to   19687 bytes, mean   3667.11
          Forbidden frames from 19687 to   19687 bytes, mean  19687.00
          I frames from   719 to    9439 bytes, mean   3804.33
          P frames from   343 to     409 bytes, mean    380.80

What version of the product are you using? On what operating system?

52e9e332bd628dbce0ba4ec5535a12838e14f487

Please provide any additional information below.

Diff available from
http://code.google.com/r/jenniferfreeman-tstools/source/detail?r=cc922f87d3bbe31
35a4dd7c47bf200671edea79e

Original issue reported on code.google.com by [email protected] on 15 Mar 2012 at 3:44

"hms" format timestamps have extra zero padding in milliseconds

Run tsreport -b -tafmt hms tfmt hms file.ts

Note that the timestamps are actually hh:mm:ss.0nnn where nnn is the 
milliseconds, making the milliseconds part appear only one tenth of what it 
should be, 

Here's a very small diff which corrects this:

diff --git a/fmtx.c b/fmtx.c
index dd250b6..b8c30b5 100644
--- a/fmtx.c
+++ b/fmtx.c
@@ -93,7 +93,7 @@ const TCHAR *fmtx_timestamp(int64_t n, unsigned int flags)
       a27 /= I64K(60);
       m = (unsigned int)(a27 % I64K(60));
       h = (unsigned int)(a27 / I64K(60));
-      _stprintf(buf, _T("%s%u:%02u:%02u.%04u"), n27 < 0 ? _T("-") : _T(""), h, 
m, s, f/1000);
+      _stprintf(buf, _T("%s%u:%02u:%02u.%03u"), n27 < 0 ? _T("-") : _T(""), h, 
m, s, f/1000);
       break;
     }


Original issue reported on code.google.com by [email protected] on 4 Mar 2013 at 5:30

Missing Tab in Tsinfo on Descriptor Tag

What steps will reproduce the problem?
1. tsinfo mpegfile.mpg
2.
3.

What is the expected output? What do you see instead?

Should have an extra tab or two to bring the descriptor tag line, in line with 
the rest of the text. Hopefully formatting is save here.

Packet 1 is PAT
Program list:
    Program 1 -> PID 043b (1083)

Packet 2 is PMT with PID 043b (1083)
  Program 1, version 0, PCR PID 043c (1084)
  Program streams:
    PID 043c (1084) -> Stream type 1b ( 27) H.264/14496-10 video (MPEG-4/AVC)
    PID 043d (1085) -> Stream type 81 (129) User private
        ES info (23 bytes): 6a 01 00 05 04 41 43 2d 33 81 06 08 28 05 00 1f 01 0a 04 65 6e 67 00
        DVB AC-3 (1 byte): 00
        Registration AC-3
        ATSC AC-3 (6 bytes): 08 28 05 00 1f 01
Descriptor tag 81 (129) (6 bytes): 08 28 05 00 1f 01
        Languages: eng
    PID 001d (  29) -> Stream type 06 (  6) H.222.0/13818-1 PES private data (maybe Dolby/AC-3 in DVB)
        ES info (10 bytes): 59 08 73 77 65 12 00 00 00 00
        subtitling_descriptor:
          language='swe', subtitling_type=18
            composition_page_id=0, ancillary_page_id=0





^^^^^

Descriptor tag 81 (129) (6 bytes): 08 28 05 00 1f 01


What version of the product are you using? On what operating system?

  TS tools version 1.11,

Please provide any additional information below.

Cosmetic only.


Original issue reported on code.google.com by [email protected] on 30 Sep 2010 at 6:29

Possible race condition problem

Here is a full build log:

http://autobuild.buildroot.net/results/e4e/e4ee0ae40ac9d58b3182db52d5a39e6ac3692
f60/build-end.log

The relevant snippet is this one:

---------------------------------------
make[1]: Entering directory 
`/home/peko/autobuild/instance-1/output/build/tstools-1_11'
mkdir bin
mkdir lib
mkdir obj
/home/peko/autobuild/instance-1/output/host/usr/bin/mips64el-ctng_n32-linux-gnu-
gcc -c esfilter.c -o obj/esfilter.o -Wall -O2 -g -D_FILE_OFFSET_BITS=64 -I.  
-fPIC
/home/peko/autobuild/instance-1/output/host/usr/bin/mips64el-ctng_n32-linux-gnu-
gcc -c accessunit.c -o obj/accessunit.o -Wall -O2 -g -D_FILE_OFFSET_BITS=64 -I. 
 -fPIC
/home/peko/autobuild/instance-1/output/host/usr/bin/mips64el-ctng_n32-linux-gnu-
gcc -c avs.c -o obj/avs.o -Wall -O2 -g -D_FILE_OFFSET_BITS=64 -I.  -fPIC
Assembler messages:
Fatal error: can't create obj/esfilter.o: No such file or directory
---------------------------------------

I think this is a race condition problem due to the "obj" directory not being 
created in time.

Original issue reported on code.google.com by [email protected] on 7 Nov 2014 at 10:12

MacOs 10.13.3 TSTools Python building error

Got error when going to build python library on macos
Error code:
running install
running build
running build_ext
skipping 'tstools/tstools.c' Cython extension (up-to-date)
building 'tstools.tstools' extension
cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -I.. -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c tstools/tstools.c -o build/temp.macosx-10.13-intel-2.7/tstools/tstools.o
tstools/tstools.c:4224:95: warning: implicit conversion loses integer precision:
'Py_ssize_t' (aka 'long') to 'uint32_t' (aka 'unsigned int')
[-Wshorten-64-to-32]
...build_ES_unit_from_data((&__pyx_v_self->unit), ((byte *)__pyx_v_buffer), __pyx_v_length);
~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~
tstools/tstools.c:4396:18: warning: incompatible pointer to integer conversion
passing 'FILE *' (aka 'struct __sFILE *') to parameter of type 'int'
[-Wint-conversion]
report_ES_unit(stdout, __pyx_v_self->unit);
^~~~~~
/usr/include/stdio.h:217:16: note: expanded from macro 'stdout'
#define stdout __stdoutp
^~~~~~~~~
../es_fns.h:181:39: note: passing argument to parameter 'is_msg' here
extern void report_ES_unit(int is_msg,
^
tstools/tstools.c:12138:50: warning: implicit conversion loses integer
precision: 'long' to '__pyx_t_7tstools_6common_PID' (aka 'unsigned int')
[-Wshorten-64-to-32]
__pyx_v_self->pid = (((__pyx_t_7 & 0x1F) << 8) | __pyx_t_9);
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
tstools/tstools.c:13304:64: warning: implicit conversion loses integer
precision: 'Py_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
get_PCR_from_adaptation_field(((byte *)__pyx_v_adapt_buf), __pyx_v_adapt_len...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~
4 warnings generated.
tstools/tstools.c:4396:18: warning: incompatible pointer to integer conversion
passing 'FILE *' (aka 'struct __sFILE *') to parameter of type 'int'
[-Wint-conversion]
report_ES_unit(stdout, __pyx_v_self->unit);
^~~~~~
/usr/include/stdio.h:217:16: note: expanded from macro 'stdout'
#define stdout __stdoutp
^~~~~~~~~
../es_fns.h:181:39: note: passing argument to parameter 'is_msg' here
extern void report_ES_unit(int is_msg,
^
1 warning generated.
cc -bundle -undefined dynamic_lookup -arch x86_64 -arch i386 -Wl,-F. build/temp.macosx-10.13-intel-2.7/tstools/tstools.o -L../lib -ltstools -o build/lib.macosx-10.13-intel-2.7/tstools/tstools.so
ld: warning: directory not found for option '-L../lib'
ld: library not found for -ltstools
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'cc' failed with exit status 1

PCR prediction errors use a 90khz clock instead of a 27Mhz clock

What steps will reproduce the problem?
1. run tsreport with -buffering on a file where PCR predicition errors are != 0

What is the expected output? What do you see instead?

PCR prediction errors in order of seconds instead of in milliseconds.

What version of the product are you using? On what operating system?

Linux 64 bit but on all


Please provide any additional information below.

Patch attached

Original issue reported on code.google.com by [email protected] on 16 Dec 2011 at 3:47

Attachments:

-lm should be at the end of the CC-line in order to avoid linking errors.

What steps will reproduce the problem?
1. clone repository
2. run 'make'

What is the expected output? What do you see instead?

gcc obj/esfilter.o -o bin/esfilter -g -lm   -Llib -ltstools 
lib/libtstools.a(misc.o): In function `log2':
/home/stalk/btech/src/tstools/misc.c:227: undefined reference to `log10'
lib/libtstools.a(nalunit.o): In function `read_pic_param_set_data':
/home/stalk/btech/src/tstools/nalunit.c:606: undefined reference to `ceil'
lib/libtstools.a(bitdata.o): In function `read_exp_golomb':
/home/stalk/btech/src/tstools/bitdata.c:223: undefined reference to `pow'
lib/libtstools.a(bitdata.o): In function `read_signed_exp_golomb':
/home/stalk/btech/src/tstools/bitdata.c:244: undefined reference to `pow'
/home/stalk/btech/src/tstools/bitdata.c:244: undefined reference to `ceil'
collect2: ld returned 1 exit status
make: *** [bin/esfilter] Error 1

What version of the product are you using? On what operating system?
changeset:   169:4f450a4884b3
Linux 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 
x86_64 GNU/Linux
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6.1/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 
4.6.1-9ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs 
--enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr 
--program-suffix=-4.6 --enable-shared --enable-linker-build-id 
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext 
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu 
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin 
--enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic 
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu 
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) 



Please provide any additional information below.

This patch seems to solve the problem.

diff -r 4f450a4884b3 Makefile
--- a/Makefile  Thu Oct 20 17:20:14 2011 +0100
+++ b/Makefile  Thu Nov 24 18:05:07 2011 +0100
@@ -80,7 +80,7 @@
 endif

 CFLAGS = $(WARNING_FLAGS) $(OPTIMISE_FLAGS) $(LFS_FLAGS) -I. $(PROFILE_FLAGS) $(ARCH_FLAGS)
-LDFLAGS = -g -lm $(PROFILE_FLAGS) $(ARCH_FLAGS)
+LDFLAGS = -g $(PROFILE_FLAGS) $(ARCH_FLAGS) -lm

 # Target directories
 OBJDIR = obj
@@ -215,82 +215,82 @@
 # be copied around, shared, etc., without having to think about it

 $(BINDIR)/esfilter:    $(OBJDIR)/esfilter.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/esfilter $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/esfilter $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/ts2es:       $(OBJDIR)/ts2es.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/ts2es $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/ts2es $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/es2ts:       $(OBJDIR)/es2ts.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/es2ts $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/es2ts $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/esdots:      $(OBJDIR)/esdots.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/esdots $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/esdots $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/esmerge: $(OBJDIR)/esmerge.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/esmerge $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/esmerge $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/esreport:    $(OBJDIR)/esreport.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/esreport $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/esreport $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/esreverse:   $(OBJDIR)/esreverse.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/esreverse $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/esreverse $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/stream_type: $(OBJDIR)/stream_type.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/stream_type $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/stream_type $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/psreport:    $(OBJDIR)/psreport.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/psreport $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/psreport $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/psdots:  $(OBJDIR)/psdots.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/psdots $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/psdots $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/ps2ts:       $(OBJDIR)/ps2ts.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/ps2ts $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/ps2ts $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/tsinfo:      $(OBJDIR)/tsinfo.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/tsinfo $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/tsinfo $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/tsreport:    $(OBJDIR)/tsreport.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/tsreport $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/tsreport $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/tsserve: $(OBJDIR)/tsserve.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/tsserve $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/tsserve $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/tsplay:  $(OBJDIR)/tsplay.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/tsplay $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/tsplay $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/test_ps: $(OBJDIR)/test_ps.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/test_ps $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/test_ps $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/ts2ps:       $(OBJDIR)/ts2ps.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/ts2ps $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/ts2ps $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/ts_packet_insert:    $(OBJDIR)/ts_packet_insert.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/ts_packet_insert $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/ts_packet_insert $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/m2ts2ts:     $(OBJDIR)/m2ts2ts.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/m2ts2ts $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/m2ts2ts $(LIBOPTS) $(LDFLAGS)
 $(BINDIR)/pcapreport:  $(OBJDIR)/pcapreport.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/pcapreport $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/pcapreport $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/tsfilter:    $(OBJDIR)/tsfilter.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/tsfilter $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/tsfilter $(LIBOPTS) $(LDFLAGS)
 $(BINDIR)/tsdvbsub:    $(OBJDIR)/tsdvbsub.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/tsdvbsub $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/tsdvbsub $(LIBOPTS) $(LDFLAGS)




 $(BINDIR)/test_pes:    $(OBJDIR)/test_pes.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/test_pes $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/test_pes $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/test_printing:   $(OBJDIR)/test_printing.o $(STATIC_LIB)
-       $(CC) $< -o $(BINDIR)/test_printing $(LDFLAGS) $(LIBOPTS)
+       $(CC) $< -o $(BINDIR)/test_printing $(LIBOPTS) $(LDFLAGS)

 $(BINDIR)/test_nal_unit_list:  $(OBJDIR)/test_nal_unit_list.o $(STATIC_LIB)
-           $(CC) $< -o $(BINDIR)/test_nal_unit_list $(LDFLAGS) $(LIBOPTS)
+           $(CC) $< -o $(BINDIR)/test_nal_unit_list $(LIBOPTS) $(LDFLAGS)
 $(BINDIR)/test_es_unit_list:   $(OBJDIR)/test_es_unit_list.o $(STATIC_LIB)
-           $(CC) $< -o $(BINDIR)/test_es_unit_list $(LDFLAGS) $(LIBOPTS)
+           $(CC) $< -o $(BINDIR)/test_es_unit_list $(LIBOPTS) $(LDFLAGS)

 # Some header files depend upon others, so including one requires
 # the others as well

Original issue reported on code.google.com by [email protected] on 24 Nov 2011 at 5:10

Finish Python wrapping tstools

The Python wrapping should be continued/finished.

(In retrospect, it seems likely that a wrapping using ctypes may be more 
sensible.)

Original issue reported on code.google.com by [email protected] on 26 Sep 2010 at 2:13

tstools-1_12-windowsXP.zip m2ts2ts.exe contains a virus ?

To reproduce the problem:
1. download tstools-1_12-windowsXP.zip
2. open cmd.exe
3. type m2ts2ts.exe -h 

On XP SP3, Norton Security v17.8.0.5 Sonar protection detect an abnormal 
activity with m2ts2ts.exe, remove the file and request to reboot.


Original issue reported on code.google.com by [email protected] on 31 Mar 2011 at 9:53

pcapreport -o doesn't output to file

Hi,

I'm trying to output with pcapreport a pcap to TS file, however doesn't work, it's not outputing anything.

pcapreport Tester.pcap -d 234.1.2.3:1234 -o Tester.ts

Expecting:

Tester.ts file to be created

Actual result:

Tester.ts it's not created

Tested with latest version

./pcapreport 
Usage: pcapreport [switches] <infile>

  TS tools version 1.13, pcapreport built Apr 10 2023 17:32:47

Older version like 1.11 it's working without any issues.

Not finding PMT PID

What steps will reproduce the problem?
1. playing a MPTS with other tables on the PMT PID 
2. type tsplay and it gets a PMT PID of 0x1fff which is invalid
3. na

What is the expected output? What do you see instead?
The PCR pid is not found so the video does not stream out

What version of the product are you using? On what operating system?
1.11

Please provide any additional information below.
Adding a check for the PMT table as the first byte of the PAT_data and 
discarding the file fixes this issue
before extract_pmt in find_PCR_PID in tsplay.c add this:



// We have seen MPTS with multiple tables in the PMT PID, so we know a real PMT 
table always starts with a table ID of 2 
      // so lets check and discard if its not a true PMT

      if (pmt_data[0] != 2) //its not a PMT table so continue looking Oh and free the packet
      {
         printf(" PMT does not have type 2 table so discard and try again\n");      
         if(pmt_data) free(pmt_data);
         pmt_data = NULL; pmt_data_len = 0; pmt_data_used = 0;
         continue;
      }


I've attached the tsplay.c

Original issue reported on code.google.com by [email protected] on 31 Dec 2014 at 1:49

Attachments:

esreport without -h262 option does not show the first seq header

What steps will reproduce the problem?
1. Grab a h262 es file - Only been tested with files that start with a seq 
header item starting at byte 0 (i.e. byte 3 is 0xb3).
2. esreport -h262 <filename>
Shows the header including a SEQUENCE HEADER
3. esreport <filename>
Shows the first picture

Original issue reported on code.google.com by [email protected] on 26 Jul 2012 at 11:57

VLC shows: picture is too later to display

What steps will reproduce the problem?
1. download h264 and aac file at 
https://github.com/china-east-soft/h264-aac_to_ts/raw/master/demo/video.h264 
and https://github.com/china-east-soft/h264-aac_to_ts/raw/master/demo/audio.au
2. run ./bin/esmerge demo/audio.au demo/video.h264 xxx.ts 
3. the using VLC to play the xxx.ts file, it can not works well

What is the expected output? What do you see instead?

I want to the output file can be played fine.

What version of the product are you using? On what operating system?

I test the master branch code on both ubuntu and Mac OSX


Please provide any additional information below.

It can be played fine if using the ffmpeg to mux 


Original issue reported on code.google.com by [email protected] on 13 Sep 2013 at 9:34

tsreport incorrectly asserts DTS 'errors'

What steps will reproduce the problem?
1. Create a TS with no DTS
2. 'tsreport -cnt <pid>'

What is the expected output? What do you see instead?
Using my example transport stream I get the output:
### PID(512): DTS (7150612428t) < PCR (7150612509t)

Given that I don't have DTS in my transport:
  PES header
    Start code:        00 00 01
    Stream ID:         c0   (192) SYSTEM START: Audio stream 00
    PES packet length: 0192 (402)
    Flags:             84 80 data-aligned : PTS
    PES header len 15
    PTS 7146951508

I would not expect a value for DTS, also it would seem odd that this warning 
would be generated. It would make seem to me to skip DTS validation if the 
PTS/DTS flags were '10'.

What version of the product are you using? On what operating system?

TS tools version 1.11, tsreport built Jan  3 2009 17:20:54
Debian Wheezy, Ubuntu 12.04, Centos 6.3 and AmazonAMI

Please provide any additional information below.

Sorry, I can't provide a patch; It's unfortunately beyond my current level of C.

Original issue reported on code.google.com by [email protected] on 12 Dec 2012 at 1:03

tsinfo reports double the actual number of PAT packets

What steps will reproduce the problem?
1.run tsinfo against any legal mpeg-ts file.
2.compare the number of PATs reported to the actual number of PATs

The problem lies in tsinfo.c. On lines 113 and 168 num_pats is incremented 
twice.

Original issue reported on code.google.com by [email protected] on 22 Oct 2013 at 11:48

Does tsplay -loop ensure always-increasing PTS?

I need to build a server to loop static content to simulate live streams. Every loop utility I've tried so far fails to update PTS. The tsplay documentation is silent on this issue. Does tsplay -loop update PTS for each loop? If so, can this be documented somewhere? (Here would be fine: Google will find it.)

Start of file and TS PCR buffering

When buffering PCRs (so that each TS packet *knows* its PCR), current code only 
starts playing from the TS packet with the first PCR (since it doesn't know the 
PCRs of anything before that). At the *end* of the file, it tries to (linearly) 
estimate from the last two PCRs. One might assume that it should do something 
similar at the start (since a PCR can occur quite far in).

Was bug 14628 on berlios.de

Original issue reported on code.google.com by [email protected] on 26 Sep 2010 at 2:09

generated ts file unplayable

What steps will reproduce the problem?
0. pick a simple valid ts file (test.ts)
1. es2ts: generate a es file from test.ts: test.es
2. ts2es: generate test-es.ts from test.ts
3. test-es.ts is not playable any more

What is the expected output? What do you see instead?
The regenerated ts file should be playable (and functionally equivalent to the 
original ts file)

What version of the product are you using? On what operating system?
1.11, Windows

Please provide any additional information below.
Sample ts file (cut from Apple example). Small, only 193 packets.

Original issue reported on code.google.com by [email protected] on 27 Nov 2011 at 2:37

Attachments:

TS seek should be more robust

Currently, seeking in a TS file must exactly seek to the start of a TS packet. 
This is moderately reasonable, but it would be useful to have an option (or a 
different call) which finds the "nearest" (or more convenient!) TS packet 
(should it prefer forwards or back?).

It is probably reasonable to assume one has the start of a TS packet if one is 
at 0x47, and there 0x47 bytes 188 bytes away in either direction (or two of the 
forwards/backwards, etc.).

Was bug 14627 on berlios.de


Original issue reported on code.google.com by [email protected] on 26 Sep 2010 at 2:08

tsplay option to play all PIDs?

I need to loop a multi-program TS that has the same content at different resolutions/bitrates (generated by ffmpeg) to simulate a live feed to an adaptive streaming (DASH/HLS) packager. By "same content" I mean the same frame rate, I-frames at the same times, the same PTS for each frame across all programs, and the PCRs are the same across all video PIDs.

Unfortunately, tsplay currently only plays a single video PID and a single audio PID.

Can tsplay be enhanced to loop the entire TS (all video/audio PIDs)?

Also, can tsplay not renumber the video and audio PIDs? That is, output should be on the same PIDs as the input. PID renumbering should be an explicit (no default) option specified on the command line.

I see two basic approaches:

  1. Handle only the special case of parallel content for adaptive streaming, where the PCR is common across all programs (minimal changes). That is, use the PCR from the first video PID and apply it to all PIDs.
  2. Handle each PID/PCR/PTS separately: Support an array/list of PCRs, indexed by either program number or PID.

Today's CPUs and networks can easily (trivially) handle the load.

I'll hack on the code to see what's possible, but I'm certain you won't want a pull request for the result!

TSPlay: HD

Hello,

In the documentation says that maxnowait should be turned off if you are using -hd command for HD streams, but after using this command is maxnowait not turned off. The value of this variable is 40.

What is the correct value for maxnowait?

Documentation:

For convenience, the '-hd' switch is provided for playing HD video:
-hd equivalent to '-bitrate 20000000 -maxnowait off -pwait 4 -cwait 1'

tswrite.c:

else if (!strcmp("-hd", argv[ii]))
{
    context->maxnowait = 40;
    context->bitrate   = 20000000;
    context->byterate  = context->bitrate / 8;
    global_parent_wait = 4;
    global_child_wait  = 1;
    argv[ii] = TSWRITE_PROCESSED;
}

Legacy issues

1. I want to be able to take the string:

"""00 00 01 b3 14 00 f0 13 ff ff e0 38 00 00 01 b5 14 8a 00 01 00 00 00
00 01 b8 00 08 00 00 00 00 01 00 00 0f ff f8 00 00 01 b5 8f ff f3 41 80
00 00 01 01 1b f9 37 0f 0a 99 97 2f e0 1d cd ee 2d 45 b7 c3 9e 61 92 78
f9 68 bb 3a 27 e5 54 cd e0 7c 7b bf 93 37 ae 0d 21 29 56 4f a7 f9 e1 e6
f7 d5 2d 29 0c c9 7d db 07 d0 a2 80 2d 2b 17 b7 20 5c f4 94 f9 b9 d4 41
48 2b 0c c8 db 0a a7 06 f9"""

and read it in as data for tstools (Python is OK) to analyse.

2. I want to be able to feed tstools code with buffers of data
directly, instead of from a file or similar (the thing I was grumbling
is hard to do with ffmpeg!). This is, of course, required by the above.

3. I want to be able to feed <stdin> to tsplay


Original issue reported on code.google.com by [email protected] on 18 Oct 2010 at 6:48

Split misc.c so not all of it depends on sockets

I am told that it is a pain that, on Windows, any tool compiled against misc.c 
has also to be built against winsock, even if it doesn't do anything socket 
related. If misc.c were split into socket-using and non-socket-using file, this 
could be avoided. This would make at least one user happy, and may be a much 
better style of building (at least on Windows).

Was bug 14648 on berlios.de

Original issue reported on code.google.com by [email protected] on 26 Sep 2010 at 2:10

YUV2 building on Ubuntu

The synaptic package manager for Ubuntu installs SWT's shared libraries 
somewhere that isn't on LD_LIBRARY_PATH by default. To a non-Java user, the 
resulting error messages from something that appeared to have built perfectly 
correctly are cryptic to say the least.

This was bug 14690 from berlios.de

Original issue reported on code.google.com by [email protected] on 26 Sep 2010 at 2:11

Failed to link shared libraries on x86_64

The attached patch fix a build error (link of shared libraries) on x86_64.


/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld -shared -o lib/libtstools.so obj/accessunit.o obj/avs.o obj/ac3.o 
obj/adts.o obj/bitdata.o obj/es.o obj/filter.o obj/fmtx.o obj/h222.o obj/h262.o 
obj/audio.o obj/l2audio.o obj/misc.o obj/nalunit.o obj/ps.o obj/pes.o 
obj/pidint.o obj/reverse.o obj/ts.o obj/tswrite.o obj/pcap.o obj/ethernet.o 
obj/ipv4.o -lc
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/accessunit.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/avs.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/ac3.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/adts.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/bitdata.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/es.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/filter.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/fmtx.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/h222.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/h262.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/audio.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/l2audio.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/misc.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/nalunit.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/ps.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/pes.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/pidint.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/reverse.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/ts.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/tswrite.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/pcap.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/ethernet.o' is 
incompatible with i386 output
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-ld: i386:x86-64 architecture of input file `obj/ipv4.o' is 
incompatible with i386 output
rm -f lib/libtstools.a
ar rc lib/libtstools.a obj/accessunit.o obj/avs.o obj/ac3.o obj/adts.o 
obj/bitdata.o obj/es.o obj/filter.o obj/fmtx.o obj/h222.o obj/h262.o 
obj/audio.o obj/l2audio.o obj/misc.o obj/nalunit.o obj/ps.o obj/pes.o 
obj/pidint.o obj/reverse.o obj/ts.o obj/tswrite.o obj/pcap.o obj/ethernet.o 
obj/ipv4.o
obj/bitdata.o: In function `read_exp_golomb':
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/build/tstools-1_11/b
itdata.c:223: undefined reference to `pow'
obj/bitdata.o: In function `read_signed_exp_golomb':
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/build/tstools-1_11/b
itdata.c:244: undefined reference to `pow'
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/build/tstools-1_11/b
itdata.c:244: undefined reference to `ceil'
obj/misc.o: In function `log2':
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/build/tstools-1_11/m
isc.c:229: undefined reference to `log10'
obj/nalunit.o: In function `read_pic_param_set_data':
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/build/tstools-1_11/n
alunit.c:604: undefined reference to `ceil'
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-gcc obj/esfilter.o -o bin/esfilter -fPIC lib/libtstools.a -g  -fPIC 
-lm
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-gcc obj/ts2es.o -o bin/ts2es -fPIC lib/libtstools.a -g  -fPIC -lm
/home/tjlee/git_repo/ambarella/a8/boss_sdk/buildroot/output/host/usr/bin/i686-pc
-linux-gnu-gcc obj/es2ts.o -o bin/es2ts -fPIC lib/libtstools.a -g  -fPIC -lm
make[1]: *** [lib/libtstools.so] Error 1
make[1]: *** Waiting for unfinished jobs....
edd40fc9c02178434d14a7054a34014d7e3c0d31

Original issue reported on code.google.com by [email protected] on 11 Nov 2013 at 10:07

Attachments:

math lib (libm) not found when compiling under ubuntu 12.04

What steps will reproduce the problem?
1. download the source and do a make

What is the expected output? What do you see instead?
The build complains about missing functions from libm 

What version of the product are you using? On what operating system?
1.11 and ubuntu 12.04 

Please provide any additional information below.
change the makefile to add -lm at the end of the LIBOPTS definition 

Original issue reported on code.google.com by [email protected] on 2 Feb 2015 at 10:04

License Info

There is currently no license attributed to this code; one should be picked.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.