예제 #1
0
        public static unsafe void DumpMacroBlock(MACROBLOCKD macroBlock, int macroBlockIndex)
        {
            Debug.WriteLine($"MacroBlock {macroBlockIndex}:");

            Debug.Write("eobs: ");
            for (int i = 0; i < macroBlock.eobs.Length; i++)
            {
                Debug.Write($"{macroBlock.eobs[i]}, ");
            }
            Debug.WriteLine("");

            Debug.WriteLine($"y: {DebugProbeHexStr.ToHexStr(macroBlock.dst.y_buffer, macroBlock.dst.y_width)}");
            Debug.WriteLine($"u: {DebugProbeHexStr.ToHexStr(macroBlock.dst.u_buffer, macroBlock.dst.uv_width)}");
            Debug.WriteLine($"v: {DebugProbeHexStr.ToHexStr(macroBlock.dst.v_buffer, macroBlock.dst.uv_width)}");
            Debug.WriteLine("");
        }
예제 #2
0
        public static unsafe void DumpAboveAndLeft(byte[] above, byte[] left)
        {
            string aboveHex = null;

            fixed(byte *pAbove = above)
            {
                aboveHex = DebugProbeHexStr.ToHexStr(pAbove + 3, 9);
            }

            string leftHex = null;

            fixed(byte *pLeft = left)
            {
                leftHex = DebugProbeHexStr.ToHexStr(pLeft, 4);
            }

            Debug.WriteLine($"above={aboveHex},left={leftHex}");
        }
예제 #3
0
 public static unsafe void DumpYSubBlock(int index, byte *dst, int stride)
 {
     Debug.WriteLine($"y[{index}]: {DebugProbeHexStr.ToHexStr(dst, stride)}");
 }