Skip to content

fcp_xml adapter throws TypeError in effect_from_filter_element if 'name' is None #673

@faulknermano

Description

@faulknermano

Hi, if the fcp_xml adapter encounters a blank 'name' parameter whilst try to locate the effect element from the filter element, 'name' becomes None, and scheme.Effect complains that the first constructor arg (i.e. name) cannot be None.

The traceback looks like this:

  tl  = otio.adapters.read_from_file(fn)
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/__init__.py", line 144, in read_from_file
    **adapter_argument_map
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/adapter.py", line 133, in read_from_file
    **adapter_argument_map
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/plugins/python_plugin.py", line 174, in _execute_function
    return (getattr(self.module(), func_name)(**kwargs))
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/fcp_xml.py", line 1938, in read_from_string
    sequences = parser.top_level_sequences()
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/fcp_xml.py", line 663, in top_level_sequences
    return [self.timeline_for_sequence(s, context) for s in sequence_iter]
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/fcp_xml.py", line 705, in timeline_for_sequence
    tracks = self.stack_for_element(media_element, local_context)
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/fcp_xml.py", line 756, in stack_for_element
    track_element, track_kind, local_context
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/fcp_xml.py", line 819, in track_for_element
    local_context,
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/fcp_xml.py", line 991, in item_and_timing_for_element
    item_element, item_range, start_offset, context
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/fcp_xml.py", line 1090, in clip_for_element
    self.effect_from_filter_element(filter_element)
  File "/home/lang/.local/lib/python2.7/site-packages/opentimelineio/adapters/fcp_xml.py", line 1115, in effect_from_filter_element
    metadata={META_NAMESPACE: effect_metadata},
TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
    1. opentimelineio._otio.Effect(name: unicode = u'', effect_name: unicode = u'', metadata: object = None)

And a partial snippet of the xml looks like:

<filter>
    <effect>
        <name></name>
        <effectid>GraphicAndType</effectid>
        <effectcategory>graphic</effectcategory>
        <effecttype>filter</effecttype>
        <mediatype>video</mediatype>
        <pproBypass>false</pproBypass>
        <parameter authoringApp="PremierePro">
            <parameterid>1</parameterid>
            <name>Source Text</name>
            <hash>86c1a2b5-72d0-d084-5430-aaa900000c8c</hash>
        ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions