As the TVServer builds the ATI T200 graphs it misses a very important part of the graph structure.
The software mpeg encoding filters/codecs are missed completly.
Output from the capture is taken straight to the mpeg demultiplexer missing these codecs and will obviously fail.
The graph structure should be as in the vanila MP to have an mpeg stream output.
<capturecard commercialname="ATI All-in-Wonder X series (Analogue)" capturename="ATI T200 AVStream Analog Capture" devid="ntativrv01">
<capabilities tv="true" radio="true" mpeg2="true" mce="false" sw="false" bda="false"/>
<tv>
<interface cat="mux" video="" audio="" mpeg2="0"/>
<filters>
<filter cat="tvtuner" name="ATI T200 AVStream Analog Tuner" checkdevice="false"/>
<filter cat="tvaudio" name="ATI T200 AVStream Analog TV Audio" checkdevice="false"/>
<filter cat="crossbar" name="ATI T200 AVStream Analog Xbar" checkdevice="true"/>
<filter cat="capture" name="ATI T200 AVStream Analog Capture" checkdevice="true"/>
<filter cat="videncoder" name="ATI Media Center Video Encoder" checkdevice="false"/>
<filter cat="audencoder" name="ATI Media Center Audio Encoder" checkdevice="false"/>
<filter cat="mux" name="ATI Media Center Multiplexer" checkdevice="false"/>
</filters>
<connections>
<connection sourcefilter="tvtuner" sourcepin="0" sinkfilter="crossbar" sinkpin="%tvtuner%"/>
<connection sourcefilter="tvtuner" sourcepin="1" sinkfilter="tvaudio" sinkpin="0"/>
<connection sourcefilter="tvaudio" sourcepin="0" sinkfilter="crossbar" sinkpin="%audiotuner%"/>
<connection sourcefilter="crossbar" sourcepin="0" sinkfilter="capture" sinkpin="0"/>
<connection sourcefilter="crossbar" sourcepin="1" sinkfilter="capture" sinkpin="1"/>
<connection sourcefilter="capture" sourcepin="0" sinkfilter="videncoder" sinkpin="0"/>
<connection sourcefilter="capture" sourcepin="3" sinkfilter="audencoder" sinkpin="0"/>
<connection sourcefilter="videncoder" sourcepin="0" sinkfilter="mux" sinkpin="1"/>
<connection sourcefilter="audencoder" sourcepin="0" sinkfilter="mux" sinkpin="0"/>
</connections>
</tv>
BUT the server logs show this
2007-11-01 20:05:47.250000 [11]: analog: build graph
2007-11-01 20:05:47.250000 [11]: analog: AddTvTunerFilter ATI T200 AVStream Analog Tuner
2007-11-01 20:05:47.453125 [11]: analog: AddCrossBarFilter
2007-11-01 20:05:47.453125 [11]: analog: AddCrossBarFilter try:ATI T200 AVStream Analog Xbar 0
2007-11-01 20:05:47.578125 [11]: analog: FindCrossBarPin type:Video_Tuner direction:Input
2007-11-01 20:05:47.578125 [11]: analog: FindCrossBarPin inputs:5 outputs:2
2007-11-01 20:05:47.578125 [11]: analog: pin 0 type:Video_Tuner
2007-11-01 20:05:47.578125 [11]: analog: FindCrossBarPin found pin at index:0
2007-11-01 20:05:47.578125 [11]: analog: ConnectFilter()
2007-11-01 20:05:47.593750 [11]: analog: PinDest:name:0: Video Tuner In [6/1] Direction:Input Connected:False
2007-11-01 20:05:47.593750 [11]: analog: pinSource 0:name:Analog Video [5/1] Direction:Output Connected:False
2007-11-01 20:05:47.593750 [11]: analog: pins connected
2007-11-01 20:05:47.593750 [11]: analog: AddCrossBarFilter succeeded
2007-11-01 20:05:47.593750 [11]: analog: AddTvAudioFilter
2007-11-01 20:05:47.593750 [11]: analog: FindCrossBarPin type:Audio_Tuner direction:Input
2007-11-01 20:05:47.593750 [11]: analog: FindCrossBarPin inputs:5 outputs:2
2007-11-01 20:05:47.593750 [11]: analog: pin 0 type:Video_Tuner
2007-11-01 20:05:47.593750 [11]: analog: pin 1 type:Video_Composite
2007-11-01 20:05:47.593750 [11]: analog: pin 2 type:Video_SVideo
2007-11-01 20:05:47.593750 [11]: analog: pin 3 type:Audio_Tuner
2007-11-01 20:05:47.609375 [11]: analog: FindCrossBarPin found pin at index:3
2007-11-01 20:05:47.609375 [11]: analog: AddTvAudioFilter try:ATI T200 AVStream Analog TV Audio 0
2007-11-01 20:05:47.609375 [11]: analog: ConnectFilter()
2007-11-01 20:05:47.609375 [11]: analog: PinDest:name:TVAudio In [5/1] Direction:Input Connected:False
2007-11-01 20:05:47.609375 [11]: analog: pinSource 0:name:Analog Video [6/1] Direction:Output Connected:True
2007-11-01 20:05:50.578125 [11]: analog: pinSource 1:name:Analog Audio [6/1] Direction:Output Connected:False
2007-11-01 20:05:50.578125 [11]: analog: pins connected
2007-11-01 20:05:50.578125 [11]: analog: AddTvAudioFilter succeeded:ATI T200 AVStream Analog TV Audio
2007-11-01 20:05:50.578125 [11]: analog: AddTvCaptureFilter
2007-11-01 20:05:50.609375 [11]: analog: AddTvCaptureFilter try:ATI T200 AVStream Analog Capture 0
2007-11-01 20:05:50.625000 [11]: analog: AddTvCaptureFilter connected to crossbar successfully
2007-11-01 20:05:50.625000 [11]: analog: FindCapturePin on capture filter
2007-11-01 20:05:50.625000 [11]: analog: FindCapturePin pin:name:ATI Video Decoder YUV Output [20/1] Direction:Output Connected:False
2007-11-01 20:05:50.625000 [11]: analog: FindCapturePin major:e436eb83-524f-11ce-9f53-0020af0ba770 sub:e06d8022-db46-11cf-b4d1-00805f6cbbea
2007-11-01 20:05:50.625000 [11]: analog: FindCapturePin succeeded
2007-11-01 20:05:50.625000 [11]: analog: FindVBIPin
2007-11-01 20:05:50.625000 [11]: analog: VBI
2007-11-01 20:05:50.625000 [11]: analog: SetupTeletext()
2007-11-01 20:05:50.656250 [11]: analog: teletext setup
2007-11-01 20:05:50.671875 [11]: analog: AddMpeg2Demultiplexer
2007-11-01 20:05:50.671875 [11]: analog: connect capture->mpeg2 demux
2007-11-01 20:05:50.687500 [11]: analog: ConnectFilters returns:0x80040217
2007-11-01 20:05:50.687500 [11]: analog
ispose()
2007-11-01 20:05:50.734375 [11]: Stopcard
The error is here
-----------------------------
2007-11-01 19:59:11.765625 [11]: Exception :TvLibrary.TvException: Unable to connect capture-> MPEG2 demultiplexer
at TvLibrary.Implementations.Analog.TvCardAnalogBase.AddMpeg2Demultiplexer()
at TvLibrary.Implementations.Analog.TvCardAnalogBase.BuildGraph()
2007-11-01 19:59:11.765625 [11]: Exception :Unable to connect capture-> MPEG2 demultiplexer
2007-11-01 19:59:11.765625 [11]: site :Void AddMpeg2Demultiplexer()
2007-11-01 19:59:11.781250 [11]: source :TVLibrary
2007-11-01 19:59:11.781250 [11]: stacktrace: at TvLibrary.Implementations.Analog.TvCardAnalogBase.AddMpeg2Demultiplexer()
at TvLibrary.Implementations.Analog.TvCardAnalogBase.BuildGraph()
THE capture outputs should be fed through the ATI Media Center encoder path before feeding the mpeg2 demultiplexer.
Can someone eiither point out my mistake itf the TVserver does things differently or please add the correct routine into the server code for testing. Thanks
The software mpeg encoding filters/codecs are missed completly.
Output from the capture is taken straight to the mpeg demultiplexer missing these codecs and will obviously fail.
The graph structure should be as in the vanila MP to have an mpeg stream output.
<capturecard commercialname="ATI All-in-Wonder X series (Analogue)" capturename="ATI T200 AVStream Analog Capture" devid="ntativrv01">
<capabilities tv="true" radio="true" mpeg2="true" mce="false" sw="false" bda="false"/>
<tv>
<interface cat="mux" video="" audio="" mpeg2="0"/>
<filters>
<filter cat="tvtuner" name="ATI T200 AVStream Analog Tuner" checkdevice="false"/>
<filter cat="tvaudio" name="ATI T200 AVStream Analog TV Audio" checkdevice="false"/>
<filter cat="crossbar" name="ATI T200 AVStream Analog Xbar" checkdevice="true"/>
<filter cat="capture" name="ATI T200 AVStream Analog Capture" checkdevice="true"/>
<filter cat="videncoder" name="ATI Media Center Video Encoder" checkdevice="false"/>
<filter cat="audencoder" name="ATI Media Center Audio Encoder" checkdevice="false"/>
<filter cat="mux" name="ATI Media Center Multiplexer" checkdevice="false"/>
</filters>
<connections>
<connection sourcefilter="tvtuner" sourcepin="0" sinkfilter="crossbar" sinkpin="%tvtuner%"/>
<connection sourcefilter="tvtuner" sourcepin="1" sinkfilter="tvaudio" sinkpin="0"/>
<connection sourcefilter="tvaudio" sourcepin="0" sinkfilter="crossbar" sinkpin="%audiotuner%"/>
<connection sourcefilter="crossbar" sourcepin="0" sinkfilter="capture" sinkpin="0"/>
<connection sourcefilter="crossbar" sourcepin="1" sinkfilter="capture" sinkpin="1"/>
<connection sourcefilter="capture" sourcepin="0" sinkfilter="videncoder" sinkpin="0"/>
<connection sourcefilter="capture" sourcepin="3" sinkfilter="audencoder" sinkpin="0"/>
<connection sourcefilter="videncoder" sourcepin="0" sinkfilter="mux" sinkpin="1"/>
<connection sourcefilter="audencoder" sourcepin="0" sinkfilter="mux" sinkpin="0"/>
</connections>
</tv>
BUT the server logs show this
2007-11-01 20:05:47.250000 [11]: analog: build graph
2007-11-01 20:05:47.250000 [11]: analog: AddTvTunerFilter ATI T200 AVStream Analog Tuner
2007-11-01 20:05:47.453125 [11]: analog: AddCrossBarFilter
2007-11-01 20:05:47.453125 [11]: analog: AddCrossBarFilter try:ATI T200 AVStream Analog Xbar 0
2007-11-01 20:05:47.578125 [11]: analog: FindCrossBarPin type:Video_Tuner direction:Input
2007-11-01 20:05:47.578125 [11]: analog: FindCrossBarPin inputs:5 outputs:2
2007-11-01 20:05:47.578125 [11]: analog: pin 0 type:Video_Tuner
2007-11-01 20:05:47.578125 [11]: analog: FindCrossBarPin found pin at index:0
2007-11-01 20:05:47.578125 [11]: analog: ConnectFilter()
2007-11-01 20:05:47.593750 [11]: analog: PinDest:name:0: Video Tuner In [6/1] Direction:Input Connected:False
2007-11-01 20:05:47.593750 [11]: analog: pinSource 0:name:Analog Video [5/1] Direction:Output Connected:False
2007-11-01 20:05:47.593750 [11]: analog: pins connected
2007-11-01 20:05:47.593750 [11]: analog: AddCrossBarFilter succeeded
2007-11-01 20:05:47.593750 [11]: analog: AddTvAudioFilter
2007-11-01 20:05:47.593750 [11]: analog: FindCrossBarPin type:Audio_Tuner direction:Input
2007-11-01 20:05:47.593750 [11]: analog: FindCrossBarPin inputs:5 outputs:2
2007-11-01 20:05:47.593750 [11]: analog: pin 0 type:Video_Tuner
2007-11-01 20:05:47.593750 [11]: analog: pin 1 type:Video_Composite
2007-11-01 20:05:47.593750 [11]: analog: pin 2 type:Video_SVideo
2007-11-01 20:05:47.593750 [11]: analog: pin 3 type:Audio_Tuner
2007-11-01 20:05:47.609375 [11]: analog: FindCrossBarPin found pin at index:3
2007-11-01 20:05:47.609375 [11]: analog: AddTvAudioFilter try:ATI T200 AVStream Analog TV Audio 0
2007-11-01 20:05:47.609375 [11]: analog: ConnectFilter()
2007-11-01 20:05:47.609375 [11]: analog: PinDest:name:TVAudio In [5/1] Direction:Input Connected:False
2007-11-01 20:05:47.609375 [11]: analog: pinSource 0:name:Analog Video [6/1] Direction:Output Connected:True
2007-11-01 20:05:50.578125 [11]: analog: pinSource 1:name:Analog Audio [6/1] Direction:Output Connected:False
2007-11-01 20:05:50.578125 [11]: analog: pins connected
2007-11-01 20:05:50.578125 [11]: analog: AddTvAudioFilter succeeded:ATI T200 AVStream Analog TV Audio
2007-11-01 20:05:50.578125 [11]: analog: AddTvCaptureFilter
2007-11-01 20:05:50.609375 [11]: analog: AddTvCaptureFilter try:ATI T200 AVStream Analog Capture 0
2007-11-01 20:05:50.625000 [11]: analog: AddTvCaptureFilter connected to crossbar successfully
2007-11-01 20:05:50.625000 [11]: analog: FindCapturePin on capture filter
2007-11-01 20:05:50.625000 [11]: analog: FindCapturePin pin:name:ATI Video Decoder YUV Output [20/1] Direction:Output Connected:False
2007-11-01 20:05:50.625000 [11]: analog: FindCapturePin major:e436eb83-524f-11ce-9f53-0020af0ba770 sub:e06d8022-db46-11cf-b4d1-00805f6cbbea
2007-11-01 20:05:50.625000 [11]: analog: FindCapturePin succeeded
2007-11-01 20:05:50.625000 [11]: analog: FindVBIPin
2007-11-01 20:05:50.625000 [11]: analog: VBI
2007-11-01 20:05:50.625000 [11]: analog: SetupTeletext()
2007-11-01 20:05:50.656250 [11]: analog: teletext setup
2007-11-01 20:05:50.671875 [11]: analog: AddMpeg2Demultiplexer
2007-11-01 20:05:50.671875 [11]: analog: connect capture->mpeg2 demux
2007-11-01 20:05:50.687500 [11]: analog: ConnectFilters returns:0x80040217
2007-11-01 20:05:50.687500 [11]: analog
2007-11-01 20:05:50.734375 [11]: Stopcard
The error is here
-----------------------------
2007-11-01 19:59:11.765625 [11]: Exception :TvLibrary.TvException: Unable to connect capture-> MPEG2 demultiplexer
at TvLibrary.Implementations.Analog.TvCardAnalogBase.AddMpeg2Demultiplexer()
at TvLibrary.Implementations.Analog.TvCardAnalogBase.BuildGraph()
2007-11-01 19:59:11.765625 [11]: Exception :Unable to connect capture-> MPEG2 demultiplexer
2007-11-01 19:59:11.765625 [11]: site :Void AddMpeg2Demultiplexer()
2007-11-01 19:59:11.781250 [11]: source :TVLibrary
2007-11-01 19:59:11.781250 [11]: stacktrace: at TvLibrary.Implementations.Analog.TvCardAnalogBase.AddMpeg2Demultiplexer()
at TvLibrary.Implementations.Analog.TvCardAnalogBase.BuildGraph()
THE capture outputs should be fed through the ATI Media Center encoder path before feeding the mpeg2 demultiplexer.
Can someone eiither point out my mistake itf the TVserver does things differently or please add the correct routine into the server code for testing. Thanks