Three weeks? Isn't it done?
Take a sample and taste. If your beer is souring, this is an infection. You can also post a picture. When I hear "white film", I think pellicle. "Oily film" or "shiny film", I think hops, water issues, whatever. Usually the yeast won't have many new tricks after three weeks, though if you had a big temperature change or something that could be another matter, due to offgassing or some yeast activity or something like that.
If it is infected and you don't hate the taste, you can pasteurize to 170F, chill, repitch and prime (or don't repitch and keg). Some will say let it run its course, but good sours don't usually happen by accident.