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