public void ShowMacroblock(Macroblock mb) { m_Mb = mb; int xFracL, yFracL; H264Mb mbH264 = (m_Mb.Mb as H264Mb); for (int i = 0; i < 16; ++i) { xFracL = mbH264.mvL0[i].x & 3; yFracL = mbH264.mvL0[i].y & 3; m_TextBlocks[i].Text = "---List0---"; m_TextBlocks[i].Text += String.Format("\nMV({0}, {1})\nMVD({2}, {3})", mbH264.mvL0[i].x, mbH264.mvL0[i].y, mbH264.mvd_l0[i].x, mbH264.mvd_l0[i].y); m_TextBlocks[i].Text += String.Format("\nFrac({0}, {1})", xFracL != 0 ? (xFracL == 2 ? "Half" : "Quater") : "Integer", yFracL != 0 ? (xFracL == 2 ? "Half" : "Quater") : "Integer"); m_TextBlocks[i].Text += String.Format("\nPOC={0}, RefIdx={1}", mbH264.POC0[H264Mb.BLK4x4ToBLK8x8[i]], mbH264.ref_idx_L0[H264Mb.BLK4x4ToBLK8x8[i]]); } if (mbH264.SliceType == SliceType.B_SLICE) { for (int i = 0; i < 16; ++i) { xFracL = mbH264.mvL1[i].x & 3; yFracL = mbH264.mvL1[i].y & 3; m_TextBlocks[i].Text += "\n---List1---"; m_TextBlocks[i].Text += String.Format("\nMV({0}, {1})\nMVD({2}, {3})", mbH264.mvL1[i].x, mbH264.mvL1[i].y, mbH264.mvd_l1[i].x, mbH264.mvd_l1[i].y); m_TextBlocks[i].Text += String.Format("\nFrac({0}, {1})", xFracL != 0 ? (xFracL == 2 ? "Half" : "Quater") : "Integer", yFracL != 0 ? (xFracL == 2 ? "Half" : "Quater") : "Integer"); m_TextBlocks[i].Text += String.Format("\nPOC={0}, RefIdx={1}", mbH264.POC1[H264Mb.BLK4x4ToBLK8x8[i]], mbH264.ref_idx_L1[H264Mb.BLK4x4ToBLK8x8[i]]); } } }
public void ShowMacroblock(Macroblock mb) { H264Mb mbH264 = (mb.Mb as H264Mb); m_TextBlockAddress.Text = String.Format("{0}({1},{2})", mb.Mb.Address, mb.Mb.X, mb.Mb.Y); m_TextBlockLocation.Text = String.Format("({0},{1})", mb.Mb.X << 4, mb.Mb.Y << 4); m_TextBlockType.Text = mbH264.TypeDescription; m_TextBlockPicture.Text = String.Format("{0} (DQId={1})", mb.PictureId, mb.LayerId); m_TextBlockSlice.Text = String.Format("{0}\n{1}", mb.SliceId, mbH264.SliceType); m_TextBlockBitsStart.Text = String.IsNullOrEmpty(mb.Mb.BitsStart) ? "-" : mb.Mb.BitsStart; m_TextBlockBitsCount.Text = mb.Mb.BitsCount.ToString(); m_TextBlockQP.Text = mbH264.QP.ToString(); m_TextBlockQPC.Text = mbH264.QPC.ToString(); m_TextBlockCBP.Text = String.Format("{0}: L={1},C={2}", mbH264.CBP, mbH264.CBP & 15, mbH264.CBP >> 4); m_TextBlockMbPartNum.Text = mbH264.NumMbPart.ToString(); m_TextBlockMbPartSize.Text = String.Format("({0},{1})", mbH264.MbPartSize.Width, mbH264.MbPartSize.Height); if (mbH264.IsIntra) { m_TextBlockMbIntraChromaMode.Text = String.Format("[{0}] {1}", (int)mbH264.IntraChromaPredMode, mbH264.IntraChromaPredMode); } else { m_TextBlockMbIntraChromaMode.Text = "-"; } m_TextBlockMD5.Text = String.Format("Y\t= {0}\nU\t= {1}\nV\t= {2}", mb.MD5Y, mb.MD5U, mb.MD5V).ToUpper(); }
public void ShowMacroblock(Macroblock mb) { H264Mb mbH264 = (mb.Mb as H264Mb); m_TextBlockInCropWindow.Text = mbH264.IsInCropWindow ? "True" : "False"; m_TextBlockResidualPredictionFlag.Text = mbH264.IsResidualPredictionFlag ? "1" : "0"; m_TextBlockBLSkippedFlag.Text = mbH264.IsBLSkippedFlag ? "1" : "0"; }
public void ShowMacroblock(Macroblock mb) { m_Mb = mb; H264Mb mbH264 = (m_Mb.Mb as H264Mb); m_TextBlock0.Text = mbH264.BlkModes[0].ToString(); m_TextBlock1.Text = mbH264.BlkModes[1].ToString(); m_TextBlock2.Text = mbH264.BlkModes[2].ToString(); m_TextBlock3.Text = mbH264.BlkModes[3].ToString(); }
public void ShowMacroblock(Macroblock mb) { m_Mb = mb; H264Mb mbH264 = (m_Mb.Mb as H264Mb); for (int i = 0; i < 16; ++i) { m_TextBlocks[i].Text = String.Format("[{0}] {1}", (int)mbH264.Intra4x4PredMode[i], Utils.GetIntra4x4PredModeName(mbH264.Intra4x4PredMode[i])); } }
public void ShowMacroblock(Macroblock mb) { m_Mb = mb; H264Mb mbH264 = m_Mb.Mb as H264Mb; if (mbH264 != null) // For now only H.264 is supported { // General if (m_ScreenGeneral == null) { m_ScreenGeneral = new ScreenMbInfoGeneral(); AddToTabControl(m_ScreenGeneral, tabControl); } m_ScreenGeneral.ShowMacroblock(m_Mb); // Intra4x4PredMode if (mbH264.Mode == MbMode.INTRA_4X4) { if (m_ScreenMbInfoI4x4PredMode == null) { m_ScreenMbInfoI4x4PredMode = new ScreenMbInfoI4x4PredMode(); m_ScreenMbInfoI4x4PredMode.Tag = false; } if (!(m_ScreenMbInfoI4x4PredMode.Tag as Boolean?).Value) { AddToTabControl(m_ScreenMbInfoI4x4PredMode, tabControl); m_ScreenMbInfoI4x4PredMode.Tag = true; } m_ScreenMbInfoI4x4PredMode.ShowMacroblock(m_Mb); } else { if (m_ScreenMbInfoI4x4PredMode != null && (m_ScreenMbInfoI4x4PredMode.Tag as Boolean?).Value) { RemoveFromTabControl(m_ScreenMbInfoI4x4PredMode, tabControl); m_ScreenMbInfoI4x4PredMode.Tag = false; } } // SubBlocks if (mbH264.IsInter8x8) { if (m_ScreenMbInfoSubBlocks == null) { m_ScreenMbInfoSubBlocks = new ScreenMbInfoSubBlocks(); m_ScreenMbInfoSubBlocks.Tag = false; } if (!(m_ScreenMbInfoSubBlocks.Tag as Boolean?).Value) { AddToTabControl(m_ScreenMbInfoSubBlocks, tabControl); m_ScreenMbInfoSubBlocks.Tag = true; } m_ScreenMbInfoSubBlocks.ShowMacroblock(m_Mb); } else { if (m_ScreenMbInfoSubBlocks != null && (m_ScreenMbInfoSubBlocks.Tag as Boolean?).Value) { RemoveFromTabControl(m_ScreenMbInfoSubBlocks, tabControl); m_ScreenMbInfoSubBlocks.Tag = false; } } // InterPred if (!mbH264.IsIntra) { if (m_ScreenMbInfoInterPred == null) { m_ScreenMbInfoInterPred = new ScreenMbInfoInterPred(); m_ScreenMbInfoInterPred.Tag = false; } if (!(m_ScreenMbInfoInterPred.Tag as Boolean?).Value) { AddToTabControl(m_ScreenMbInfoInterPred, tabControl); m_ScreenMbInfoInterPred.Tag = true; } m_ScreenMbInfoInterPred.ShowMacroblock(m_Mb); } else { if (m_ScreenMbInfoInterPred != null && (m_ScreenMbInfoInterPred.Tag as Boolean?).Value) { RemoveFromTabControl(m_ScreenMbInfoInterPred, tabControl); m_ScreenMbInfoInterPred.Tag = false; } } // SVC if (m_ScreenMbInfoSVC == null) { m_ScreenMbInfoSVC = new ScreenMbInfoSVC(); AddToTabControl(m_ScreenMbInfoSVC, tabControl); } m_ScreenMbInfoSVC.ShowMacroblock(m_Mb); } }