jsvpx
Version:
Javascript implementation of libvpx
83 lines (63 loc) • 2.3 kB
JavaScript
;
var c_utils = require('../../util/c_utils.js');
var memset = c_utils.memset;
/*
if (start_col === 0) {
//vp8_setup_intra_recon
fixup_left(img.y, img.y_off, 16, img.stride, row, mbi[mbi_off].base.y_mode);
fixup_left(img.u, img.u_off, 8, img.uv_stride, row, mbi[mbi_off].base.uv_mode);
fixup_left(img.v, img.v_off, 8, img.uv_stride, row, mbi[mbi_off].base.uv_mode);
//doesnt seem to do anything
//if (row === 0)
// img.y[img.y_off - img.stride - 1]= 127;
//console.warn(img.y_off - img.stride - 1);
}
*/
//var dc_pred_set = new Uint8Array([129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129]);
function vp8_setup_intra_recon(predict, y_off, u_off, v_off, y_stride, uv_stride) {
//The left column of out-of-frame pixels is taken to be 129,
// unless we're doing DC_PRED, in which case we duplicate the
// above row, unless this is also row 0, in which case we use
// 129.
//
var y_buffer = predict;
var y_off = (y_off - 1);
var i = 0;
/* Need to re-set the above row, in case the above MB was
* DC_PRED.
*/
y_off -= y_stride;
//for (i = -1; i < 16; i++) {
//y_buffer[y_off] = 129;
//y_buffer.set(dc_pred_set, y_off);
// y_off += y_stride;
//}
/*
var u_buffer = predict;
var u_off = (u_off - 1);
u_off -= uv_stride;
for (i = 0; i < 8; i++) {
y_buffer[y_off] = 129;//*
y_off += y_stride;
}
var u_buffer = predict;
var u_off = (u_off - 1);
u_off -= uv_stride;
for (i = -1; i < 8; i++) {
u_buffer[u_off] = 129;//*
u_off += uv_stride;
}
*/
}
function vp8_setup_intra_recon_top_line(ybf) {
//console.log(ybf.planes_off[0]);
var data = ybf.img_data;
var uv_ptr = ybf.planes_off[1] - 1 - ybf.uv_stride;
var uv_length = (ybf.d_w >> 1) + 5;
// TODO: This is being doubled somewhere else, find it!
//memset(data, ybf.planes_off[0] - 1 - ybf.stride, 127, ybf.d_w + 5);//ybf.y_width + 5
//memset(data, uv_ptr, 127, uv_length);
}
module.exports = {};
module.exports.vp8_setup_intra_recon = vp8_setup_intra_recon;
module.exports.vp8_setup_intra_recon_top_line = vp8_setup_intra_recon_top_line;