bool VideoOverlay::configure(hwc_context_t *ctx, hwc_layer_1_t *yuvLayer,
        hwc_layer_1_t *ccLayer) {

    bool ret = true;
    if (LIKELY(ctx->mOverlay)) {
        overlay::Overlay& ov = *(ctx->mOverlay);
        // Set overlay state
        ov.setState(sState);
        switch(sState) {
            case ovutils::OV_2D_VIDEO_ON_PANEL:
                ret &= configPrimVid(ctx, yuvLayer);
                break;
            case ovutils::OV_2D_VIDEO_ON_PANEL_TV:
                ret &= configExtVid(ctx, yuvLayer);
                ret &= configExtCC(ctx, ccLayer);
                ret &= configPrimVid(ctx, yuvLayer);
                break;
            case ovutils::OV_2D_VIDEO_ON_TV:
                ret &= configExtVid(ctx, yuvLayer);
                ret &= configExtCC(ctx, ccLayer);
                break;
            default:
                return false;
        }
    } else {
        //Ov null
        return false;
    }
    return ret;
}
bool VideoOverlay::configure(hwc_context_t *ctx, int dpy,
        hwc_layer_1_t *yuvLayer) {
    bool ret = true;
    overlay::Overlay& ov = *(ctx->mOverlay[dpy]);
    switch(dpy) {
        case HWC_DISPLAY_PRIMARY:
            // Set overlay state
            ov.setState(sState[dpy]);
            switch(sState[dpy]) {
                case ovutils::OV_2D_VIDEO_ON_PANEL:
                    ret &= configPrimVid(ctx, yuvLayer);
                    break;
                default:
                    return false;
            }
            break;
        case HWC_DISPLAY_EXTERNAL:
            ov.setState(sState[dpy]);
            switch(sState[dpy]) {
                case ovutils::OV_UI_VIDEO_TV:
                    ret = configExtVid(ctx, yuvLayer);
                    break;
                default:
                    return false;
            }
            break;
    }
    return ret;
}