@@ -402,14 +402,21 @@ def _on_stream_properties(self, data):
402402
403403 def _on_stream_update (self , data ):
404404 """Handle stream update."""
405- self ._streams [data .get ('id' )].update (data .get ('stream' ))
406- _LOGGER .debug ('stream %s updated' , self ._streams [data .get ('id' )].friendly_name )
407- self ._streams [data .get ("id" )].callback ()
408- for group in self ._groups .values ():
409- if group .stream == data .get ('id' ):
410- group .callback ()
411- for clientID in group .clients :
412- self ._clients .get (clientID ).callback ()
405+ if data .get ('id' ) in self ._streams :
406+ self ._streams [data .get ('id' )].update (data .get ('stream' ))
407+ _LOGGER .debug ('stream %s updated' , self ._streams [data .get ('id' )].friendly_name )
408+ self ._streams [data .get ("id" )].callback ()
409+ for group in self ._groups .values ():
410+ if group .stream == data .get ('id' ):
411+ group .callback ()
412+ for clientID in group .clients :
413+ self ._clients .get (clientID ).callback ()
414+ else :
415+ if data .get ('stream' , {}).get ('uri' , {}).get ('query' , {}).get ('codec' ) == 'null' :
416+ _LOGGER .debug ('stream %s is input-only, ignore' , data .get ('id' ))
417+ else :
418+ _LOGGER .info ('stream %s not found, synchronize' , data .get ('id' ))
419+ self .synchronize (self .status ())
413420
414421 def set_on_update_callback (self , func ):
415422 """Set on update callback function."""
0 commit comments