Program: 170422
Project: 170422
Buggy source:
/** 
 * Draws the frames of the video.  If looping has been set, frames are drawn continuously in a loop.
 * @param context
 */
@Override protected boolean prepare(final Context2D context,final Attributes attr,final double alpha){
  if (m_inits) {
    init();
    if ((null == m_error) && (isAutoPlay())) {
      play();
    }
  }
  int wide=getWidth();
  int high=getHeight();
  if (null != m_error) {
    if (false == context.isSelection()) {
      if (wide < 1) {
        wide=MOVIE_ERROR_WIDE;
      }
      if (high < 1) {
        high=MOVIE_ERROR_HIGH;
      }
      context.save();
      context.setFillColor(ColorName.BLACK);
      context.rect(0,0,wide,high);
      context.fill();
      context.setTextAlign(TextAlign.CENTER);
      context.setTextBaseline(TextBaseLine.MIDDLE);
      context.setTextFont(getTextBestFit(context,m_error,wide));
      context.setFillColor(ColorName.WHITE);
      context.rect(0,0,wide,high);
      context.clip();
      context.fillText(m_error,wide / 2,high / 2);
      context.restore();
    }
  }
 else {
    if ((wide < 1) || (high < 1)) {
      return false;
    }
    if (context.isSelection()) {
      final String color=getColorKey();
      if (null != color) {
        context.save();
        context.setFillColor(color);
        context.fillRect(0,0,wide,high);
        context.restore();
      }
      return false;
    }
    if (isEnded()) {
      if (null != m_postr) {
        context.save();
        context.setGlobalAlpha(alpha);
        context.drawImage(m_postr,0,0,wide,high);
        context.restore();
      }
 else {
        final String fill=getFillColor();
        if (null != fill) {
          context.save();
          context.setGlobalAlpha(alpha);
          context.setFillColor(fill);
          context.fillRect(0,0,wide,high);
          context.restore();
        }
      }
      return false;
    }
    context.save();
    context.setGlobalAlpha(alpha);
    if ((false == m_xorig) && (m_filters.isActive())) {
      try {
        m_canvas.getContext().drawImage(m_video.getElement(),0,0,wide,high);
        m_canvas.getContext().putImageData(m_filters.filter(m_canvas.getContext().getImageData(0,0,wide,high),false),0,0);
        context.drawImage(m_canvas.getElement(),0,0,wide,high);
      }
 catch (      final Exception e) {
        context.drawImage(m_video.getElement(),0,0,wide,high);
        m_xorig=true;
        LienzoCore.get().error("String_Node_Str" + m_video.getSrc() + "String_Node_Str"+ e.getMessage());
      }
    }
 else {
      context.drawImage(m_video.getElement(),0,0,wide,high);
    }
    context.restore();
  }
  return false;
}

Fixed version (ground truth):
/** 
 * Draws the frames of the video.  If looping has been set, frames are drawn continuously in a loop.
 * @param context
 */
@Override protected boolean prepare(final Context2D context,final Attributes attr,final double alpha){
  if (m_inits) {
    init();
    if ((null == m_error) && (isAutoPlay())) {
      play();
    }
  }
  int wide=getWidth();
  int high=getHeight();
  if (null != m_error) {
    if (false == context.isSelection()) {
      if (wide < 1) {
        wide=MOVIE_ERROR_WIDE;
      }
      if (high < 1) {
        high=MOVIE_ERROR_HIGH;
      }
      context.save();
      context.setFillColor(ColorName.BLACK);
      context.rect(0,0,wide,high);
      context.fill();
      context.setTextAlign(TextAlign.CENTER);
      context.setTextBaseline(TextBaseLine.MIDDLE);
      context.setTextFont(getTextBestFit(context,m_error,wide));
      context.setFillColor(ColorName.WHITE);
      context.rect(0,0,wide,high);
      context.clip();
      context.fillText(m_error,wide / 2.0d,high / 2.0d);
      context.restore();
    }
  }
 else {
    if ((wide < 1) || (high < 1)) {
      return false;
    }
    if (context.isSelection()) {
      final String color=getColorKey();
      if (null != color) {
        context.save();
        context.setFillColor(color);
        context.fillRect(0,0,wide,high);
        context.restore();
      }
      return false;
    }
    if (isEnded()) {
      if (null != m_postr) {
        context.save();
        context.setGlobalAlpha(alpha);
        context.drawImage(m_postr,0,0,wide,high);
        context.restore();
      }
 else {
        final String fill=getFillColor();
        if (null != fill) {
          context.save();
          context.setGlobalAlpha(alpha);
          context.setFillColor(fill);
          context.fillRect(0,0,wide,high);
          context.restore();
        }
      }
      return false;
    }
    context.save();
    context.setGlobalAlpha(alpha);
    if ((false == m_xorig) && (m_filters.isActive())) {
      try {
        m_canvas.getContext().drawImage(m_video.getElement(),0,0,wide,high);
        m_canvas.getContext().putImageData(m_filters.filter(m_canvas.getContext().getImageData(0,0,wide,high),false),0,0);
        context.drawImage(m_canvas.getElement(),0,0,wide,high);
      }
 catch (      final Exception e) {
        context.drawImage(m_video.getElement(),0,0,wide,high);
        m_xorig=true;
        LienzoCore.get().error("String_Node_Str" + m_video.getSrc() + "String_Node_Str"+ e.getMessage());
      }
    }
 else {
      context.drawImage(m_video.getElement(),0,0,wide,high);
    }
    context.restore();
  }
  return false;
}