def output_stream(stream):
 global output
 for i in range(args.retry_open):
  try:
   (stream_fd, prebuffer) = open_stream(stream)
   break
  except StreamError as err:
   console.logger.error('{0}', err)
 else:
  return
 output = create_output()
 try:
  output.open()
 except (IOError, OSError) as err:
  if isinstance(output, PlayerOutput):
   console.exit('Failed to start player: {0} ({1})', args.player, err)
  else:
   console.exit('Failed to open output: {0} ({1})', args.output, err)
 with closing(output):
  console.logger.debug('Writing stream to output')
  read_stream(stream_fd, output, prebuffer)
 return True

def output_stream ( stream ) : global output for i in range ( args . retry_open ) : try : ( stream_fd , prebuffer ) = open_stream ( stream ) break except StreamError as err : console . logger . error ( '{0}' , err ) else : return output = create_output ( ) try : output . open ( ) except ( IOError , OSError ) as err : if isinstance ( output , PlayerOutput ) : console . exit ( 'Failed to start player: {0} ({1})' , args . player , err ) else : console . exit ( 'Failed to open output: {0} ({1})' , args . output , err ) with closing ( output ) : console . logger . debug ( 'Writing stream to output' ) read_stream ( stream_fd , output , prebuffer ) return True
open stream .