| Author |
Message |
Dmitry Vergeles (SolveigM
Guest
|
Posted:
Mon Nov 21, 2005 5:30 pm Post subject:
ASF files with third party content are not played by WMP10 |
|
|
Hi all,
I hope to see here Alessandro :)
Well, we have created ASF stream with DivX content (DiV5) .
I know that an appropreated VFW or DMO decoders has to be installed. And I
have both native DivX and FFDshow VFW decoders.
WMP 10 opens this file without any error message and plays it. But though
an audio stream is played OK there is no video, just black screen.
If to remux this file as video only, WMP open it and immediately stops.
Here small sample files:
video and audio
ftp://ftp.elecard.net.ru/incoming/4Solveig/Progulka_part.asf
video only
ftp://ftp.elecard.net.ru/incoming/4Solveig/Progulka_part_VO.asf
Could anyone suggest what the issue stem from?
Any help will be appreciated.
Regards
Dmitry Vergeles
www.solveigmm.com
|
|
| Back to top |
|
 |
Chris P. [MVP]
Guest
|
Posted:
Tue Nov 22, 2005 5:30 pm Post subject:
Re: ASF files with third party content are not played by WMP |
|
|
On Mon, 21 Nov 2005 20:10:06 +0600, Dmitry Vergeles (SolveigMM) wrote:
| Quote: | Hi all,
I hope to see here Alessandro :)
Well, we have created ASF stream with DivX content (DiV5) .
I know that an appropreated VFW or DMO decoders has to be installed. And I
have both native DivX and FFDshow VFW decoders.
WMP 10 opens this file without any error message and plays it. But though
an audio stream is played OK there is no video, just black screen.
If to remux this file as video only, WMP open it and immediately stops.
Here small sample files:
video and audio
ftp://ftp.elecard.net.ru/incoming/4Solveig/Progulka_part.asf
video only
ftp://ftp.elecard.net.ru/incoming/4Solveig/Progulka_part_VO.asf
Could anyone suggest what the issue stem from?
Any help will be appreciated.
|
While you wait for Alessandro, I'll take a stab here.
I tested your files in all DirectShow applications I could find including
GraphEdit and WMP 6.4, and they play fine, creating a pretty standard
graph.
In my case, WMP 10 refused to play the file altogether whether with or
without audio stating that a codec was required. It attempted to connect
to the codec server but wasn't finding anything. Obviously I already had
the required codec as it played in everything else.
My guess is that because WMP is using some custom methods to parse the ASF
file it is not interpreting the video media type correctly and using the
installed decoder. Because you have FFDShow installed you could try
attaching to the ROT entry created by the decoder filter in GraphEdit and
see what it has built for a graph (it's listed in the FFDShow options).
-Chris |
|
| Back to top |
|
 |
Alessandro Angeli [MVP::D
Guest
|
Posted:
Tue Nov 22, 2005 5:30 pm Post subject:
Re: ASF files with third party content are not played by WMP |
|
|
Chris P. [MVP] wrote:
| Quote: | My guess is that because WMP is using some custom methods
to parse the ASF file it is not interpreting the video
media type correctly and using the installed decoder.
|
WMP7+ uses its own super-secret internal ASF source filter
based on the ASFReader object in the WMF runtime. However,
while both the standard ASF source filters output compressed
streams for DirectShow to decode, WMP's own private one
outputs decompressed data, letting WMF decode it. WMF
however is nor nearly as good as DirectShow at dealing with
unexpected stream types and it only supports ACM/VCM codecs
and DMOs. Also, it seems very picky about which ACM/VCM
codecs actually work.
Thus said, I'll try to see what happens with those specific
files and decoders inside WMP, but don't hold your breath
too long :-) [This last part was meant for Dmitry, not
Chris.]
--
// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net
|
|
| Back to top |
|
 |
Alessandro Angeli [MVP::D
Guest
|
Posted:
Tue Nov 22, 2005 9:30 pm Post subject:
Re: ASF files with third party content are not played by WMP |
|
|
Alessandro Angeli [MVP::DigitalMedia] wrote:
| Quote: | Thus said, I'll try to see what happens with those
specific files and decoders inside WMP, but don't hold
your breath too long :-) [This last part was meant for
Dmitry, not Chris.]
|
This is WMP10's internal graph for Progulka_part.asf (* =
private filter):
*WMRenderer Source Filter
*WMPlayer Time Compression DMO
*Volume Normalization DMO
*WMPlayer SRSWow DMO
*WMPlayer Equalizer DMO
*WMPlayer Spectrum Analyzer DMO
DirectSound Audio Renderer
Color Space Converter
*WMPlayer Video Processing DMO
Video Mixing Renderer (VMR7)
The audio format is:
MajorType = MEDIATYPE_Audio
SubType .. = MEDIASUBTYPE_ACM_CODEC/WAVE_FORMAT_PCM
FormatType = FORMAT_WaveFormatEx
WAVEFORMATEX.wFormatTag .... = WAVE_FORMAT_PCM
WAVEFORMATEX.nChannels ..... = 2
WAVEFORMATEX.nSamplesPerSec = 48000
WAVEFORMATEX.nAvgBytesPerSec = 192000
WAVEFORMATEX.nBlockAlign ... = 4
WAVEFORMATEX.wBitsPerSample = 16
WAVEFORMATEX.cbSize ........ = 0
The video format before the CSC:
MajorType = MEDIATYPE_Video
SubType .. = MEDIASUBTYPE_RGB24
FormatType = FORMAT_VideoInfo
VIDEOINFOHEADER.rcSource ...... = (0,0)-(512,288)
VIDEOINFOHEADER.rcTarget ...... = (0,0)-(512,288)
VIDEOINFOHEADER.dwBitRate ..... = 0
VIDEOINFOHEADER.dwBitErrorRate = 0
VIDEOINFOHEADER.AvgTimePerFrame = 400000
BITMAPINFOHEADER.biSize ........ = 40
BITMAPINFOHEADER.biWidth ....... = 512
BITMAPINFOHEADER.biHeight ...... = 288
BITMAPINFOHEADER.biPlanes ...... = 1
BITMAPINFOHEADER.biBitCount .... = 24
BITMAPINFOHEADER.biCompression = BI_RGB
BITMAPINFOHEADER.biSizeImage ... = 442368
BITMAPINFOHEADER.biXPelsPerMeter = 0
BITMAPINFOHEADER.biYPelsPerMeter = 0
BITMAPINFOHEADER.biClrUsed ..... = 0
BITMAPINFOHEADER.biClrImportant = 0
The video format after the CSC:
MajorType = MEDIATYPE_Video
SubType .. = MEDIASUBTYPE_RGB32
FormatType = FORMAT_VideoInfo
VIDEOINFOHEADER.rcSource ...... = (0,0)-(512,288)
VIDEOINFOHEADER.rcTarget ...... = (0,0)-(512,288)
VIDEOINFOHEADER.dwBitRate ..... = 0
VIDEOINFOHEADER.dwBitErrorRate = 0
VIDEOINFOHEADER.AvgTimePerFrame = 400000
BITMAPINFOHEADER.biSize ........ = 40
BITMAPINFOHEADER.biWidth ....... = 512
BITMAPINFOHEADER.biHeight ...... = 288
BITMAPINFOHEADER.biPlanes ...... = 1
BITMAPINFOHEADER.biBitCount .... = 32
BITMAPINFOHEADER.biCompression = BI_RGB
BITMAPINFOHEADER.biSizeImage ... = 589824
BITMAPINFOHEADER.biXPelsPerMeter = 0
BITMAPINFOHEADER.biYPelsPerMeter = 0
BITMAPINFOHEADER.biClrUsed ..... = 0
BITMAPINFOHEADER.biClrImportant = 0
On my system I tried 3 decoders: DivX, XviD and ffdshow/vfw
and none. The output is exactly the same everytime, and this
include the no decoder case. Anyway, next I kept renaming
the decoders DLLs (divx.dll, xvidvfw.dll, and ff_vfw.dll) to
make them unavailable and thus be sure of which decoder was
in use. When DivX was in use, the video was there, otherwise
no video. Also, XviD took precedence above DivX when both
were available. So you may want to perform the same check on
your system.
--
// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net |
|
| Back to top |
|
 |
Dmitry Vergeles (SolveigM
Guest
|
Posted:
Thu Nov 24, 2005 9:30 am Post subject:
Re: ASF files with third party content are not played by WMP |
|
|
Hi Alessandro and Chris,
Thank you for your help.
Chris, thanks for ROT hint, I'll certainly try this feature.
Alessandro, I had already used your grfspy2.dll before my post and know an
internal graph vonfiguration.
But its configuration doesn't show me what causes the issue.
Also I have manipulated with decoders renaming to exclude one of them using
by WMP.
None of them operates.
Well, as far as I undersood you can play the files by WMP properly with
native DIVx decoder?
If this is the case tell me please a version info of the decoder you have.
Regards
Dmitry Vergeles
www.solveigmm.com
"Alessandro Angeli [MVP::DigitalMedia]" <nobody@nowhere.in.the.net> wrote in
message news:OvWjar67FHA.4076@tk2msftngp13.phx.gbl...
| Quote: | Alessandro Angeli [MVP::DigitalMedia] wrote:
Thus said, I'll try to see what happens with those
specific files and decoders inside WMP, but don't hold
your breath too long :-) [This last part was meant for
Dmitry, not Chris.]
This is WMP10's internal graph for Progulka_part.asf (* = private filter):
*WMRenderer Source Filter
*WMPlayer Time Compression DMO
*Volume Normalization DMO
*WMPlayer SRSWow DMO
*WMPlayer Equalizer DMO
*WMPlayer Spectrum Analyzer DMO
DirectSound Audio Renderer
Color Space Converter
*WMPlayer Video Processing DMO
Video Mixing Renderer (VMR7)
The audio format is:
MajorType = MEDIATYPE_Audio
SubType .. = MEDIASUBTYPE_ACM_CODEC/WAVE_FORMAT_PCM
FormatType = FORMAT_WaveFormatEx
WAVEFORMATEX.wFormatTag .... = WAVE_FORMAT_PCM
WAVEFORMATEX.nChannels ..... = 2
WAVEFORMATEX.nSamplesPerSec = 48000
WAVEFORMATEX.nAvgBytesPerSec = 192000
WAVEFORMATEX.nBlockAlign ... = 4
WAVEFORMATEX.wBitsPerSample = 16
WAVEFORMATEX.cbSize ........ = 0
The video format before the CSC:
MajorType = MEDIATYPE_Video
SubType .. = MEDIASUBTYPE_RGB24
FormatType = FORMAT_VideoInfo
VIDEOINFOHEADER.rcSource ...... = (0,0)-(512,288)
VIDEOINFOHEADER.rcTarget ...... = (0,0)-(512,288)
VIDEOINFOHEADER.dwBitRate ..... = 0
VIDEOINFOHEADER.dwBitErrorRate = 0
VIDEOINFOHEADER.AvgTimePerFrame = 400000
BITMAPINFOHEADER.biSize ........ = 40
BITMAPINFOHEADER.biWidth ....... = 512
BITMAPINFOHEADER.biHeight ...... = 288
BITMAPINFOHEADER.biPlanes ...... = 1
BITMAPINFOHEADER.biBitCount .... = 24
BITMAPINFOHEADER.biCompression = BI_RGB
BITMAPINFOHEADER.biSizeImage ... = 442368
BITMAPINFOHEADER.biXPelsPerMeter = 0
BITMAPINFOHEADER.biYPelsPerMeter = 0
BITMAPINFOHEADER.biClrUsed ..... = 0
BITMAPINFOHEADER.biClrImportant = 0
The video format after the CSC:
MajorType = MEDIATYPE_Video
SubType .. = MEDIASUBTYPE_RGB32
FormatType = FORMAT_VideoInfo
VIDEOINFOHEADER.rcSource ...... = (0,0)-(512,288)
VIDEOINFOHEADER.rcTarget ...... = (0,0)-(512,288)
VIDEOINFOHEADER.dwBitRate ..... = 0
VIDEOINFOHEADER.dwBitErrorRate = 0
VIDEOINFOHEADER.AvgTimePerFrame = 400000
BITMAPINFOHEADER.biSize ........ = 40
BITMAPINFOHEADER.biWidth ....... = 512
BITMAPINFOHEADER.biHeight ...... = 288
BITMAPINFOHEADER.biPlanes ...... = 1
BITMAPINFOHEADER.biBitCount .... = 32
BITMAPINFOHEADER.biCompression = BI_RGB
BITMAPINFOHEADER.biSizeImage ... = 589824
BITMAPINFOHEADER.biXPelsPerMeter = 0
BITMAPINFOHEADER.biYPelsPerMeter = 0
BITMAPINFOHEADER.biClrUsed ..... = 0
BITMAPINFOHEADER.biClrImportant = 0
On my system I tried 3 decoders: DivX, XviD and ffdshow/vfw and none. The
output is exactly the same everytime, and this include the no decoder
case. Anyway, next I kept renaming the decoders DLLs (divx.dll,
xvidvfw.dll, and ff_vfw.dll) to make them unavailable and thus be sure of
which decoder was in use. When DivX was in use, the video was there,
otherwise no video. Also, XviD took precedence above DivX when both were
available. So you may want to perform the same check on your system.
--
// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net
|
|
|
| Back to top |
|
 |
Alessandro Angeli [MVP::D
Guest
|
Posted:
Thu Nov 24, 2005 1:30 pm Post subject:
Re: ASF files with third party content are not played by WMP |
|
|
Dmitry Vergeles (SolveigMM) wrote:
| Quote: | Chris, thanks for ROT hint, I'll certainly try this
feature.
|
Using the ROT is less informative than using GrfSpy and I'm
not sure it works with non globally registered filters. Let
me know if it does since I am interested.
| Quote: | Alessandro, I had already used your grfspy2.dll before my
post and know an internal graph vonfiguration.
|
I didn't remember I had given you GrfSpy :-)
| Quote: | But its configuration doesn't show me what causes the
issue.
|
GrfSpy only dumps the DirectShow graph so, when a problem is
elsewhere, it won't help. In this case, the problem seems to
be located inside WMP's private WM reader since, as you
noticed, the graph is ok.
There is something still missing from GrfSpy that could help
but I have no time to implement it and that would be dumping
each sample. Spying on the creation and use of codecs and
DMOs would also be useful, especially in this case, but it
takes some time to code.
| Quote: | Also I have manipulated with decoders renaming to exclude
one of them using by WMP.
None of them operates.
Well, as far as I undersood you can play the files by WMP
properly with native DIVx decoder?
If this is the case tell me please a version info of the
decoder you have.
|
The version of the divx.dll I have is 5.1.1.1031.
--
// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net |
|
| Back to top |
|
 |
Dmitry Vergeles (SolveigM
Guest
|
Posted:
Fri Nov 25, 2005 9:30 am Post subject:
Re: ASF files with third party content are not played by WMP |
|
|
One more thing.
What "Bits" value in ASF's Bitmap Info Header has an infuence on?
Is this a bits count the decoder has to deliver raw format in concordance
with?
I mean if this value equals 24 - raw format has to be e.g. RGB24 and
if it is 12 the one has to be e.g. YV12?
My question stems from my second trouble.
Wen I try to play DX50 ASF with this value 12, WMP says "An invalid
mediasublype was specifyed".
This is the ASF I'm talking about:
ftp://ftp.elecard.net.ru/incoming/4Solveig/1500b.asf
This is the same file with "Bits" value corrected from 12 to 24 and that is
played:
ftp://ftp.elecard.net.ru/incoming/4Solveig/1500b_.asf
Any suggestions would be appreciated.
Regards,
Dmitry Vergeles
www.solveigmm.com |
|
| Back to top |
|
 |
Dmitry Vergeles (SolveigM
Guest
|
Posted:
Fri Nov 25, 2005 9:30 am Post subject:
Re: ASF files with third party content are not played by WMP |
|
|
Hi Alessandro,
You sent me your spy dll by mail last time I had troubles with ASF :)
Before my post I have experimented with native DivX decoders version 3.1 and
6.0 and they didn't operate.
After I have installed Divx 5.1 bundle WMP have started to play my ASFs.
It seems the VFW decoders significanlty differ from each other .
Anyway I'm appreciative of your help , thank you.
Best Regards,
Dmitry
www.solveigmm.com |
|
| Back to top |
|
 |
Alessandro Angeli [MVP::D
Guest
|
Posted:
Fri Nov 25, 2005 5:30 pm Post subject:
Re: ASF files with third party content are not played by WMP |
|
|
Dmitry Vergeles (SolveigMM) wrote:
| Quote: | What "Bits" value in ASF's Bitmap Info Header has an
infuence on?
Is this a bits count the decoder has to deliver raw
format in concordance with?
I mean if this value equals 24 - raw format has to be
e.g. RGB24 and if it is 12 the one has to be e.g. YV12?
My question stems from my second trouble.
Wen I try to play DX50 ASF with this value 12, WMP says
"An invalid mediasublype was specifyed".
This is the ASF I'm talking about:
ftp://ftp.elecard.net.ru/incoming/4Solveig/1500b.asf
This is the same file with "Bits" value corrected from
12 to 24 and that is played:
ftp://ftp.elecard.net.ru/incoming/4Solveig/1500b_.asf
|
The meaning of biBitCount depends on the value of
biCompression and, for most compressed formats (other than
RGB or YUV), it does not really mean anything and the
BITMAPINFOHEADER docs suggest it should in fact be set to 0.
However, it seems like DivX and XviD decided to set it to 24
instead (actually, I think Microsoft decided to set it to 24
when they wrote their MS-MPEG4v3 codec, where DivX3 stemmed
from).
I don't think either WMP or DS even glance at this value: it
is just passed along to the decoder with the whole
BITMAPINFOHEADER. I suppose whatever decoder is chosen
simply does not like 12 to be there instead of 24, even it
is meaningless to him, and, on my system, the VCM and DS
versions of the decoder seem to have different ideas on the
subject :-)
--
// Alessandro Angeli
// MVP :: Digital Media
// a dot angeli at psynet dot net |
|
| Back to top |
|
 |
|
|
|
|