示例#1
0
        public override FrameBufferData GetFrameBufferData(byte[] data, long timeCode, long duration, bool keyFrame, bool discardable, bool invisible)
        {
            FrameBufferData frame = null;

            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                if (keyFrame)
                {
                    ms.Write(NALUnitHeader, 0, NALUnitHeader.Length);
                }

                int i2 = 0, i = data.Length;
                while (i2 < i)
                {
                    byte[] nalu = GetNALU(data, i2);
                    ms.Write(NALUSpliter, 0, 3);
                    ms.Write(nalu, 0, nalu.Length);
                    i2 += (nalu.Length + NALULength);
                }
                //ms.Position = 0;
                frame = new FrameBufferData(ms.GetWindowsRuntimeBuffer(), timeCode, duration, keyFrame, discardable, invisible);
            }

            return(frame);
        }