| Author |
Message |
jenny
Guest
|
Posted:
Wed Sep 22, 2004 5:05 am Post subject:
mms://stream-url stream problem |
|
|
Hi,
I have implemented some DirectShow code that builds a filter graph that can
load file based media (WM, MPEG2, MP3, AVI, etc.). I use the WMASFReader as
my source filter. We needed to be able to get the video bits and pass them
onto our own renderer. I accomplished this using the sampleGrabber. This
has all been working okay. Recently, I needed to add support for an
continous stream (ASX) that I receive as mms://stream-url. It all seemed to
work at first, however, now I have a show-stopper problem (excuse the pun).
The stream that I am using has different shows that come on at scheduled
intervals. When the show switches my video stops and never starts again.
The same stream when played using Windows Media Player correctly switches to
the next show. I printed out all the events that come in via
IMediaEvent->GetEvent and no event comes at the show boundary. Anyone know
how to get this to work properly?
Here is what I have tried:
1) I modified the VMR9Allocator sample to accept my stream and it has the
same issue as my code.
2) I looked at the WM Format SDK to see if there was anything helpful there.
In the DSPlay sample (modified slightly to accept my stream url) the same
issue occurred. The code of this sample is very similar to my DirectShow
implementation. The sample has the same issue, however, an set of three
events get generated (infinitely) at the show boundary. These events are
EC_COMPLETE, 0x48, 0x46. Note that 0x48 and 0x46 are not found in evcode.h.
I already posted to the directx.video newsgroup and didn't receive any
replies, so I thought that I would try here.
Thanks,
Jenny
|
|
| Back to top |
|
 |
Geoff Dunbar [MSFT]
Guest
|
Posted:
Tue Sep 28, 2004 1:03 am Post subject:
Re: mms://stream-url stream problem |
|
|
I can tell you what the format SDK reader will send in the case where a
server-side playlist switch occurs (that's what's happening below):
1) The FSDK sends WMT_EOF with an HRESULT of S_FALSE instead of the usual
S_OK. That indicates that another clip is coming.
2) The FSDK sends WMT_SOURCE_SWITCH when the next entry is ready.
3) Now you can examine the outputs, metadata, etc. This tells you the
properties of the audio, video, etc.
4) When you are ready to start receiving data from the new entry, call Start
on the reader, and you'll start getting samples soon.
Hope this helps,
Geoff
--
This posting is provided "AS IS" with no warranties, and confers no rights.
"jenny" <jenny@discussions.microsoft.com> wrote in message
news:E0ED95F9-65B0-4883-9643-7D7FBDCB1C58@microsoft.com...
| Quote: | Hi,
I have implemented some DirectShow code that builds a filter graph that
can
load file based media (WM, MPEG2, MP3, AVI, etc.). I use the WMASFReader
as
my source filter. We needed to be able to get the video bits and pass
them
onto our own renderer. I accomplished this using the sampleGrabber. This
has all been working okay. Recently, I needed to add support for an
continous stream (ASX) that I receive as mms://stream-url. It all seemed
to
work at first, however, now I have a show-stopper problem (excuse the
pun).
The stream that I am using has different shows that come on at scheduled
intervals. When the show switches my video stops and never starts again.
The same stream when played using Windows Media Player correctly switches
to
the next show. I printed out all the events that come in via
IMediaEvent->GetEvent and no event comes at the show boundary. Anyone
know
how to get this to work properly?
Here is what I have tried:
1) I modified the VMR9Allocator sample to accept my stream and it has the
same issue as my code.
2) I looked at the WM Format SDK to see if there was anything helpful
there.
In the DSPlay sample (modified slightly to accept my stream url) the same
issue occurred. The code of this sample is very similar to my DirectShow
implementation. The sample has the same issue, however, an set of three
events get generated (infinitely) at the show boundary. These events are
EC_COMPLETE, 0x48, 0x46. Note that 0x48 and 0x46 are not found in
evcode.h.
I already posted to the directx.video newsgroup and didn't receive any
replies, so I thought that I would try here.
Thanks,
Jenny
|
|
|
| Back to top |
|
 |
jenny
Guest
|
Posted:
Tue Sep 28, 2004 6:21 am Post subject:
Re: mms://stream-url stream problem |
|
|
Thank you very much, your response. It was very helpful. This is what I
have been finding in my test programs, and it is great to have someone
confirm that this is what Windows Media Format reader (async) will do. I
believe that using the WM ASF Reader filter in a DirectShow filter graph does
not handle this correctly. However, using the Windows Media Format SDK
coupled with our renderer will work.
Thanks again.
Jenny
"Geoff Dunbar [MSFT]" wrote:
| Quote: | I can tell you what the format SDK reader will send in the case where a
server-side playlist switch occurs (that's what's happening below):
1) The FSDK sends WMT_EOF with an HRESULT of S_FALSE instead of the usual
S_OK. That indicates that another clip is coming.
2) The FSDK sends WMT_SOURCE_SWITCH when the next entry is ready.
3) Now you can examine the outputs, metadata, etc. This tells you the
properties of the audio, video, etc.
4) When you are ready to start receiving data from the new entry, call Start
on the reader, and you'll start getting samples soon.
Hope this helps,
Geoff
--
This posting is provided "AS IS" with no warranties, and confers no rights.
"jenny" <jenny@discussions.microsoft.com> wrote in message
news:E0ED95F9-65B0-4883-9643-7D7FBDCB1C58@microsoft.com...
Hi,
I have implemented some DirectShow code that builds a filter graph that
can
load file based media (WM, MPEG2, MP3, AVI, etc.). I use the WMASFReader
as
my source filter. We needed to be able to get the video bits and pass
them
onto our own renderer. I accomplished this using the sampleGrabber. This
has all been working okay. Recently, I needed to add support for an
continous stream (ASX) that I receive as mms://stream-url. It all seemed
to
work at first, however, now I have a show-stopper problem (excuse the
pun).
The stream that I am using has different shows that come on at scheduled
intervals. When the show switches my video stops and never starts again.
The same stream when played using Windows Media Player correctly switches
to
the next show. I printed out all the events that come in via
IMediaEvent->GetEvent and no event comes at the show boundary. Anyone
know
how to get this to work properly?
Here is what I have tried:
1) I modified the VMR9Allocator sample to accept my stream and it has the
same issue as my code.
2) I looked at the WM Format SDK to see if there was anything helpful
there.
In the DSPlay sample (modified slightly to accept my stream url) the same
issue occurred. The code of this sample is very similar to my DirectShow
implementation. The sample has the same issue, however, an set of three
events get generated (infinitely) at the show boundary. These events are
EC_COMPLETE, 0x48, 0x46. Note that 0x48 and 0x46 are not found in
evcode.h.
I already posted to the directx.video newsgroup and didn't receive any
replies, so I thought that I would try here.
Thanks,
Jenny
|
|
|
| Back to top |
|
 |
|
|
|
|