ebu / ebu-tt-live-toolkit

Toolkit for supporting the EBU-TT Live specification
http://ebu.github.io/ebu-tt-live-toolkit/
BSD 3-Clause "New" or "Revised" License
25 stars 10 forks source link

EBU-TT-D encoder non-functional #448

Closed nigelmegitt closed 7 years ago

nigelmegitt commented 7 years ago

The following config file produces runtime errors, mainly concerned with configuration.

{
  "nodes": {
    "node1": {
      "id": "producer1",
      "type": "simple-producer",
      "show_time": true,
      "sequence_identifier": "TestSequence1",
      "output": {
        "carriage": {
          "type": "direct",
          "id": "pipe1"
        }
      }
    },
    "node2": {
      "id": "resequencer1",
      "type": "resequencer",
      "sequence_identifier": "ReSequenced1",
      "segment_length": "1.0",
      "input": {
        "carriage": {
          "type": "direct",
          "id": "pipe1"
        }
      },
      "output": {
        "carriage": {
          "type": "direct",
          "id": "pipe2"
        }
      }
    },
    "node3": {
      "id": "encoder1",
      "type": "ebuttd-encoder",
      "default_namespace": "true",
      "input": {
        "carriage": {
          "type": "direct",
          "id": "pipe2"
        }
      },
      "output": {
        "carriage": {
          "type": "filesystem-simple",
          "folder": "demo/ebuttd_export",
          "rotating_buf": 0,
          "filename_pattern": "ebuttd-encode-{counter}.xml"
        },
      "adapters": {
          "type": "ebuttd->xml"
        }
      }
    }
  }
}

For example the following output arises:

$ ebu-run --admin.conf ebu_tt_live/examples/config/sproducer_rseq_ebuttd_direct.json 
[INFO] (2017-06-19 14:41:38,760) in ebu_tt_live.config.backend[33] - [<ebu_tt_live.config.carriage.DirectOutput object at 0x106d51610>]
[INFO] (2017-06-19 14:41:38,760) in ebu_tt_live.config.backend[33] - [<ebu_tt_live.config.carriage.DirectOutput object at 0x106d51610>, <ebu_tt_live.config.node.SimpleProducer object at 0x1068f0ed0>]
[INFO] (2017-06-19 14:41:38,760) in ebu_tt_live.config.backend[33] - [<ebu_tt_live.config.carriage.DirectOutput object at 0x106d51610>, <ebu_tt_live.config.node.SimpleProducer object at 0x1068f0ed0>, <ebu_tt_live.config.carriage.DirectInput object at 0x106d51810>]
[INFO] (2017-06-19 14:41:38,761) in ebu_tt_live.config.backend[33] - [<ebu_tt_live.config.carriage.DirectOutput object at 0x106d51610>, <ebu_tt_live.config.node.SimpleProducer object at 0x1068f0ed0>, <ebu_tt_live.config.carriage.DirectInput object at 0x106d51810>, <ebu_tt_live.config.carriage.DirectOutput object at 0x1062d4f50>]
[INFO] (2017-06-19 14:41:38,761) in ebu_tt_live.config.backend[33] - [<ebu_tt_live.config.carriage.DirectOutput object at 0x106d51610>, <ebu_tt_live.config.node.SimpleProducer object at 0x1068f0ed0>, <ebu_tt_live.config.carriage.DirectInput object at 0x106d51810>, <ebu_tt_live.config.carriage.DirectOutput object at 0x1062d4f50>, <ebu_tt_live.config.node.ReSequencer object at 0x1041c8bd0>]
[INFO] (2017-06-19 14:41:38,785) in ebu_tt_live.config.backend[33] - [<ebu_tt_live.config.carriage.DirectOutput object at 0x106d51610>, <ebu_tt_live.config.node.SimpleProducer object at 0x1068f0ed0>, <ebu_tt_live.config.carriage.DirectInput object at 0x106d51810>, <ebu_tt_live.config.carriage.DirectOutput object at 0x1062d4f50>, <ebu_tt_live.config.node.ReSequencer object at 0x1041c8bd0>, <ebu_tt_live.config.carriage.DirectInput object at 0x106d51ad0>]
Traceback (most recent call last):
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/venv/bin/ebu-run", line 11, in <module>
    load_entry_point('ebu-tt-live', 'console_scripts', 'ebu-run')()
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/scripts/ebu_run.py", line 42, in main
    app = create_app()
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/config/__init__.py", line 33, in create_app
    new_app = AppConfig(**kwargs)
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/config/__init__.py", line 62, in __init__
    self._nodes = config.nodes.type.configure_component(config, config.nodes)
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/config/node.py", line 370, in configure_component
    instance._nodes.append(item.type.configure_component(config, item))
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/config/common.py", line 53, in configure_component
    return cls(config=config, local_config=local_config)
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/config/node.py", line 276, in __init__
    self._create_output(config)
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/config/node.py", line 35, in _create_output
    config, self.config.output.carriage)
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/config/common.py", line 53, in configure_component
    return cls(config=config, local_config=local_config)
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/ebu_tt_live/config/carriage.py", line 84, in __init__
    if config.rotating_buf:
  File "/Users/megitn02/Code/ebu/ebu-tt-live-toolkit/venv/lib/python2.7/site-packages/configman/dotdict.py", line 363, in __getattr__
    raise KeyError(key)
KeyError: 'rotating_buf'

This arises even when rotating_buf is omitted from the configuration file.

nigelmegitt commented 7 years ago

Closing as effectively a duplicate of #456.