быстрое решение состоит в том, чтобы присвоить вашей переменной значение null в верхней части кода
$user_location = null;
В Windows SDK есть пример DirectShow для преобразования видео в текстуру. Он также обрабатывает аудиовыход.
Но есть ограничения, и я, честно говоря, не могу назвать это простым.
Вы смотрели видео Bink ? Это то, что многие игры используют для воспроизведения видео. Отлично работает, и вам не нужно кодировать все эти видео с нуля.