Skip to main content

Enable Clip - Progressive Playlist Probel

10 replies [Last post]
flightdown
Offline
Joined: 2010-04-06

Hi all,

I have that problem in progressive playlist: i can reset VFS, download content, and update VFS correctly but i can't enable the clip I have to play as first of my progressive playlist.

I have write a program that do that step.

1 for now (test), reset VFS.
2 erase all BUDA's contents.
2 download content. (download manifest.xml, manifest.sf, clip and m2ts).
3 update VFS
4 check if the clip (the same as clipName in mplsObject) is enabled if not try to enable it. (I'm sure at that stage all file are downloaded).
5 start to play

I'm sure about the sequence and i've put some log inside the code and catch for exception but i can't see any wrong.
I've listed the BUDA to check if all content are downloaded and yes all file are stored in BUDA area.
I've check the manifest XML and it seem well.
I've generated the progressive playlist using bumfgenerator.jar with -progressive option and parameter all m2ts i've to use in progressive playlist like in ProgressivePlaylist example.

Hope that everything will make sense.

Thanks in advance for any help

Cheers, Quirino

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
lingeswaran
Offline
Joined: 2010-05-19

Hi Chihiro

I have made some modification as you said. Now its working fine. i have succeeded in enabling and playing the clips by using vfs.jar. But now I need to read the streams from the server and play since i have to play multiple files which is of larger in size.

- When download manifest.xml and manifest.sf from server(same files as we have in the vfs.jar ) and do vfs updation, i'm getting the PreaparingFailedException. Now i dont know whether to download the manifest.xml and manifest.sf from server and do vfs update OR [b]download the bumf.xml and bumf.sf from server for vfs updation[/b].( If i download bumf.sf and bumf.xml files from server, whether i expected to do vfs updation? )

[u][b]Now my question is[/b][/u], [b]what are the files we need to have when we do VFS updation[/b] by calling requestUpdating method. (manifest or bumf files ).I have downloaded the manifest.xml and manifest.sf files from server and then .mpl and .clp files. Before downloading the .m2t files i'm doing VFS updation. and then downloading the .m2t files. Is it correct?

[b] And another doubt is, what are the files should be in BUDA when i do vfs updation?[/b]

Waiting for your response. Please help me in doing this. Step by step only i'm learning. So kindly guide me to get a good result. Thanks in advance.

Regards,
lingesh

lingeswaran
Offline
Joined: 2010-05-19

Hi Chihiro,

As you told i have successfully generated the manifest.xml file with appropriate Progressive assets. And i also got the manifest.sf file without any errors. When i do VFS update, it didnt give any "org.bluray.vfs.preparingFailedException". Now its working fine.

Now i can able to play the first clip. i enabled the next clip by calling the [b]manager.enableClip()[/b] method at the end of the first clip. But after playing the first clip, the player got stopped. But I'm sure that it didnt throw any exceptions and the subsequent clips are downloaded at that time. Since Its returning true when calling [b]manager.isEnabledClip()[/b] method. i have checked it.

i dont know when and where to enable the next clip that is indicated as the progressive asset in the bumf.xml. I was tried to catch the EndOfMedia Event of the mediaPlayer in the control Listener to enable the next clip. But i couldn't able to do that.
The following is my code in the [b]startProgressivePlaylist [/b]method :

--------------------------------------------------------------

BDLocator bdLocator = new BDLocator("bd://0.PLAYLIST:00000");
MediaLocator locator = new MediaLocator(bdLocator);
final Player mediaPlayer = Manager.createPlayer(locator);
mediaPlayer.addControllerListener(new ControllerListener()
{
public void controllerUpdate(ControllerEvent e)
{
if (e instanceof EndOfMediaEvent)
{
//Enabling the next clip 00002.m2t");
manager.enableClip(bindingUnitDir+sep+"00002.m2t");
mediaPlayer.start();
}
}
});
mediaPlayer.start();
-----------------------------------------------------------------------

Whether it may be a mistake in playlist? Please help me.Can you please tell me any Bluray disc image that is having clips and playlist files to check the code. And please tell me where to enable the next clip. I will be very thankful to you. And sorry for disturbing again and again with lots of questions.

Thank You
lingesh

lingeswaran
Offline
Joined: 2010-05-19

hi,

Can anyone help me in doing the steps what flightdown proposed above. What i have done is, i have tried the progressive playlist that is given in the HDCookbook repository. I cant able to add another progressive asset in the manifest.xml.. Can we add more streams to the manifest file? thats my first question..

My second question is, how to enable the clip? i have downloaded another pair of manifest.xml and manifest.sf during the playback of the current clip that is from vfs.jar( thats containing 00000.mpls, 00001.clpi, 00001.m2ts, manifest.xml, manifest.sf) file. Can we do vfs update with those files(that is 00001.mpls, 00002.clpi, 00002.m2ts). i have done the update but its throwing org.bluray.vfs.preparingFailedException.

I think the manifest.xml and manifest.sf files are not matching with the files correctly. But i have tested them with vfs.jar file. Its correctly unzipped from jar to BUDA and played. I dont know why its throwing exception when i do the vfs update from server with the same files.

And i'm having another doubt. how to create a new playlist file. i have gone through the playlist.xml . how to do that? and how to map its corresponding clip file and stream??

Please i have been searching these things for the last one month. please help me in doing this. Do anyone know the steps? so that i can correct myself.

I will be very thankful if i get any help from anyone. And sorry for my poor english.

i need your help.

Thank you,
lingesh

chihiro_saito
Offline
Joined: 2006-11-08

Hi Quirino,

You can have as many clips as you like for the progressive playlist. Just make sure that when you change bumf.xml (manifest.xml I guess, the mapping file for VFS update), you are also regenerating bumf.sf with your disc's root certificate, as it's the signature file that ensures the integrity of the xml file.

Clips need to be enabled only before the playback for the progressive playlist, which is after the VFS update succeeds. It's just a method call, VFSManager.enableClip() or something like that. It sounds like you're having trouble with VFS update itself and not with enabling the clip.

For the structure of playlist and how it maps to the clips, your most reliable source is probably the BD-ROM specification.

Best,
Chihiro

chihiro_saito
Offline
Joined: 2006-11-08

Sorry, this message is for lingesh.

lingeswaran
Offline
Joined: 2010-05-19

Hi Chihiro,

Thank you very much for your quick reply. Yes you are correct. i'm failing in VFS updation itself. I think the manifest.xml file is replaced as bumf.xml after a successful VFS updation. Is it correct? Now i want to know how to add another stream to manifest.xml file as a ProgressivePlaylist asset.

I have gone through your code in the progressive playlist. In creating Generating-vfs.xml fie, i read the following code :

description="generate certificates for bumf files">
















basedir="${build.dir}/VFS"/>

=> In the above code, i dont know how to add the stream which is going to be downloaded from server and enabled after the 00001.m2t file( that is in the vfs.jar ).? But i have added corresponding .clip file and .m2ts files in the project folders in /bdmv/BDMV/PLAYLIST and in /bdmv/BDMV/STREAM

Can you please help me how to add a stream to manifest file as a progressive asset.? I think if it is a progressive asset only, we can able to enable the stream after the current clip it. is it right?

Please help me. And thanks for your response. And i have seen your video(Get started with bdj application) and your code in HDCookbook repository. all are amazing. Great work Chihiro. Thanks for helping people like me.

Thank you,

lingesh

chihiro_saito
Offline
Joined: 2006-11-08

Hi lingesh,

In that example, manifest.xml is generated, and then signed immediately (
, followed by
). So if you want to add a new set of streams to manifest.xml, then you'd either have to work with the project's structure to add needed files in the right place and invoke bumfgenerator.jar with the right arguments, or change the build file sequence around to work with pre-existing manifest.xml instead.

For that Progressive Playlist example to have your streams included, you want vfs.jar to contain:

- first of all, your clips, say 00002.m2t and 00002.clp
- manifest.xml to refer to the above clip that you've added
- manifest.sf to be generated based on the above manifest.xml
- 00000.mpl (Playlist) to contain the info for your clip, 00002, so that the xlet can select it during the runtime.

Chihiro

lingeswaran
Offline
Joined: 2010-05-19

Hi Chihiro,

Thanks for your valuable information. Sorry for asking questions again in the same area. Now only i'm getting clear in some aspects. As you told, I have made some updations in the project in the following places.

1) i have added the contents to the vfs,jar and in the manifest.xml file [b](application_directory/bdmv/JAR/vfs.jar)[/b] before building the application. Is it the right path i'm updating.?

2) In the playlist.xml file i have added another playitem by making its id="1" and clipName as "00002" ( Will it generate two [b].mpls[/b] or a single .mpls file.? )

3) In Generate-vfs.xml file i have copied the 00002.clpi and 00002.m2ts files from bdmv/BDMV/CLIPINF/ to /vfstmp/BDMV/ directory. (i cant able to add 00001.mpls file, since only one 00000.mpls file is created after the built)

4) For generating another playlist whether i have to add any content in Generate-disImage.xml in the following [b]generate-playlist[/b] target.




[b]
[/b]

[u]like [/u]

5) Then whether i have to change the contents in the generate-vfs.xml file in the following code.




[b]

[/b]

=>[u] whether i need to add the stream as :[/u]

I have another important doubt. Now I can able to download the 00002 contents from server during the playback of 00001.m2ts stream. After all above settings, when we run the application, [b]Can i download the 00002.m2ts file from server instead of unzipping from vfs.jar and enable them to play? Since i need to have many clips to play from server. Will it work? Or is it possible?[/b]

If possible means, only one time VFS updation is enough i think. Is it right? Last question is after played all the clips, can we play them all again from the first clip?

Sorry mam for asking so many questions. I dont have a choice. Because, this forum and your valuable informations are the only source for me to develop this application.

Expecting your reply. Thank you so much for your help.

lingesh

flightdown
Offline
Joined: 2010-04-06

Hi all,

I solved for my problem, now I'm able to download, enable clip and play the content.
My actual solution is that (but i think isn't the better) restart the title after the VFS is updated, so below the list of what I do to play a content:
1. reset VFS
2. erase VFS
3. get content from HTTP
4. update VFS
5. restart current title
6. enable clip
7. play

My goal now is to remove the fifth step.
Any idea about?
I bad understand the step to have to perform to play a progressive play list?

Thanks for any help.

Cheers, Quirino

Joe Rice

Unfortunately it's required per spec to do a title change or restart (with all Xlets destroyed and restarted) for VFS updates. See BD-ROM 3-1 chapter 3.7, which covers the whole flow extensively.

Joe

On May 6, 2010, at 8:40 AM, bd-j-dev@mobileandembedded.org wrote:

> Hi all,
>
> I solved for my problem, now I'm able to download, enable clip and play the content.
> My actual solution is that (but i think isn't the better) restart the title after the VFS is updated, so below the list of what I do to play a content:
> 1. reset VFS
> 2. erase VFS
> 3. get content from HTTP
> 4. update VFS
> 5. restart current title
> 6. enable clip
> 7. play
>
> My goal now is to remove the fifth step.
> Any idea about?
> I bad understand the step to have to perform to play a progressive play list?
>
> Thanks for any help.
>
> Cheers, Quirino
> [Message sent by forum member 'flightdown']
>
> http://forums.java.net/jive/thread.jspa?messageID=453573
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
> For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net