Code Monkey home page Code Monkey logo

tsetr290's Introduction

tsetr290

Validate Transport Streams Useful for checking standards compliance of transport streams before sending for broadcast. Some code blatantly ripped from tstools from zhoucheng and opencaster.

I'm not a educated programmer so any improvements or wtf's feel free to let me know or make it better yourself. Python GUI for this will be made in another repo.

git clone https://github.com/Emerica/tsetr290.git
cd tsetr290
make
./tsetr290 filname [bitrate] [reports]
./tsetr290 mytestfile.ts
./tsetr290 mytestfile.ts 15000000

make install

tsetr290 filname [bitrate] [reports]
tsetr290 mytestfile.ts
tsetr290 mytestfile.ts 15000000 1

OR with docker/bind mount

%SOURCEDIR% = A directory with TS files you want to scan.

%MEDIAFILE.ts% = A Transport Stream in the directory

%BITRATE% = The expected bitrate (optional)

%REPORTS% = Optional reports (optional)

git clone https://github.com/Emerica/tsetr290.git
cd tsetr290/docker
docker build -t tsetr290:latest .
docker run -i -t --mount type=bind,source="%SOURCEDIR%",target=/scan tsetr290:latest \ 
  /usr/local/bin/tsetr290 "/scan/%MEDIAFILE.ts%" %BITRATE% %REPORTS%

If bitrate is not supplied it will be calculated from the PCR values. This is not optimal if you are looking for a proper report. Timing accuracy will suffer until the rate has been established.

If reports is set, a set of delta reports will be created which can be graphed.

Most checks that don't require buffering have been implemented, possibly incorrectly. I haven't had a need to pass L3, most providers on seem to require L1 and L2. Feel free to implement the remaining checks.

Links to the refference decoder would help here. mpeg2dec? It seems mpeg.org has had a Joomla problem for weeks and hasn't been bothered to fix it.

alt text

1.0

  • 1.1 - ERROR - TS_sync_loss
  • 1.2 - ERROR - Sync_byte_error
  • 1.3a - ERROR - PAT_error - spacing exceeds 500ms
  • 1.3b - ERROR - PAT_error - table_id is invalid
  • 1.3c - ERROR - PAT_error - scrambling control is not 0
  • 1.4 - ERROR - Continuity_count_error
  • 1.5a - ERROR - PMT_error - spacing exceeds 500ms
  • 1.5b - ERROR - PMT_error - PMT table_id is invalid
  • 1.5c - ERROR - PMT_error - scrambling control is not 0
  • 1.6 - ERROR - PID_error - PID not found in PMT

2.0

  • 2.1 - ERROR - Transport_error - Transport_error indicator is 1
  • 2.2 - ERROR - CRC_error - Calculated CRC for X
  • 2.3a - ERROR - PCR_error - PCR delta is greater than 100ms
  • 2.3b - ERROR - PCR_error - PCR delta is greater than 40ms
  • 2.4 - ERROR - PCR_accuracy_error - PCR jitter is greater than 500ns
  • 2.5 - ERROR - PTS_error - PTS spacing greater than 700ms
  • 2.6a - ERROR - CAT_error - transport_scrambling_control set, but no section with no CAT present
  • 2.6b - ERROR - CAT_error - Section with table_id other than 0x01 found

3.0

  • 3.1a - ERROR - NIT_error - Section with table_id other than 0x40 or 0x41 or 0x72
  • 3.1b - ERROR - NIT_error - NIT spacing on pid %d is greater than 10000ms
  • 3.2 - ERROR - SI_repetition_error Repetition rate of SI tables outside of specified limits (25ms)
  • 3.3 - ERROR - Buffer_error TB_buffering_error ๐Ÿšง
  • 3.4 - ERROR - PID_error - PID found in stream, not in PMT
  • 3.5a - ERROR - SDT_error - SDT packets not found in stream
  • 3.5b - ERROR - SDT_error - Section with table_id other than 0x42, 0x46, 0x4A or 0x72
  • 3.6a - ERROR - EIT_error - Sections with table_id = 0x4E not present on PID 0x0012 for more than 2 seconds
  • 3.6b - ERROR - SDT_error - Sections with table_ids other than in the range 0x4E - 0x6F or 0x72
  • 3.7 - ERROR - RST_error - Sections with table_id other than 0x71 or 0x72 fo
  • 3.8a - ERROR - TDT_error - TDT packets not found
  • 3.8b - ERROR - TDT_error - Section with table_id other than 0x70, 0x72, 0x73
  • 3.9 - ERROR - Empty_buffer_error Transport buffer (TBn) not empty at least ๐Ÿšง
  • 3.10 - ERROR - Data_delay_error Delay of data (except still picture video data) ๐Ÿšง

tsetr290's People

Contributors

emerica avatar wildtv avatar

Watchers

 avatar

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.