def read(self, content, lang=u'en-US', simulate_roll_up=False, offset=0): """Converts the unicode string into a CaptionSet :type content: unicode :param content: The SCC content to be converted to a CaptionSet :type lang: unicode :param lang: The language of the caption :type simulate_roll_up: bool :param simulate_roll_up: If True, when converting to other formats, the resulting captions will contain all the rows that were visible on the screen when the captions were rolling up. :type offset: int :param offset: :rtype: CaptionSet """ if type(content) != unicode: raise RuntimeError(u'The content is not a unicode string.') # Preparation. Clear the cached positioning from when processing # other captions DefaultProvidingPositionTracer.reset_default_positioning() self.simulate_roll_up = simulate_roll_up self.time_translator.offset = offset * 1000000 # split lines lines = content.splitlines() # loop through each line except the first for line in lines[1:]: self._translate_line(line) self._flush_implicit_buffers() captions = CaptionSet() captions.set_captions(lang, self.caption_stash.get_all()) if captions.is_empty(): raise CaptionReadNoCaptions(u"empty caption file") return captions
def read(self, content, lang=u'en-US', simulate_roll_up=False, offset=0): """Converts the unicode string into a CaptionSet :type content: unicode :param content: The SCC content to be converted to a CaptionSet :type lang: unicode :param lang: The language of the caption :type simulate_roll_up: bool :param simulate_roll_up: If True, when converting to other formats, the resulting captions will contain all the rows that were visible on the screen when the captions were rolling up. :type offset: int :param offset: :rtype: CaptionSet """ if type(content) != unicode: raise InvalidInputError(u'The content is not a unicode string.') self.simulate_roll_up = simulate_roll_up self.time_translator.offset = offset * 1000000 # split lines lines = content.splitlines() # loop through each line except the first for line in lines[1:]: self._translate_line(line) self._flush_implicit_buffers() captions = CaptionSet() captions.set_captions(lang, self.caption_stash.get_all()) if captions.is_empty(): raise CaptionReadNoCaptions(u"empty caption file") else: last_caption = captions.get_captions(lang)[-1] last_caption.end = get_corrected_end_time(last_caption) return captions
def read(self, content, lang=u'en-US', simulate_roll_up=False, offset=0): """Converts the unicode string into a CaptionSet :type content: unicode :param content: The SCC content to be converted to a CaptionSet :type lang: unicode :param lang: The language of the caption :type simulate_roll_up: bool :param simulate_roll_up: If True, when converting to other formats, the resulting captions will contain all the rows that were visible on the screen when the captions were rolling up. :type offset: int :param offset: :rtype: CaptionSet """ if type(content) != unicode: raise InvalidInputError(u'The content is not a unicode string.') self.simulate_roll_up = simulate_roll_up self.time_translator.offset = offset * 1000000 # split lines lines = content.splitlines() # loop through each line except the first for line in lines[1:]: self._translate_line(line) self._flush_implicit_buffers() captions = CaptionSet() captions.set_captions(lang, self.caption_stash.get_all()) if captions.is_empty(): raise CaptionReadNoCaptions(u"empty caption file") else: last_caption = captions.get_captions(lang)[-1] last_caption.end = get_corrected_end_time(last_caption) return captions