anchor.diff:          .listen(eventListener, onError: errorListener);
     }
   
  -  int get rotation => _rotation;
  -
  -  double get width => _width;
  -
  -  double get height => _height;
  -
     int get textureId => _textureId;
   
  -  double get aspectRatio => (_width == 0 || _height == 0)
  -      ? 1.0
  -      : (_rotation == 90 || _rotation == 270)
  -          ? _height / _width
  -          : _width / _height;
  -
     set srcObject(MediaStream stream) {
  +    if (stream == null) {
  +      value = RTCVideoValue.empty;
  +    }
       _srcObject = stream;
       _channel.invokeMethod('videoRendererSetSrcObject', <String, dynamic>{
         'textureId': _textureId,
  
positive.code:     final Map<dynamic, dynamic> map = event;
      switch (map['event']) {
        case 'didTextureChangeRotation':
          _rotation = map['rotation'];
          break;
        case 'didTextureChangeVideoSize':
          _width = 0.0 + map['width'];
          _height = 0.0 + map['height'];
          break;
        case 'didFirstFrameRendered':
          break;
      }
      if (this.onStateChanged != null) {
        this.onStateChanged();
      }
    }
  
  
negative.code: import 'utils.dart';
  import 'enums.dart';
  
  @immutable
  class RTCVideoValue {
    static const RTCVideoValue empty = RTCVideoValue();
  
    final double width;
    final double height;
    final int rotation;
  
    const RTCVideoValue({
      this.width = 0.0,
      this.height = 0.0,
      this.rotation = 0,
    });
  
    double get aspectRatio {
      if (width == 0.0 || height == 0.0) {
        return 1.0;
      } else {
        return (rotation == 90 || rotation == 270) ? height / width : width / height;
      }
    }
  
    RTCVideoValue copyWith({
      double width,
      double height,
      int rotation,
    }) {
      return RTCVideoValue(
        width: width ?? this.width,
        height: height ?? this.height,
        rotation: rotation ?? this.rotation,
      );
    }
  
    @override
    String toString() => '$runtimeType(width: $width, height: $height, rotation: $rotation)';
  }
  
  class RTCVideoRenderer extends ValueNotifier<RTCVideoValue> {
    MethodChannel _channel = WebRTC.methodChannel();
    int _textureId;
    MediaStream _srcObject;
    StreamSubscription<dynamic> _eventSubscription;
  
    RTCVideoRenderer() : super(RTCVideoValue.empty);
  
    initialize() async {
      final Map<dynamic, dynamic> response =
  