Skip to main content

Can a player be reset programmatically on Xlet exit?

4 replies [Last post]
vinaykagarwal
Offline
Joined: 2006-01-14

Hello,

Is it possible to reset a hardware player when the Xlet exits?

I find the LG BD370 player seems to leave java.net.DatagramSocket used by an Xlet in some strange state such that if used again by an Xlet without power cycling, many of its functions simply hang. No such issue occurs when you run an Xlet after power cycling. None of the listed functions of DatagramSocket seem to be able to reset the state of the socket.

Any suggestions? Thanks in advance.
Vinay Agarwal

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
billf
Offline
Joined: 2004-02-13

Just to be sure, you have checked that DatagramSocket.disconnect(), and for good measure, DatagramSocket.close() are being called, right?

Anyway, if all else fails, one trick to re-set a player is to select a HDMV title, and have that HDMV title do an immediate title jump back to BD-J. An HDMV title like the one described exists in the cookbook project, but this is one of those areas where it's really helpful to have the part 3.2 spec. The MovieObject.xml files in various HD cookbook projects just give the opcodes in hex. It's only three 16-bit numbers, and the one that's the title number is either 00000001 or 00000000 (and not 21810000), so if you don't have the spec it shouldn't take too much trial-and-error :-) (I forget which one is the title number, to tell you the truth).

vinaykagarwal
Offline
Joined: 2006-01-14

Bill,

The close() is being called. I tried adding disconnect() but that function itself hangs. Thanks for the HDMV trick - I will try it out.

Vinay Agarwal

billf
Offline
Joined: 2004-02-13

I'd suggest trying to figure out why disconnect() is hanging. Perhaps setting a shorter timeout would be in order.

vinaykagarwal
Offline
Joined: 2006-01-14

Bill,

The following sequence still hangs (after disc eject and reinsert).

datagramSocket.setSoTimeout(1);
datagramSocket.disconnect();
datagramSocket.close();

Following doesn't hang but doesn't solve the problem;
datagramSocket.close();
datagramSocket.disconnect();

How can one debug low level function like disconnect()?

Vinay