| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
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-го…
- А зачем вам лыжи?! |
|
| Вернуться к началу |
|
 |
|