kynesim / tstools Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/tstools
Automatically exported from code.google.com/p/tstools
This is a set of cross-platform command line tools for working with MPEG data. The emphasis is on relatively simple tools which concentrate on MPEG (H.264 and H.262) data packaged according to H.222 (i.e., TS or PS), with a particular interest in checking for conformance. Transport Stream (TS) is typically used for distribution of cable and satellite data. Program Stream (PS) is typically used to store data on DVDs. The tools are focused on: * Quick reporting of useful data (tsinfo, stream_type) * Giving a quick overview of the entities in the stream (esdots, psdots) * Reporting on TS packets (tsreport) or ES units/frames/fields (esreport) * Simple manipulation of stream data (es2ts, esfilter, esreverse, esmerge, ts2es) * Streaming of data, possibly with introduced errors (tsplay)
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
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
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
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.)
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:
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
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.
The YUV codebase is really a separate project, and should be moved to such (and
then get worked on!)
Original issue reported on code.google.com by [email protected]
on 26 Sep 2010 at 2:12
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
The function build_pmt() in pidint.c incorrectly raises an error when PCR is
carried on PID 0x0000 or 0x0001. Per Table 2-3 of ISO/IEC 13818-1, "transport
packets with PID values 0x0000, 0x0001, and 0x0010-0x1FFE are allowed to carry
a PCR.
Original issue reported on code.google.com by [email protected]
on 12 Apr 2011 at 6:04
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:
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?
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
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:
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!
.. because I have to do this a fair amount and I suspect others do too.
Original issue reported on code.google.com by [email protected]
on 4 Sep 2011 at 3:14
shared lib is part of default make list.
run make on OS X 10.8.5
What happens:
libtool -dynamic ...
with long string of missing symbol errors.
Expected: success
Fix: add libc dependency to link (-lc), non Darwin already does; patch attached.
Original issue reported on code.google.com by [email protected]
on 21 Mar 2014 at 12:50
Attachments:
Provide a pcap2ts tool.
I have a trivial Perl implementation here, using the following CPAN modules:
Net::Pcap;
NetPacket::Ethernet;
NetPacket::IP;
NetPacket::UDP;
I'll see if I can get it released under the Mozilla 1.1 license.
Original issue reported on code.google.com by [email protected]
on 30 May 2011 at 5:33
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
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
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
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;
}
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
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
There is currently no license attributed to this code; one should be picked.
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:
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
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
Add commandline options to activate or deactivate
reserved bit checks at PAT/PMT/SDT tables.
Original issue reported on code.google.com by [email protected]
on 16 Mar 2012 at 9:31
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
Would be useful to have a tool that can split ps files. Giving start and end.
Original issue reported on code.google.com by [email protected]
on 19 Oct 2010 at 7:01
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:
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:
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
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
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
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
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
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
Hello,
Any readme for installation?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.