South African jazz legend Hugh Masekela has died aged 78 after a long battle with prostate cancer, his family said on Tuesday morning.