Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Указанный исполняемый файл не является действительным приложением для этой операционной системы http://www.cyberforum.ru/csharp-net/thread1134149.html
//СКАЧИВАНИЕ BEGIN System.Net.WebClient webClient = new System.Net.WebClient(); Uri uri = new...
Сегментация изображения C#
Всем привет! Как мне разделить изображения (*.tiff) космофото на много сегментов например сегмент 20 пикселей и обработать каждый FFT (но ето уже другая тема)? Спасибо!
Приостановить выполнение одного приложения до окончания выполнения любого другого C#
Добрый вечер! Подскажите, что лучше использовать, чтобы приостановить выполнение одного приложения, до окончания выполнения любого другого? Можно с сылочками и примерами. Конкретная задача:...
C# TCP сервер, который принимает ссылки с браузера Создаю TCP сервер, который принимает ссылки с браузера. Если я загружаю по одной ссылке тогда он всё принимает, но когда открываю браузер (там закреплены 10-20 вкладок) сервер печатает пустые... http://www.cyberforum.ru/csharp-net/thread1133849.html
C# Hyper-v: назначить ВМ сетевой адаптер http://www.cyberforum.ru/csharp-net/thread1133822.html
Здравствуйте. У меня сложилась такая ситуация: Есть скрипт vbs для бэкапа ВМ: HyperV Backup Tool v0.7.3 (http://sysadmins.ru/topic247352.html). Я его обрабатываю в C#, для большей...
C# Проблемы с конструкцией async\await при использовании WPF или Windows Forms
Добрый день! Написал библиотечку, использующую, в том числе конструкции async-await. Всё работает, при компиляции в виде консольного приложения, выполняется на ура. Подключил библиотечку к...
C# Асинхронный сервер на UDP-сокетах
Хай. Я как-то писал асинх. сервер с использованием TCP-протокола и все получилось очень круто, потому что там есть понятие соединения, и когда очередной клиент подключается к серверу, то мы получаем...
C# Научить нейросеть переводить двоичные числа в десятиричные В общем. Задание :научить нейросеть переводить двоичные числа в десятиричные. С чего начинать вообще без понятия, как вообще устроить нейросеть? Подскажите, если знаете. Заранее спасибо. http://www.cyberforum.ru/csharp-net/thread1133412.html
C# Принятие ссылок и передача их серверу http://www.cyberforum.ru/csharp-net/thread1133321.html
Нужно создать socks5 клиент принимает данные потом их передаёт. Сервер их принимает и выводит все ссылки которые ему поступили. Когда одиночно открываешь ссылки в браузере клиент нормально их...
C# Открытие запароленного архива Имеется архив под паролем(пароль мне известен). Как можно его открыть программно? Т.е. как я понимаю нужно какие то параметры при открытии файла передавать вот только как? http://www.cyberforum.ru/csharp-net/thread1133304.html
Eliador
16 / 16 / 4
Регистрация: 18.05.2011
Сообщений: 83
07.04.2014, 09:03  [ТС] 0

Рендеринг видео потока используя OpenTK и LibVLC

07.04.2014, 09:03. Просмотров 3366. Ответов 5
Метки (Все метки)

Ответ

Чтобы убедиться, что я правильно понял всю суть перенаправления потока в память у libvlc, я пересобрал проект на cpp.
Вот весь исходник:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
#include <vlc\vlc.h>
 
// В этот массив будем получать кадры из видео, а потом перекидывать в OpenGL их
unsigned char * pixels;
 
// Callback вызывается VLC плеером перед рендером кадра
void *lock( void *data, void **p_pixels )
{
  *p_pixels = pixels; // просто указываем плееру куда положить текущий кадр
    return NULL;
}
 
// Вызывается плеером после *lock
void display( void *data, void *id )
{
  
}
 
// Вызывается плеером после display
void unlock( void *data, void *id, void *const *ipixels )
{
  
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    // параметры плеера, передаются в него коммандной строкой
      char const *vlc_argv[] =
      {
            //"--no-audio", // раскомментировать чтобы не проигрывался звук
            "--no-xlib",
        "-q",
        //"-vvv",    // раскомментировать чтобы плеер выдавал сообщения в консоль
        "--no-video-title-show",
        "--quiet",
            "--ignore-config",
            "--vout", "vmem",  // это самый основной ключ - рендер в память, а не в окошко плеера
        "-I", "dumy"
      };
    int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv);
    pixels=new unsigned char[ 1280 * 720 * 4 ];
 
    libvlc_instance_t * inst;
    libvlc_media_player_t *mp;
    libvlc_media_t *m;
 
    inst = libvlc_new(vlc_argc, vlc_argv);
    m = libvlc_media_new_path(inst, "Wildlife.wmv");
    mp = libvlc_media_player_new_from_media(m);
    libvlc_media_release(m);
 
    libvlc_video_set_callbacks( mp, lock, unlock, display, NULL );
    libvlc_video_set_format( mp, "RV32", 1280, 720, 1280*4 );
 
    libvlc_media_player_play(mp);
 
    Sleep(10000);
 
    libvlc_media_player_stop(mp);
    libvlc_media_player_release(mp);
    libvlc_release(inst);
 
    return 0;
}
Все работает замечательно, по указателю pixels у меня всегда находится свежий фрейм из потока.
Следовательно ошибка локализована однозначно, все дело в передаче адреса буфера под очередной кадр из потока в колбэке Lock.
Следовательно, вопрос остается тот-же, как на C# представить аналог такого?:
C#
1
2
3
4
unsigned char * pixels;
........
void **p_pixels;
*p_pixels = pixels;
Мне кажется имеет смысл развить этот вопрос в новой теме, касающейся PInvoke, не привязываясь к libvlc, но не нарушу я ли этим правил каких?

Вернуться к обсуждению:
Рендеринг видео потока используя OpenTK и LibVLC
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2014, 09:03

3д моделирование и рендеринг одно и тоже?Что такое рендеринг?
3д моделирование и рендеринг одно и тоже?Что такое рендеринг?

В сервисе видео-наблюдения на малине с передачей видео-потока на веб страничку добавить картинку
Всем доброго дня! Может не совсем по теме, но у меня похоже такая же проблема..... Строю сервис...

LibVLC
Кто нибудь работал с последней версией этой библиотеки? Набросайте пожалуйста примитивный...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru