Esempio n. 1
0
 def __init__(
     self,
     node_id,
     carriage_impl,
     outbound_carriage_impl,
     reference_clock,
     segment_length,
     media_time_zero,
     segment_timer,
     discard,
 ):
     super(EBUTTDEncoder, self).__init__(
         node_id=node_id, carriage_impl=carriage_impl, reference_clock=reference_clock
     )
     self._outbound_carriage_impl = outbound_carriage_impl
     # We need clock factory to figure the timesync out
     self._last_segment_end = reference_clock.get_time()
     self._segment_length = timedelta(seconds=segment_length)
     media_clock = MediaClock()
     media_clock.adjust_time(timedelta(), media_time_zero)
     self._ebuttd_converter = EBUTT3EBUTTDConverter(media_clock=media_clock)
     self._default_ebuttd_doc = EBUTTDDocument(lang="en-GB")
     self._default_ebuttd_doc.validate()
     self._segment_timer = segment_timer
     self._discard = discard
Esempio n. 2
0
def when_document_converted(test_context, local_time_mapping):
    media_clock = MediaClock()
    media_clock.adjust_time(timedelta(), ebuttdt.LimitedClockTimingType(local_time_mapping).timedelta)
    ebuttd_converter = EBUTT3EBUTTDConverter(
        media_clock=media_clock
    )
    converted_bindings = ebuttd_converter.convert_document(test_context['document'].binding)
    ebuttd_document = EBUTTDDocument.create_from_raw_binding(converted_bindings)
    test_context['ebuttd_document'] = ebuttd_document
    # TODO: Add the proper assertions
    ebuttd_document.get_xml()
class TestEBUTT3ToEBUTTDConverter(TestCase):

    def setUp(self):
        self._media_clock = MediaClock()

    def _load_asset(self, file_name):
        dirpath = os.path.dirname(os.path.abspath(__file__))
        with open(os.path.join(dirpath, file_name), 'r') as ifile:
            contents = ifile.read()
            return contents

    def test_simple(self):
        div = div_type(
            p_type(
                span_type(
                    'Here we are',
                    br_type(),
                    'in 2 lines.'
                ),
                id='ID001',
                begin=ebuttdt.FullClockTimingType(timedelta(seconds=1)),
                end=ebuttdt.FullClockTimingType(timedelta(seconds=3))
            )
        )

        document = EBUTT3Document(
            time_base='media',
            lang='en-GB',
            sequence_identifier='TestSeq1',
            sequence_number=1
        )
        document.add_div(div)
        document.validate()

        ebutt3_to_ebuttd(document, self._media_clock)

    def test_ericsson_1(self):

        xml_file = self._load_asset('converter_ericsson1.xml')

        self._media_clock.adjust_time(timedelta(), ebuttdt.LimitedClockTimingType('12:11:50.000').timedelta)

        document = EBUTT3Document.create_from_xml(xml_file)
        cdoc = ebutt3_to_ebuttd(document, self._media_clock)
        print cdoc.get_xml()
Esempio n. 4
0
def sequence(sequence_identifier, time_base):
    ref_clock = None
    if time_base == 'clock':
        ref_clock = LocalMachineClock()
    elif time_base == 'media':
        ref_clock = MediaClock()
    elif time_base == 'smpte':
        raise NotImplementedError()
    sequence = EBUTT3DocumentSequence(sequence_identifier, ref_clock, 'en-GB', verbose=True)
    return sequence
Esempio n. 5
0
 def __init__(self,
              node_id,
              media_time_zero,
              default_ns=False,
              producer_carriage=None,
              consumer_carriage=None,
              **kwargs):
     super(EBUTTDEncoder,
           self).__init__(producer_carriage=producer_carriage,
                          consumer_carriage=consumer_carriage,
                          node_id=node_id,
                          **kwargs)
     self._default_ns = default_ns
     media_clock = MediaClock()
     media_clock.adjust_time(timedelta(), media_time_zero)
     self._ebuttd_converter = EBUTT3EBUTTDConverter(media_clock=media_clock)
     self._default_ebuttd_doc = EBUTTDDocument(lang='en-GB')
     self._default_ebuttd_doc.set_implicit_ns(self._default_ns)
     self._default_ebuttd_doc.validate()
 def __init__(self, node_id, carriage_impl, outbound_carriage_impl, reference_clock,
              segment_length, media_time_zero, segment_timer, discard):
     super(EBUTTDEncoder, self).__init__(
         node_id=node_id,
         carriage_impl=carriage_impl,
         reference_clock=reference_clock
     )
     self._outbound_carriage_impl = outbound_carriage_impl
     # We need clock factory to figure the timesync out
     self._last_segment_end = reference_clock.get_time()
     self._segment_length = timedelta(seconds=segment_length)
     media_clock = MediaClock()
     media_clock.adjust_time(timedelta(), media_time_zero)
     self._ebuttd_converter = EBUTT3EBUTTDConverter(
         media_clock=media_clock
     )
     self._default_ebuttd_doc = EBUTTDDocument(lang='en-GB')
     self._default_ebuttd_doc.validate()
     self._segment_timer = segment_timer
     self._discard = discard
 def setUp(self):
     self._media_clock = MediaClock()
Esempio n. 8
0
 def __init__(self, media_clock=None):
     if media_clock is None:
         media_clock = MediaClock()
     self._converter = EBUTT3EBUTTDConverter(media_clock=media_clock)