public H264_TimeoutFrame(int timeout, int numberOfSegments, int segmentNumber, byte[] data, removeNal callback, int nalNumber)
 {
     t = new TimeoutWrapper(timeout, nalNumber, callback);
     p = new H264_Nal_Packet(numberOfSegments, segmentNumber, data);
 }
 public TimeoutWrapper(int timeout_ms, int nalNumber, removeNal removal_cb)
 {
     packet_id = nalNumber;
     this.removal_cb = removal_cb;
     timer.Interval = timeout_ms;
     timer.Elapsed += (Object src, ElapsedEventArgs arg) =>
     {
         removal_cb(packet_id);
     };
     timer.Start();
 }