anchor.diff:      _renderer.onStateChanged = () {
         setState(() {
           _aspectRatio = _renderer.aspectRatio;
  -        _mirror = _renderer.flipHorizintal;
  +        _mirror = _renderer.mirror;
  +        _objectFit = _renderer.objectFit;
         });
       };
     }
   
  +  Widget _buildVideoView(BoxConstraints constraints) {
  +    return Container(
  +        width: constraints.maxWidth,
  +        height: constraints.maxHeight,
  +        child: FittedBox(
  +            fit:
  +                _objectFit == RTCVideoViewObjectFit.RTCVideoViewObjectFitContain
  +                    ? BoxFit.contain
  +                    : BoxFit.cover,
  +            child: new Center(
  +                child: new SizedBox(
  +                    width: constraints.maxHeight * _aspectRatio,
  +                    height: constraints.maxHeight,
  +                    child: new Transform(
  +                        transform: Matrix4.identity()
  +                          ..rotateY(_mirror ? -pi : 0.0),
  +                        alignment: FractionalOffset.center,
  +                        child:
  +                            new Texture(textureId: _renderer._textureId))))));
  +  }
  +
     @override
     Widget build(BuildContext context) {
  -    return new Center(
  -        child: (_renderer._textureId == null || _renderer._srcObject == null)
  -            ? new Container()
  -            : new Transform(
  -                transform: Matrix4.identity()
  -                  ..setEntry(3, 2, 0.001)
  -                  ..rotateX(0.0)
  -                  ..rotateY(_mirror ? -pi : 0.0),
  -                alignment: FractionalOffset.center,
  -                child: new AspectRatio(
  -                    aspectRatio: _aspectRatio,
  -                    child: new Texture(textureId: _renderer._textureId))));
  +    bool renderVideo =
  +        (_renderer._textureId != null && _renderer._srcObject != null);
  +
  +    return new LayoutBuilder(
  +        builder: (BuildContext context, BoxConstraints constraints) {
  +      return new Center(
  +          child: renderVideo ? _buildVideoView(constraints) : new Container());
  +    });
     }
   }
  
positive.code:     }
    }
  
    set objectFit(RTCVideoViewObjectFit objectFit) {
      _objectFit = objectFit;
    }
  
    set srcObject(MediaStream stream) {
  
negative.code:   int get textureId => _textureId;
  
    double get aspectRatio => (_width == 0 || _height == 0)
        ? 1.0
        : (_rotation == 90 || _rotation == 270)
            ? _height / _width
            : _width / _height;
  
    bool get mirror => _mirror;
  
    set mirror(bool mirror) {
      _mirror = mirror;
  