void OnTimeSelected(PopTimeline.TimeUnit SelectedTime)
    {
        //	find keyframe closest to time
        var VideoStream = Sink.GetVideoStream(VideoStreamName);

        var Packet = VideoStream.GetNearestStreamDataLessThanEqual(SelectedTime);
        //	todo: avoid infinite loop properly
        var InfLoopCheck = 1000;

        while (Packet.HasValue && --InfLoopCheck > 0)
        {
            if (Packet.Value.Sample.IsKeyframe)
            {
                break;
            }

            //	look for previous
            var PrevTime = new PopTimeline.TimeUnit(Packet.Value.GetStartTime().Time - 1);
            Packet = VideoStream.GetNearestStreamDataLessThanEqual(PrevTime);
        }

        if (InfLoopCheck <= 0)
        {
            Packet = null;
        }

        if (Packet == null)
        {
            throw new System.Exception("Failed to find keyframe before " + SelectedTime);
        }

        var HeaderData = VideoStream.TrackMeta.SampleDescriptions[0].Data;
        var PacketData = Sink.GetFileData(Packet.Value.Sample.DataPosition, Packet.Value.Sample.DataSize);

        //	just h264 current expects annexb format. Mp4 is probably in AVCC (see meta!)
        HeaderData = PopX.H264.GetH264AnnexB(HeaderData);
        PacketData = PopX.H264.GetH264AnnexB(PacketData);
        OnH264Data.Invoke(HeaderData, PacketData);
    }