Public bug reported:

Package:        opencaster
Version:        3.2.2+dfsg-1.1

OS release:     Ubuntu 16.04.2 LTS
System info:    4.4.0-59-generic
                #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017
                x86_64 x86_64 x86_64 GNU/Linux


The "tsvbr2cbr" tool in opencaster converts a variable bitrate transport stream 
file to a constant bitrate one. It incorrectly decodes and processes certain 
PCR values due to a typecast bug and not handling wrapping of PCR values when 
determining the instantaneous bitrate.  The result is that, for certain PCR 
values, it estimates an instantaneous bitrate close to infinity of the input 
stream and therefore incorrectly inserts gigabytes of null padding at that 
point in the output.

The "tspcrmeasure" tool does not have the typecast bug and so correctly
decodes PCR. However it does not correctly handle wrapping of PCR.

I will attach (in follow-up comments) patches that fix the problem and
two small example transport stream files that demonstrate the problem.

The transport stream files contain 5 seconds of audio and video from the
"Tears of Steel" Open Movie project short film and are used here under
the Creative Commons Attribution 3.0 license:
https://mango.blender.org/sharing/


Steps to reproduce below...


tspcrmeasure: Incorrect wrapping behaviour
==========================================

$ tspcrmeasure wrapping.ts 1000000

Actual output (line 17):
------------------------
70322: pid 256, new pcr is 333504 (0.012352 sec), pcr delta is 
18446741496732747520, (683117299885.387207 ms), indices delta is 4136 bytes,( 
33.088000 ms), pcr accuracy is 683212648027.1057128906, instant ts bit rate is 
0.0000000484

Expected output (when patched, line 17):
----------------------------------------
70322: pid 256, new pcr is 333504 (0.012352 sec), pcr delta is 3573504, 
(132.352000 ms), indices delta is 4136 bytes,( 33.088000 ms), pcr accuracy is 
0.0992640000, instant ts bit rate is 250000.0000000000


tsvbr2cbr wrapping problem
==========================

$ tsvbr2cbr wrapping.ts 1000000 > output.ts

Expected behaviour is that it finishes, producing an output file of
about 500 KBytes. However actual behaviour is that it stalls after 17
lines of output to STDERR, because it is incorrectly writing huge
quantities of null padding to the output stream:

Actual output (stderr, line 17):
--------------------------------
70322: pid 256, new pcr is 333504, pcr delta is 18446741496732747520, 
(683117299885.387207 ms), indices delta is 4136 bytes,( 370.588565 ms), instant 
ts bit rate is 0.0000000484

Expected output (stderr, line 17):
----------------------------------
70322: pid 256, new pcr is 333504, pcr delta is 3573504, (132.352000 ms), 
indices delta is 4136 bytes,( 370.588565 ms), instant ts bit rate is 
250000.0000000000
wasted time 0


tsvbr2cbr PCR decoded incorrectly
=================================

$ tsvbr2cbr pcr_decoded_wrong.ts 1000000 > output.ts

Actual output (first line):
---------------------------
17870: pid 256, new pcr is 532537235088, pcr delta is 7553088, (279.744000 ms), 
indices delta is 17484 bytes,( 139.872000 ms), instant ts bit rate is 
500000.0000000000
wasted time 0

Expected output (first line):
-----------------------------
17870: pid 256, new pcr is 1821027423888, pcr delta is 7553088, (279.744000 
ms), indices delta is 17484 bytes,( 139.872000 ms), instant ts bit rate is 
500000.0000000000
wasted time 0


For comparison, run the same stream through tspcrmeasure which does correctly 
decode PCR:

$ tspcrmeasure pcr_decoded_wrong.ts 1000000

Output (first 2 lines):
-----------------------
386: pid 256, new pcr is 1821019870800 (67445.180400 sec)
17870: pid 256, new pcr is 1821027423888 (67445.460144 sec), pcr delta is 
7553088, (279.744000 ms), indices delta is 17484 bytes,( 139.872000 ms), pcr 
accuracy is 0.1398720000, instant ts bit rate is 500000.0000000000

** Affects: opencaster (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1679181

Title:
  tsvbr2cbr/tspcrmeasure tools incorrectly decodes certain PCR values.
  Causes files to be incorrectly filled with null packets.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/opencaster/+bug/1679181/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to