проигрывание видео из потока

 
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
Rusavushka
Новенький


Зарегистрирован: 17.04.2008
Сообщения: 4

СообщениеДобавлено: Чт Апр 17, 2008 10:51 pm    Заголовок сообщения: проигрывание видео из потока Ответить с цитатой

в общем есть такая задача:
я написала проигрыватель видео, который работает с помощью DirectX. Соответственно граф фильтров автоматически строится и т.д. Всё работает. Не могу найти одно: если у меня на входе не путь к файлу, а сам поток TStream, как мне его рендерить? (т.е че писать вместо pGraphBuilder.RenderFile(StringToOleStr(filePath), ''))

помогите девушке пожалуйста =)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexplev
Участник


Зарегистрирован: 18.02.2008
Сообщения: 13

СообщениеДобавлено: Сб Апр 19, 2008 1:45 pm    Заголовок сообщения: Ответить с цитатой

Девушка, поток откуда-то берется, то есть есть фильтр источник потока. Например, файл на диске, устройство захвата (capture), URL и т.д. А ваш поток откуда взялся? Фильтр вашего потока, должен быть включен в граф как источник, т.е. на самом входе проигрывателя. Далее этот поток обрабатываеся. TStream из воздуха не возникает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Rusavushka
Новенький


Зарегистрирован: 17.04.2008
Сообщения: 4

СообщениеДобавлено: Сб Апр 19, 2008 9:49 pm    Заголовок сообщения: Ответить с цитатой

дык ясен пень, что из воздуха не берётся. поток берётся из файла и декриптуется. писать его пользователю обратно в файл на диск -- крайне некрасиво)) значит всё-таки фильтр. не подскажите, какой? я в библиотеках DirectX не смогла найти
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LWN
Новенький


Зарегистрирован: 26.05.2008
Сообщения: 3
Откуда: г.Арзамас

СообщениеДобавлено: Пн Май 26, 2008 9:20 pm    Заголовок сообщения: Ответить с цитатой

Попробуй так:
begin
if not OpenDialog1.Execute then exit;
Begin

{вызываем RenderFile - граф фильтров строится автоматически}
MyGraphBuilder.RenderFile(StringToOleStr(OpenDialog1.FileName), '');
_________________
- У вас есть лыжные ботинки 55-го размера?
- Какого???
- 55-го…
- А зачем вам лыжи?!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Rusavushka
Новенький


Зарегистрирован: 17.04.2008
Сообщения: 4

СообщениеДобавлено: Ср Май 28, 2008 7:26 pm    Заголовок сообщения: Ответить с цитатой

пробовала, работает. но задача состоит в СОВСЕМ ДРУГОМ!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LWN
Новенький


Зарегистрирован: 26.05.2008
Сообщения: 3
Откуда: г.Арзамас

СообщениеДобавлено: Чт Май 29, 2008 9:03 pm    Заголовок сообщения: Ответить с цитатой

А может тебе так надо cделать:

procedure TForm1.openbtnClick(Sender: TObject);
var
I: integer;
s: string;
_hr: Hresult;
wFile: array[0..(Max_path * 2) - 1] of char;
begin
if OpenFileDialog.execute then
begin
s := OpenFileDialog.filename;
if s='' then exit;
MultiByteToWideChar(CP_ACP, 0, pchar(s), -1, @wFile, MAX_PATH);
_hr := g_pGraphBuilder.renderfile(@wfile, nil); // Filter Graph,nil

if failed(_hr) then
begin
showmessage('........');
exit;
end;
....................................
............................
end;

Если нет, то покажи код, где у тебя проблема.
_________________
- У вас есть лыжные ботинки 55-го размера?
- Какого???
- 55-го…
- А зачем вам лыжи?!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Общий Часовой пояс: GMT + 4
Страница 1 из 1
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB


Рейтинг@Mail.ru