Friday, August 31, 2007

Directshow Things learnt from exp and thru newsgroup

Knowledge base :


1.what the IStreamBufferSink interface will do ?...
The IStreamBufferSink interface is exposed by the Stream Buffer Sink filter. Use this interface to lock the filter before capture and to create new recordings.

2.How to convert rgb24 to i420? Pls help me if you know. ?

RGB to YUV Conversion
Y = 0.299R + 0.587G + 0.114B
U = (B-Y)*0.565
V = (R-Y)*0.713
YUV to RGB Conversion
R = Y + 1.403V
G = Y - 0.344U - 0.714V
B = Y + 1.770U

3. I use directshow.net and pushfilter.
I connect pushfilter to videorenderer.
Same code works well when I use videoinfoheader. But if I chance it to
videoinfoheader2
(I need 16:9 flag for dv avi) filters does not connect. Fox. it connects to
smarttee but not to any renderer.
VideoInfoHeader2 format is not supported by the video Renderer.
we have to use Overlay Mixer for supporting VideoInfoHeader2 structure.
From Overlay Mixer onwards we have to connect it to the Video Renderer.

4. When I registered my mpeg decoder filter and use a third-party real-
time DV player software, the render windows becomes strange. The
decoded picture should be displayed limited in the fixed window, but
sometimes the picture becomes three the same picture as original, and
the center one lies the right position in the fixed window, the left
two arrange the left and the right.
what's wrong with my decode filter?

Decoder filter's Output image size is larger than the actual image size (output from the decoder)
So For the rest of the places, the directshow will copy more than one according to the window.



w can see the list of codecs installed in a system by doing following things :
1.Start ->Settings ->ControlPanel ->Sounds and Audio devices
2.Select hardware tab.
3.Select audio codecs and video codecs to see the list of codecs installed in a system


Pinnacle Directshow Filters :
C:\Program Files\Pinnacle\Shared Files\Filter\AllocatorAdaptor.ax
C:\Program Files\Pinnacle\Shared Files\Filter\AudioGrab.ax
C:\Program Files\Pinnacle\Shared Files\Filter\AudioResampler.ax
C:\Program Files\Pinnacle\Shared Files\Filter\AVI_PASS.ax
C:\Program Files\Pinnacle\Shared Files\Filter\axmpeg_av.ax
C:\Program Files\Pinnacle\Shared Files\Filter\axwavrender.ax
C:\Program Files\Pinnacle\Shared Files\Filter\ColorConvert.ax
C:\Program Files\Pinnacle\Shared Files\Filter\COMScript_Server5.dll -
C:\Program Files\Pinnacle\Shared Files\Filter\CSCSaFX.dll
C:\Program Files\Pinnacle\Shared Files\Filter\DeInterlace.ax
C:\Program Files\Pinnacle\Shared Files\Filter\DVDSampleSink.ax
C:\Program Files\Pinnacle\Shared Files\Filter\DWVideoResampler.ax
C:\Program Files\Pinnacle\Shared Files\Filter\ESink.ax
C:\Program Files\Pinnacle\Shared Files\Filter\ESinkAudio.ax
C:\Program Files\Pinnacle\Shared Files\Filter\FrameGrab.ax
C:\Program Files\Pinnacle\Shared Files\Filter\FrameNotify.ax
C:\Program Files\Pinnacle\Shared Files\Filter\iammixer2.dll
C:\Program Files\Pinnacle\Shared Files\Filter\MPADecoder.ax
C:\Program Files\Pinnacle\Shared Files\Filter\mpegdecoder2.dll
C:\Program Files\Pinnacle\Shared Files\Filter\MPEGEdit.ax
C:\Program Files\Pinnacle\Shared Files\Filter\mpegencoderlib.dll
C:\Program Files\Pinnacle\Shared Files\Filter\mpegrender.ax
C:\Program Files\Pinnacle\Shared Files\Filter\MPG1_2Decoder_Seekable.ax
C:\Program Files\Pinnacle\Shared Files\Filter\MSAudioRender.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PcleDatabase.dll
C:\Program Files\Pinnacle\Shared Files\Filter\pcledemux2.ax
C:\Program Files\Pinnacle\Shared Files\Filter\pcledemux4.ax
C:\Program Files\Pinnacle\Shared Files\Filter\pclediag.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PCLEDVBox.ax
C:\Program Files\Pinnacle\Shared Files\Filter\pcleDVcd.dll
C:\Program Files\Pinnacle\Shared Files\Filter\pcleDVdc.dll
C:\Program Files\Pinnacle\Shared Files\Filter\PCLEFileReader.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PCLEFileWriter.ax
C:\Program Files\Pinnacle\Shared Files\Filter\pcleIScl.dll
C:\Program Files\Pinnacle\Shared Files\Filter\PCLEMPADecoder.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PCLEMPAEncoder.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PcleMpegDec.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PCLEMPEGDemux4.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PcleMpegEnc.AX
C:\Program Files\Pinnacle\Shared Files\Filter\PcleMPGDemux.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PcleScriptInterface.dll
C:\Program Files\Pinnacle\Shared Files\Filter\PCLESync.ax
C:\Program Files\Pinnacle\Shared Files\Filter\pcleti4.dll
C:\Program Files\Pinnacle\Shared Files\Filter\pcleUtil.dll
C:\Program Files\Pinnacle\PCTV USB2\PCLEVideo25.ax
C:\Program Files\Pinnacle\Shared Files\Filter\pcle_ovr.ax
C:\Program Files\Pinnacle\Shared Files\Filter\pinftee.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PushSink.ax
C:\Program Files\Pinnacle\Shared Files\Filter\PushSource.ax
C:\Program Files\Pinnacle\Shared Files\Filter\RawDump.ax
C:\Program Files\Pinnacle\Shared Files\Filter\SaFireU.dll
C:\Program Files\Pinnacle\Shared Files\Filter\SampleScaler.ax
C:\Program Files\Pinnacle\Shared Files\Filter\server.exe
C:\Program Files\Pinnacle\Shared Files\Filter\SimpleSource.ax
C:\Program Files\Pinnacle\Shared Files\Filter\TimeshiftFileBox.ax
C:\Program Files\Pinnacle\Shared Files\Filter\VideoProvider.dll
C:\Program Files\Pinnacle\Shared Files\Filter\videoresampler2.ax
C:\Program Files\Pinnacle\Shared Files\Filter\wavtompa.ax
C:\Program Files\Pinnacle\Shared Files\Filter\wmvrenderer.ax
C:\Program Files\Pinnacle\Shared Files\Filter\XSync.ax
Video Codecs :
1.iccvid.dll - cinepak
2.ir32_32.dll -
3.iyuv_32.dll
4.msrle32.dll
5.msvidc32.dll
6.msyuv.dll


//Change the compressed data size then check whether the ICCompressGetFormat() fn...
//HEAP[SampleGrabberWithAVI.exe]: Invalid allocation size - FFFFFFFE (exceeded 7ffdefff) error...
Uncompressed data size : 230400
Cinepak compressed Data size :29700
Intel Indeo Video 3.2 compressed Data size :230400
IYUV codec compressed data size :230400
MRLE code compressed data size : 230400
Microsoft Video 1 compressed data size : 96002 or Bit count :16


AVI supported codecs with the AVI functions :
------------------------------------------------
1.Full Frames ( Uncompressed)
2.Cinepak
3.Intel Indeo Video 3.2
4.IYUV codec
5.Microsoft RLE
6.Microsoft Video 1
VCM compression codecs :
------------------------------
1.Cinepak
2.Microsoft Video 1
For all other codecs, it displays an error...

For Intel Indeo Video 3.2 ( IV32) , we may try with the ICImageCompress...

1.Use WriteAVI project, it supports more codecs...


C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug_Unicode
"Writing specifications is like writing a novel. Writing code is like writing poetry."

No comments: