![]() |
| |||||||
| Forum Arşivi Gereksiz,Yanlış konular bu alanda toplanır. |
| |
| |
| | LinkBack | Konu Araçları | Stil |
| | #1 (permalink) |
| Usta Koxper | Bilgisayarımızdaki medya dosyalarını oynatan, görüntü ve seste değişiklikler veya efekt yazmamıza yarayan ve çoğu zaman codec olarak DirectShow filtrelerinin yazılımına ilişkin bir başlangıç dökümanıdır.Çıkış pinleri için özel ayırıcı tanımlama: Çıkış pini için ayırıcı sağlamak için temel sınıf içindeki CBaseOutputPin::InitAllocator metodunu geçersiz kılıp kendi sınıfımızda tanımlamamız gerekir. Aşağıda bu konuya ilişkin örnek kod verilmiştir. HRESULT MyOutputPin::InitAllocator(IMemAllocator **ppAlloc) { HRESULT hr = S_OK; CMyAllocator *pAlloc = new CMyAllocator(&hr); if (!pAlloc) { return E_OUTOFMEMORY; } if (FAILED(hr)) { delete pAlloc; return hr; } // Return the IMemAllocator interface. return pAlloc->QueryInterface(IID_IMemAllocator, (void**)ppAllocator); } Varsayılan olarak CBaseOutputPin sınıfının istediği, ilk giriş pinindeki ayırıcıdır. Bu ayırıcı uygun değilse çıkış pini kendi ayırıcısını oluşturur. Özel bir ayırıcı kullanmak için bağlantı zorlanır, temel sınıftaki CBaseOutputPin: ecideAllocator metdu geçersiz kılınarak kendi sınıfımızda tanımlanır ve bu metod içinde gerekli olan ayırıcı özelliklerine karar verilir. Diğer filtrelerin kendi ayırıcısı yerine özel ayırıcı ile değiştirin.Pinlerin Tekrar Bağlanması: Pinlerin bağlantısı sırasında, filtre bağlantısını kesmek ve tekrar bağlamak için gerekli olan yöntem aşağıda verilmiştir. 1. İşlem sırasında bir filtre diğer filtrenin pininde IPin::QueryAccept metoduna çağrıda bulunarak yeni medya tipini iletir. 2. Eğer QueryAccept metodu S_OK değerini döndürürse, tekrar bağlantı için filtre, IFilterGraph2::ReconnectEx metoduna çağrıda bulunur. Aşağıdaki örneklerde bir filtre için yeniden bağlantı gerekebilir. • Tee filters: Bir tee filtresi bir girişi birden fazla çıkışa mevcut veriyi değiştirmeden aktarır. Bu filtre için belli bir medya tip aralığı belirleyebilirsiniz fakat tüm pin bağlantıları bu tipi kullanmalıdır. Bu nedenle önce giriş bağlanır ve çıkış pinlerine bağlanacak olan filtrelerin bağlı olan giriş tipi medya tipi ile aynı olması gerekmektedir. • Trans-in-place filters: Bu tip bir filtrede diriş verisi değiştirilerek çıkışa verilir. Aşağı ve yukarı bağlantı tipleri için aynı ayırıcıyı kullanması gerekir. İlk pin bağlandığında (giriş veya çıkış) herzamanki yolla ayırıcı geçişi sağlanır. Diğer pin bağlandığı zaman ilk ayırıcı kabul edilmeyebilir. Böyle bir durumda ilk pin yeniden bağlanarak yeni bir ayırıcı kullanılır. |
| |
| Etiket |
| 3 or 3, directshow, filtre, yazılımı |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Konu Araçları | |
| Stil | |
| |