Определение разрешения видео при использовании VLC-Qt

Я использую VLC-Qt, чтобы открыть видеопоток через URL и показать видео в окне, используя VlcWidgetVideo объект. Это работает хорошо. Видеопоток открывается, видеоизображение показывается и изменяется, сохраняя соотношение сторон при изменении размера окна.

Теперь я хочу узнать, каково разрешение видеопотока (которое, как я ожидаю, составляет 1280 x 720, или 16: 9), чтобы я мог правильно наложить информацию на видеоизображение независимо от размера окна, в котором оно находится показанный в (поскольку VLC-Qt автоматически масштабирует видеоизображение на основе размера окна для поддержания соотношения сторон, могут быть неиспользуемые области сверху и снизу или слева и справа от видеоизображения).

Чтобы получить разрешение видео, я получаю VlcVideo объект с помощью VlcMediaPlayer::video() метод, а затем использовать VlcVideo::size() способ получить QSize Я предполагаю, что объект должен содержать ширину и высоту видео.

Если я буду ждать VlcMediaPlayer объект для сигнала mediaChanged(libvlc_media_t*) и затем получить разрешение видео, оно сообщается как 640 x 480.

Если я буду ждать VlcMediaPlayer объект для сигнала playing() и затем получить разрешение видео, оно сообщается как 640 x 480.

Если я слушаю VlcMedia объект stateChanged сигнал, я вижу, что состояние меняется на Opening (в это время размер видео составляет 640 х 480), а затем Playing (в это время размер видео по-прежнему составляет 640 х 480).

Если я получаю разрешение видео для получения, пока вижу поток воспроизводимого видео, оно отображается как 1280 x 720, что я считаю правильным.

Может кто-нибудь посоветовать, какой правильный сигнал / событие, после которого я смогу получить правильное разрешение для видеопотока, который будет сигнализирован / запущен снова, если случится изменение разрешения видеопотока. Или есть другое / надежное уведомление об изменениях разрешения видео / соотношения сторон.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]