//vpx_decrypt_cb decrypt_cb; //void* decrypt_state; public VP8D_COMP() { for (int i = 0; i < mbc.Length; i++) { mbc[i] = new vp8_reader(); } }
public void ReadBitTest() { // Initialise a frame buffer to try the tree reader on. //frame_buffers fb = new frame_buffers(); //VP8D_CONFIG oxcf = new VP8D_CONFIG(); //var res = onyxd.vp8_create_decoder_instances(fb, oxcf); //Assert.Equal(vpx_codec_err_t.VPX_CODEC_OK, res); // Try the reader. //vp8_reader bc = fb.pbi[0].mbc[8]; byte *buf = stackalloc byte[1] { 0x01 }; vp8_reader bc = new vp8_reader { user_buffer = buf, user_buffer_end = buf + 1 }; int bit = treereader.vp8_read_bit(ref bc); Assert.Equal(1, bit); } }
unsafe static B_PREDICTION_MODE read_bmode(ref vp8_reader bc, in vp8_prob *p)
/* Intent of tree data structure is to make decoding trivial. */ public unsafe static int vp8_treed_read( ref vp8_reader r, /* !!! must return a 0 or 1 !!! */ vp8_tree[] t, in vp8_prob *p)