Skip to content

Releases: bbc/ebu-tt-live-toolkit

Temp tag for testing a build

03 Dec 10:45
b2790af
Compare
Choose a tag to compare
Pre-release
Tt1 to tt3/mspa 705 smpte (#43)

* Validate bindings for EBU-TT-1 documents by dynamically setting superseding class on document creation

* MSPA-702: Check existence of Styling and Layout elements for EBU-TT-1

* MSPA-702: EBU-TT-1 document must contain a tt:region element

* MSPA-702: body/dur attribute is not allowed in EBU-TT-1

* MSPA-702: Check that smpte timeBase is acceptable in EBU-TT-1

* Validate bindings for EBU-TT-1 documents by dynamically setting superseding class on document creation

* MSPA-702: EBU-TT-1 document must contain a tt:region element

* tt3 to ttd conversion (#41)

MSPA-728 ebu-tt-3 to ebu-tt-d conversion

* rebased and fixed ebuttd test files

* extracting ebutt1object base into generic ebuttdocumentbase class

* Add EBU-TT 1 to EBU-TT 3 conversion

Does not handle time conversion.
Sets `ebuttp:sequenceIdentifier` to the value of `tt/head/metadata/documentMetadata/documentIdentifier` if present, otherwise uses "TestConverter".
Resets the `conformsToStandard` to say it is EBU-TT-3 conformant.
Sets the `timeBase` to `media` whether you like it or not, but doesn't do any other conversions.

* Address review comments

Also allows for a setting that specifies whether or not to use `ebuttm:documentIdentifier` element value in the input as the `ebuttp:sequenceIdentifier` attribute value in the output. Adds a test for this.

* Unit test EBUTT1 to EBUTT3 conversion

* Fix validation error messages for unexpected attributes so it doesn't say they are missing.
* Fix cloning of unknown element, and conversion of metadata
* Make EBUTT1Document instantiatable by including required attributes and elements in the constructor
* Add unit test cases for programmatical construction with smpte (skipped) and media timebase
* Add unit test cases for from-document construction with smpte (skipped) and media timebase

* Timedelta converter

Creates a fixed offset SMPTE timecode converter that can return a timedelta equivalent for any valid SMPTE timecode value equal to or after the provided reference start point. Invalid timecodes throw errors. The timedelta returned is the difference between the input timecode and the reference timecode.

* Reimplement ebu/ebu-tt-live-toolkit#516

See https://github.com/ebu/ebu-tt-live-toolkit/pull/516 for further details.

Enables an `ebuttm:documentStartOfProgramme` element to be included in a document without causing a crash.

* Make a smpte timecode converter

Make a FixedOffsetSMPTEtoTimedeltaConverter to convert SMPTE times based on the `ebuttm:documentStartOfProgramme` element if present, or assuming `00:00:00:00` otherwise.

* pep8 tidying, where possible

* test smpte time conversion

* Unskip tests that now pass because they're implemented
* add a test to check that using the `ebuttm:documentStartOfProgramme` as the basis for time conversion works.
* pep8 tidying

* Discard elements that end up with negative times

Unit test for this also added.
Tidy out some print statements that had made their way in there.

* Add some documentation

The docs in current state don't build properly because  autodoc throws a "cannot import name `EBUTT1EBUTT3Converter`" exception. This is possibly a problem with  circular `import` references, which should be resolved before we merge. This can be demonstrated by adding `from . import ebutt1_ebutt3` to `ebu_tt_live/bindings/converters/__init__.py` and running `python -m ebu_tt_live.bindings.converters` which shows a stack trace illustrating the issue.

* Resolve circular import loop

This was preventing documentation from building correctly.

* Prune empty output elements

* Add documentation and fix node code

* Add EBUTT1 to EBUTT3 producer node config parameters

* Add example config file for EBUTT1 to EBUTT3 conversion

Also a manifest file for its input, using existing test XML file.

* Add documentation

* Correctly format code blocks

RST uses double backticks, not like markdown's single ones!

* Allow start of programme timecode to be manually overridden

Sometimes we might know better than the document what start of programe timecode to use, so allow any value specified in the EBU-TT 1 document to be overridden.

* Address @danielthepope's excellent  review comments

* Tidy .gitignore
* Fix up documentation - backticks, mainly
* Fix/improve code comments
* Use snake case for method name instead of camelCase, to match PEP8
* Test that negative times raise errors
* Fix dropped frame algorithm typo - it really should check frame values! Update tests to be more rigorous in checking that too, since they shouldn't have passed before.