Технический форум

Технический форум (http://www.tehnari.ru/)
-   Графика & дизайн (http://www.tehnari.ru/f27/)
-   -   DirectShow и приложение. (http://www.tehnari.ru/f27/t53926/)

Bydlokoder 30.06.2011 07:49

DirectShow и приложение.
 
Совершенно не разбираясь в программировании, озаботился однако проблемой захвата видео с видеокамер и ТВ карт, чисто из любопытства. Зацепило вот и следующий вопрос не дает покоя - каким образом приложение (пусть на C++) взаимодействует с фильтрами DirectShow? Например, построил я с помощью GraphEdit фильтровый граф хватающий сигнал с ТВ карты и выводящий его на экран, все работает, картинка и звук есть, каналы переключаются и все такое прочее. Но, граф графом, но нужно же как-то управлять устройством захвата не прибегая к GraphEdit, насколько я понимаю, фильтровый граф всего лишь пример того, как должны соединятся фильтры для реализации той или иной задачи выполняемой с помощью DirectShow. Как же управлять компонентами DirectShow из программы? Как с помощью приложения соединять фильтры необходимым образом и как менять их свойства посредством графического интерфейса реализованного в программе?

Поясните пожалуйста без лишних подробностей (напомню, в программировании я полный ньюб), интересует только принцип реализации программ с использованием DirectShow, желательно пояснение "на пальцах".

Long Cat 30.06.2011 09:44

Цитата:

Сообщение от Bydlokoder (Сообщение 545975)
в программировании я полный ньюб)

и DirectShow вместе дают ln(-1)/0, причем со страшной силой дают.
Ищите книгу Гончаров, Салихов - DirectX 7 для программистов.

Если вкратце, любое обращение к DirectX происходит по технологии COM.

Как видите, по-простому не получиться, иначе вместо общения по предмету я буду сюда весь университетский курс программирования тащить.

Если действовать в соответствии с вашим ником, в Дельфи и Билдере есть компонент, который все это умеет.

Bydlokoder 30.06.2011 13:37

Боюсь, Вы меня превратно поняли, по-видимому я не совсем точно высказал свою просьбу. Дело в том, что я не собираюсь прямо сейчас, не умея двух строчек кода правильно сложить, писать программу видеозахвата или трансляции видео в сеть. Отлично понимаю, что курить COM объекты для меня сейчас дело пустое, не осилить мне пока таких страшно непонятных вещей. Меня интересует лишь форма реализации кода программы, то, каким образом создаются программы такого рода, самый общий принцип.

По моим догадкам COM представляет из себя набор (библиотеку) подпрограмм входящих в состав операционной системы, доступ к которым осуществляется через стандартный программный интерфейс. То есть, в нужном месте исходного текста программы вставляется какой-то стандартный кусок кода (рекомендованный производителем операционной системы), посредством которого и происходит обращение приложения к функциям операционной системы (в частности к DirectX), которая в свою очередь рулит драйверами устройств, а те уже обращаются к железу, засылая в регистры чипа TV карты (или CPU, или GPU, или звуковой карты) нужные двоичные комбинации и заставляя их производить необходимые действия (захват, фильтрацию, сжатие, вывод на экран).

Сильно ли я ошибаюсь, рассуждая таким образом? Действительно ли существуют стандартные "куски" кода помещаемые в текст программы для выполнения операционной системой тех или иных действий? Упомянутый компонент в Дельфи и Builder - инструмент, позволяющий "воткнуть" нужный "кусок" стандартного кода в нужном месте?

За книгу спасибо, нашел, полистал, положил в папку с литературой, которая на мой взгляд может пригодится в будущем (сейчас вряд ли, пока только пытаюсь освоить хотя бы азы программирования на C++).

Long Cat 02.07.2011 05:50

Цитата:

Сообщение от Bydlokoder (Сообщение 546104)
Сильно ли я ошибаюсь, рассуждая таким образом? Действительно ли существуют стандартные "куски" кода помещаемые в текст программы для выполнения операционной системой тех или иных действий? Упомянутый компонент в Дельфи и Builder - инструмент, позволяющий "воткнуть" нужный "кусок" стандартного кода в нужном месте?

Не ошибаетесь. По поводу стандартных кусков читайте MSDN - главный ресурс по программированию под Windows.

Bydlokoder 02.07.2011 14:53

Спасибо, теперь я хотя бы приблизительно представляю, какие задачи ожидают меня в будущем :)


Часовой пояс GMT +4, время: 23:38.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.