[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-player-dev
Subject:    RE: [Player-dev] Is there any Player based on hxclientkit
From:       "Zhao, Halley" <halley.zhao () intel ! com>
Date:       2007-10-10 9:10:34
Message-ID: 094BCE01AFBE9646AF220B0B3F367AAB015035CA () pdsmsx413 ! ccr ! corp ! intel ! com
[Download RAW message or body]

¡¡¡¡Hi Greg:
¡¡¡¡Finally I found out it may be an issue when multi-threads call to client core.
¡¡¡¡
¡¡¡¡When the media stream is playing, helix engine need to call EventOccurred() to do \
some synchronization. ¡¡¡¡1. It will be ok in splay or testkit (from \
player/hxclientkit/test), since after they begin to play, there is a while-loop to \
call EventOccurred (in this thread). ¡¡¡¡2. for helix-player, it will create a new \
thread to call EventOccurred() by: ¡¡¡¡hxplayer_pump() call to \
ClientEngineProcessXEvent() call toEventOccurred ¡¡¡¡It works ok on cayenne branch, \
but on atlas branch, there will be no video/audio output. ¡¡¡¡If I add while-loop to \
call to hxplayer_pump() after the helix engine begin to playback media stream, there \
will be video & audio output. ¡¡¡¡3. There are some comment in \
ClientEngineProcessXEvent(), I don't know whether they relates to this issue. \
¡¡¡¡//XXXgfw instead of the above call to EventOccurred() we really need to ¡¡¡¡//be \
using the new platform Kick() method and the SiteEventHandler's ¡¡¡¡//HandleEvent \
calls. I am leaving like the above for now because ¡¡¡¡//changing it would require \
changes up stream to the player (for things ¡¡¡¡//like returning suggested sleep \
time, etc. Below is *something* like ¡¡¡¡//what we want. I have added and initialized \
the below member variables ¡¡¡¡//that hold the kick and event handler, so they are \
ready to use. ¡¡¡¡
¡¡¡¡ // m_pIPlatformKicker->Kick(HXGetCurrentThreadID(), &ulSleepSuggested);
¡¡¡¡ // m_pIEventHandler->HandleEvent(pEvent);
¡¡¡¡4. How can I do the synchronization on atlas branch?
¡¡¡¡Thanks.
¡¡¡¡
¡¡¡¡>-----Original Message-----
¡¡¡¡>From: Greg Wright [mailto:gwright@real.com]
¡¡¡¡>Sent: 2007Äê9Ô 29ÈÕ 1:04
¡¡¡¡>To: Zhao, Halley
¡¡¡¡>Cc: Helix Player Dev
¡¡¡¡>Subject: Re: [Player-dev] Is there any Player based on hxclientkit
¡¡¡¡>hxclient_3_1_0_atlas works?
¡¡¡¡>
¡¡¡¡>Zhao, Halley wrote:
¡¡¡¡>> ¡¡¡¡Splay works well for the following configuration:
¡¡¡¡>>
¡¡¡¡>> ¡¡¡¡target: splay
¡¡¡¡>> ¡¡¡¡profile: helix-client-all-defines
¡¡¡¡>> ¡¡¡¡branch: hxclient_3_1_0_atlas
¡¡¡¡>
¡¡¡¡>Ok, so the problem is in the hxclientkit or your
¡¡¡¡>usage of it and, perhaps, your application. I am
¡¡¡¡>no expert in hxclientkit so I can't help you too
¡¡¡¡>much there. If you are not getting any video
¡¡¡¡>then I would look at the implementation of of the
¡¡¡¡>SitesNeeded() calls in hxclientkit and make sure
¡¡¡¡>they work for your platform.
¡¡¡¡>
¡¡¡¡>I have no idea why you would not get audio though
¡¡¡¡>since that is handled by the engine.
¡¡¡¡>
¡¡¡¡>Actually, you may not be pumping the engine. The
¡¡¡¡>Helix engine requires that the application give
¡¡¡¡>it time slices so that it can do its work. This
¡¡¡¡>is done via EventOccurred() being called on the
¡¡¡¡>engine every 10ms or so. The hxclientkit must need
¡¡¡¡>the same thing. Are you calling
¡¡¡¡>CHXClientEngine::EventOccurred every 10ms or so?
¡¡¡¡>If not, then nothing will play. I am not sure that
¡¡¡¡>is the exact call in hxclientkit, but make sure you
¡¡¡¡>are calling something to give it, and therefore the
¡¡¡¡>Helix engine, time to do its work.
¡¡¡¡>
¡¡¡¡>--greg.
¡¡¡¡>
¡¡¡¡>
¡¡¡¡>
¡¡¡¡>>
¡¡¡¡>> ¡¡¡¡>-----Original Message-----
¡¡¡¡>> ¡¡¡¡>From: Greg Wright [mailto:gwright@real.com]
¡¡¡¡>> ¡¡¡¡>Sent: 2007Äê9Ô 28ÈÕ 2:28
¡¡¡¡>> ¡¡¡¡>To: Zhao, Halley
¡¡¡¡>> ¡¡¡¡>Cc: helix-client-dev@helixcommunity.org; Helix Player Dev
¡¡¡¡>> ¡¡¡¡>Subject: Re: [Player-dev] Is there any Player based on hxclientkit
¡¡¡¡>> ¡¡¡¡>hxclient_3_1_0_atlas works?
¡¡¡¡>> ¡¡¡¡>
¡¡¡¡>> ¡¡¡¡>Zhao, Halley wrote:
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡Thanks Greg:
¡¡¡¡>> ¡¡¡¡>>
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡1
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡I have compared clientapps/simpleplayer/main.cpp of 150Cay
¡¡¡¡>and
¡¡¡¡>> ¡¡¡¡>310Atlas. And seems all the modifications have been merged to
¡¡¡¡>hxclient
¡¡¡¡>> ¡¡¡¡>module.
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡A difference I noticed is:
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡In splay, it add plugin path with name " HelixSimplePlayer "
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡pMediaPlatform->AddPluginPath("HelixSimplePlayer",
¡¡¡¡>dllhome)
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡while in hxclient, it add plugin with name "
¡¡¡¡>HXClientKitFramework "
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡m_pIMediaPlatform->AddPluginPath("HXClientKitFramework",
¡¡¡¡>dllhome)
¡¡¡¡>> ¡¡¡¡>>
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡2.
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡Now, I can create the engine/player and call the
¡¡¡¡>ClientPlayerOpenURL,
¡¡¡¡>> ¡¡¡¡>ClientPlayerPlay with no error report,
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡however, no output, either audio or video.
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡Could you give me some suggestion to debug it? Thanks.
¡¡¡¡>> ¡¡¡¡>>
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡3.
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡Can you point me the configuration to build a player based on
¡¡¡¡>> ¡¡¡¡>hxclientkit 310Atlas?
¡¡¡¡>> ¡¡¡¡>
¡¡¡¡>> ¡¡¡¡>Before we do anything else, try building this well tested
¡¡¡¡>> ¡¡¡¡>combination:
¡¡¡¡>> ¡¡¡¡>
¡¡¡¡>> ¡¡¡¡>target: splay
¡¡¡¡>> ¡¡¡¡>profile: helix-client-all-defines
¡¡¡¡>> ¡¡¡¡>branch: hxclient_3_1_0_atlas
¡¡¡¡>> ¡¡¡¡>
¡¡¡¡>> ¡¡¡¡>Make sure that that will run and you see video and hear
¡¡¡¡>> ¡¡¡¡>audio. Once we know that works, we can worry about
¡¡¡¡>> ¡¡¡¡>hxclientkit.
¡¡¡¡>> ¡¡¡¡>
¡¡¡¡>> ¡¡¡¡>--greg.
¡¡¡¡>> ¡¡¡¡>
¡¡¡¡>> ¡¡¡¡>>
¡¡¡¡>> ¡¡¡¡>> ¡¡¡¡Thanks.

_______________________________________________
Player-dev mailing list
Player-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/player-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic