Advertisement Demo & Buffering

Hello:
I am using SMP (1.6.3) to embed a live F4M feed in a page.
When I do this on its own, with minimal flashvars, it works as expected, but I need to include a video disclaimer:
swf=/strobe/StrobeMediaPlayback.swf&src=videopath.f4m&width=320&height=240&autoPlay=true
When I add references to the Advertisement Plugin and the disclaimer, I get audio but no video:
plugin_ads=/strobe/AdvertisementPlugin.swf&ads_preroll=/videoupload/DISCLAIMER.flv
I am able to get video by setting:
enableStageVideo=false
At this point, the weird behaviour starts:
The pre-roll disclaimer plays as expected;
The live stream starts as expected, with a time indicator of something like 00:01 / 00:59 (always around a minute);
When the current time indicator gets within about 5 seconds (00:54 / 00:59) of the end/buffered(?) time indicator, the second number jumps to around 00:55 / 02:54, the "Buffering" indicator appears, and the video freezes;
If no action is taken by the user, the video stays in this state indefinitely;
If the user clicks on the time slider, the video continues normally;
Occasionally (1 in 20 tries), this user interaction has to be repeated when the video freezes ("Buffering") again.
I have tried various combinations of flashvars to try to get the buffering/freezing to stop, but the only thing that seems to work is removing the plugin & disclaimer entirely.
Can anyone suggest flashvar settings that will sort out the buffering situation?
Any help would be much appreciated.
Scott

Silviu:
Your description of the issue makes sense to me, but I still have some noob-ish questions/comments:
What tool are you using to analyze the stream, to identify 404s, etc.?  Is it something that's freely available?
I have installed Strobe Media Playback 1.6, Sprint 3, so I believe I am up-to-date;
You mentioned re-writitng the plugin; is the source for the plugin included in the download package?  After a quick scan, it's not obvious to me where that would be...
I did forward your last post to the administrators of the live stream.  I'm not sure if their response addressed your points.  Can you let me know if anything was lost in translation?
8/29/2011 2:01 pm >>>
Hi  Scott,
             This may have to do with the DVR functionality. For the  moment, please disable DVR functionality on the player. Second, the Live Streams  are cached, so if you want to test with the direct stream with no cache, change  the ip to XXX.XXX.XXX.122 to XXX.XXX.XXX.123 (I might have those reversed). 
Sent: August 29, 2011 10:17 AM
Hi guys:
I have been having an issue with the disclaimer for the live stream, and  have been in touch with Adobe to get some help with their plug-in.  You can view  the thread at:
http://forums.adobe.com/message/3889440#3889440
The Adobe employee who responded to the thread describes the issue as  follows:
The main player loads the live stream, but then immediately pauses it and  loads the advertisement plug-in, which plays the disclaimer;
Once the disclaimer has played, the main player tries to pick up the stream  at the point at which it was paused;
The server starts responding with 404 for some older fragments, possibly  indicating that they have already been deleted.
How long are fragments of the live stream kept on the server after they are  initially requested?  Can this be increased to account for a 45 s disclaimer,  without negatively impacting performance?
I will keep up the dialogue with the guy from Adobe to get more information  on work-arounds (until he gets tired of my newbie questions), but if we can  address the issue by adjusting a setting on the server, it would be preferable  to hacking the plug-in (one of his suggestions).
Let me know what you think.
Thanks,
Scott

Similar Messages

  • Advertisement Demo

    Hi:
    I need to embed a streaming video preceded by a disclaimer.  The Advertisement plug-in demo at the below address seems to fit the bill:
    http://osmf.org/dev/latest/advertisement-demo.html (in particular the pre-roll ad)
    I downloaded Strobe Media Playback from:
    http://osmf.org/strobe_mediaplayback.html
    Next, I tried to recreate the demo by downloading the page and the accompanying javascript files.  I couldn't find the plug-in file anywhere except http://osmf.org/dev/latest/AdvertisementPlugin.swf, so I just saved the file from Firefox (I've never tried that before with an SWF file, but it seemed to work).
    So, with all of the files in place, and correcting the paths within the JavaScript, I have the videos playing with various parameters, but I cannot successfully load any ads.  Each of the videos loads just as in the demo, but the ads simply don't appear.  It seems to me that the plug-in's SWF file is not loading, and nothing I have tried has worked.
    Here are my questions:
    - Is saving the SWF file within a browser a valid way of acquiring the plug-in SWF?
    - Is there more to installing this plug-in than putting the SWF in the right place?
    - The parameter showVideoInfoOverlayOnStartUp is also not working; I don't need this, but are the issues related?
    - Is there a simpler way to embed a video with a pre-roll ad?
    Any feedback would be appreciated.

    Andrian,
    Thanks for your helpful response.  I am still sifting through the myriad of information in an effort to find the best path to move forward.  Although it was not my initial intention to become engrossed in learning video player development, I have none-the-less been on this journey for awhile testing out basic Flex builds and then moving on to a trial of Flash Builder and OSMF.  Still a newcomer to flex/flash, my true goal is to find a non-branded video player “widget” that can be configured via object/embed tags to play copyrighted video content along with pre-roll and post-roll ads.  I’m not looking to re-invent the wheel, but simply to satisfy this requirement.  Perhaps you are aware of an existing player(s) that will suit this need?
    I’ve recently been looking into the VAST/MAST plugins and am wondering if this might be the way to go?  These seem centered around flexibility with third party providers, which is not my intention at this juncture, although it could become useful down the road.  From what I understand, it would require some reconfiguration of my web application to generate XML files in the correct format to feed to the plugin.
    Currently, we are using .flv format for both our videos and advertisements.  No real basis for this, and it could be changed as our understanding of the best practices surrounding compatibility, quality, and other unknowns are clarified.
    Thanks again.

  • Strobe Media Playback 1.6.328 not working in Firefox

    Hi All,
    latest version of SMP 1.6.328 works fine in Chrome, Safari & Explorer however in Firefox the player does not appear.
    I am re-skinning the player via xml and using RTMP dynamic video stream source via f4m file.
    All browsers are upto date and all have the latest Flashplayer versions installed.
    If I fall back to SMP version 1.6.274 everything works fine!
    Another thing I found was that the advertisment demo did not work when using Flashplayer 11 although again, it does  when using an older version.
    Any ideas?
    Many thanks
    NorfolkSignman

    Hi,
    Yes.the versions 11.1.1.6 and 11.1.1.6.8 pivot table and table prompts are not working in Firefox.
    Bug 14781767 - QA: PROMPTS: RUNTIME PROMPTS IS NOT WORKING IN FIREFOX 16 has been fixed in the latest release of OBIEE 11.1.1.6.8
    and the latest version 11.1.1.7.0 is working fine with pivot table and table prompts in Mozilla Firefox..
    Please mark if it correct/helpful

  • Add Plugin to Strobe Media Playback

    Hi,
        I want to allow advertisement in my player. For that i planned to implement ad plug-in to stobe media playback..I tried to follow the guide from link http://osmf.org/dev/latest/advertisement-demo.html 
       But I couldn't open the page(page cannot be displayed)..
      I want to add that plugin..But didn't know how to do?Anybody plz help me.

    Hi,
       Thank you for your response.
        Couldn't open the page http://osmf.org/dev/latest/advertisement-demo.html (Page cannot be displayed ) from 26th May to the till date 28th May....When will it rectify? In how many days it will solve? Plz let me know. I am eager to add the plugin by following  that guide...

  • VAST complaint mid roll Ads

    Hi,
      We are using Strobe Media Player on our website and we want to explore the Ad driven monetization thru the same. I did go thru the example file  "advertisement-demo.html", to my observation the mid roll ads are playing well for a predefined .flv file.
      The below are my questions
      1. How can I deliver VAST compliant video advertisements which are mid-roll in nature?
      2. Can I also display VAST compliant banner Ads on the SMP player when the video is being played?
      Look forward to seeing reply
    Thanks,
    Flixbuf

    Hi,
    You can start with the presentation the Brian Riggs did at Max this year:
    http://tv.adobe.com/watch/max-2010-develop/making-video-pay-with-advertising-and-analytics
    -Andrian

  • Buffering icon appears when including a video demo in a project published as mp4.

    I have a project containing slides and video demos.  I inserted the videos as CPVC slides into the project.  When I play the project in Captivate, all works fine.  When I publish to video (mp4) and play, before each video starts, I get the buffering icon.  This really disrupts the flow.  Is there any way to hide or get rid of the icon?

    Hi, r_higgens
    I ran into this problem myself and fortunately a fine Adobe engineer (Tata M.A.S.B. Sankaram) was kind enough to point out a workaround. I don't think this is official, so be careful in using it.
    Basically the buffering icon is the animation that is shown while loading the video. This would normally be helpful to explain while the video is loading, but in a final publish to MP4, it is distracting. Here's the workaround:
    Go to <Captivate install location>\Gallery\SWF Animation\
    Re-name “VideoLoadingAnimation.swf” to “Old_VideoLoadingAnimation.swf”
    Publish
    I no longer see the Loading animation!
    Best practice would be to go back and rename the swf to the original name after publishing the output for distribution.
    Thanks
    John Daigle
    Adobe Certified RoboHelp and Captivate Instructor
    Evergreen, Colorado
    www.showmethedemo.com

  • Insert advertisement in a flash player while the video buffers

    Hi!,
    I have a web site with videos and they will be streamed thru
    a flash player. Now my requirement is basically a skin with the
    following feature..
    A JPEG advertisement is displayed while the video connects
    and buffers. Once the video is ready, the JPEG is removed and the
    video plays. At the completion of the video, the JPEG is replaced.
    I shall be using a banner ad management software so as to make a
    geo targeting ad..
    Well my requirement is that I need to have static
    advertisement displayed while the video connects and buffers. JPEG
    is removed and the video plays. At the completion of the video, the
    JPEG is replaced.
    Can anyone help me as to how it is done OR give me script for
    the same.
    Please feel free to contact me on my email..
    [email protected]
    regards,
    Ajeet

    Since you will be constructing a Flash swf to house the FLV
    Component for the video playback, you could simple load the
    jpeg(banner) into a MovieClip that resides on a level above the
    Player instance. You could use the Player's event handlers to
    control when the MovieClip is 'visible', and define a system to
    load the banner content dynamically, working with your management
    software.
    I don't think you can place a static image 'into' the FLV
    while the next video is loading (I could be wrong), but you could
    easily make it appear that way, by constructing the MC
    accordingly.

  • Inserting an advertisement in the flash player while the video buffers

    Hi!,
    I have a web site with videos and they will be streamed thru
    a flash player. Now my requirement is basically a skin with the
    following feature..
    A JPEG advertisement is displayed while the video connects
    and buffers. Once the video is ready, the JPEG is removed and the
    video plays. At the completion of the video, the JPEG is replaced.
    I shall be using a banner ad management software so as to make a
    geo targeting ad..
    Well my requirement is that I need to have static
    advertisement displayed while the video connects and buffers. JPEG
    is removed and the video plays. At the completion of the video, the
    JPEG is replaced.
    Can anyone help me as to how it is done OR give me script for
    the same.
    Please feel free to contact me on my email..
    [email protected]
    regards,
    Ajeet

    Since you will be constructing a Flash swf to house the FLV
    Component for the video playback, you could simple load the
    jpeg(banner) into a MovieClip that resides on a level above the
    Player instance. You could use the Player's event handlers to
    control when the MovieClip is 'visible', and define a system to
    load the banner content dynamically, working with your management
    software.
    I don't think you can place a static image 'into' the FLV
    while the next video is loading (I could be wrong), but you could
    easily make it appear that way, by constructing the MC
    accordingly.

  • Inserting an advertisment in the flash player while the video buffers

    Hi!,
    I have a web site with videos and they will be streamed thru
    a flash player. Now my requirement is basically a skin with the
    following feature..
    A JPEG advertisement is displayed while the video connects
    and buffers. Once the video is ready, the JPEG is removed and the
    video plays. At the completion of the video, the JPEG is replaced.
    I shall be using a banner ad management software so as to make a
    geo targeting ad..
    Well my requirement is that I need to have static
    advertisement displayed while the video connects and buffers. JPEG
    is removed and the video plays. At the completion of the video, the
    JPEG is replaced.
    Can anyone help me as to how it is done OR give me script for
    the same.
    Please feel free to contact me on my email..
    [email protected]
    regards,
    Ajeet

    Since you will be constructing a Flash swf to house the FLV
    Component for the video playback, you could simple load the
    jpeg(banner) into a MovieClip that resides on a level above the
    Player instance. You could use the Player's event handlers to
    control when the MovieClip is 'visible', and define a system to
    load the banner content dynamically, working with your management
    software.
    I don't think you can place a static image 'into' the FLV
    while the next video is loading (I could be wrong), but you could
    easily make it appear that way, by constructing the MC
    accordingly.

  • I can't compile the JavaMail demo

    Can somebody please help me out. I am trying to compile one of the demos in JavaMail. It compiles successfully but it won't execute. It keeps giving me the normal exception when there is no 'main()' in a code. The code is below:
    import java.util.*;
    import java.io.*;
    import javax.mail.*;
    import javax.mail.event.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    * Demo app that exercises the Message interfaces.
    * Show information about and contents of messages.
    * @author John Mani
    * @author Bill Shannon
    public class msgshow {
    static String protocol;
    static String host = null;
    static String user = null;
    static String password = null;
    static String mbox = null;
    static String url = null;
    static int port = -1;
    static boolean verbose = false;
    static boolean debug = false;
    static boolean showStructure = false;
    static boolean showMessage = false;
    static boolean showAlert = false;
    static boolean saveAttachments = false;
    static int attnum = 1;
    public static void main(String argv[]) {
         int msgnum = -1;
         int optind;
         InputStream msgStream = System.in;
         for (optind = 0; optind < argv.length; optind++) {
         if (argv[optind].equals("-T")) {
              protocol = argv[++optind];
         } else if (argv[optind].equals("-H")) {
              host = argv[++optind];
         } else if (argv[optind].equals("-U")) {
              user = argv[++optind];
         } else if (argv[optind].equals("-P")) {
              password = argv[++optind];
         } else if (argv[optind].equals("-v")) {
              verbose = true;
         } else if (argv[optind].equals("-D")) {
              debug = true;
         } else if (argv[optind].equals("-f")) {
              mbox = argv[++optind];
         } else if (argv[optind].equals("-L")) {
              url = argv[++optind];
         } else if (argv[optind].equals("-p")) {
              port = Integer.parseInt(argv[++optind]);
         } else if (argv[optind].equals("-s")) {
              showStructure = true;
         } else if (argv[optind].equals("-S")) {
              saveAttachments = true;
         } else if (argv[optind].equals("-m")) {
              showMessage = true;
         } else if (argv[optind].equals("-a")) {
              showAlert = true;
         } else if (argv[optind].equals("--")) {
              optind++;
              break;
         } else if (argv[optind].startsWith("-")) {
              System.out.println(
    "Usage: msgshow [-L url] [-T protocol] [-H host] [-p port] [-U user]");
              System.out.println(
    "\t[-P password] [-f mailbox] [msgnum] [-v] [-D] [-s] [-S] [-a]");
              System.out.println(
    "or msgshow -m [-v] [-D] [-s] [-S] [-f msg-file]");
              System.exit(1);
         } else {
              break;
    try {
         if (optind < argv.length)
         msgnum = Integer.parseInt(argv[optind]);
         // Get a Properties object
         Properties props = System.getProperties();
         // Get a Session object
         Session session = Session.getInstance(props, null);
         session.setDebug(debug);
         if (showMessage) {
              MimeMessage msg;
              if (mbox != null)
              msg = new MimeMessage(session,
                   new BufferedInputStream(new FileInputStream(mbox)));
              else
              msg = new MimeMessage(session, msgStream);
              dumpPart(msg);
              System.exit(0);
         // Get a Store object
         Store store = null;
         if (url != null) {
              URLName urln = new URLName(url);
              store = session.getStore(urln);
              if (showAlert) {
              store.addStoreListener(new StoreListener() {
                   public void notification(StoreEvent e) {
                   String s;
                   if (e.getMessageType() == StoreEvent.ALERT)
                        s = "ALERT: ";
                   else
                        s = "NOTICE: ";
                   System.out.println(s + e.getMessage());
              store.connect();
         } else {
              if (protocol != null)          
              store = session.getStore(protocol);
              else
              store = session.getStore();
              // Connect
              if (host != null || user != null || password != null)
              store.connect(host, port, user, password);
              else
              store.connect();
         // Open the Folder
         Folder folder = store.getDefaultFolder();
         if (folder == null) {
         System.out.println("No default folder");
         System.exit(1);
         if (mbox == null)
              mbox = "INBOX";
         folder = folder.getFolder(mbox);
         if (folder == null) {
         System.out.println("Invalid folder");
         System.exit(1);
         // try to open read/write and if that fails try read-only
         try {
              folder.open(Folder.READ_WRITE);
         } catch (MessagingException ex) {
              folder.open(Folder.READ_ONLY);
         int totalMessages = folder.getMessageCount();
         if (totalMessages == 0) {
              System.out.println("Empty folder");
              folder.close(false);
              store.close();
              System.exit(1);
         if (verbose) {
              int newMessages = folder.getNewMessageCount();
              System.out.println("Total messages = " + totalMessages);
              System.out.println("New messages = " + newMessages);
              System.out.println("-------------------------------");
         if (msgnum == -1) {
              // Attributes & Flags for all messages ..
              Message[] msgs = folder.getMessages();
              // Use a suitable FetchProfile
              FetchProfile fp = new FetchProfile();
              fp.add(FetchProfile.Item.ENVELOPE);
              fp.add(FetchProfile.Item.FLAGS);
              fp.add("X-Mailer");
              folder.fetch(msgs, fp);
              for (int i = 0; i < msgs.length; i++) {
              System.out.println("--------------------------");
              System.out.println("MESSAGE #" + (i + 1) + ":");
              dumpEnvelope(msgs);
              // dumpPart(msgs[i]);
         } else {
              System.out.println("Getting message number: " + msgnum);
              Message m = null;
              try {
              m = folder.getMessage(msgnum);
              dumpPart(m);
              } catch (IndexOutOfBoundsException iex) {
              System.out.println("Message number out of range");
         folder.close(false);
         store.close();
         } catch (Exception ex) {
         System.out.println("Oops, got exception! " + ex.getMessage());
         ex.printStackTrace();
         System.exit(1);
         System.exit(0);
    public static void dumpPart(Part p) throws Exception {
         if (p instanceof Message)
         dumpEnvelope((Message)p);
         /** Dump input stream ..
         InputStream is = p.getInputStream();
         // If "is" is not already buffered, wrap a BufferedInputStream
         // around it.
         if (!(is instanceof BufferedInputStream))
         is = new BufferedInputStream(is);
         int c;
         while ((c = is.read()) != -1)
         System.out.write(c);
         String ct = p.getContentType();
         try {
         pr("CONTENT-TYPE: " + (new ContentType(ct)).toString());
         } catch (ParseException pex) {
         pr("BAD CONTENT-TYPE: " + ct);
         String filename = p.getFileName();
         if (filename != null)
         pr("FILENAME: " + filename);
         * Using isMimeType to determine the content type avoids
         * fetching the actual content data until we need it.
         if (p.isMimeType("text/plain")) {
         pr("This is plain text");
         pr("---------------------------");
         if (!showStructure && !saveAttachments)
              System.out.println((String)p.getContent());
         } else if (p.isMimeType("multipart/*")) {
         pr("This is a Multipart");
         pr("---------------------------");
         Multipart mp = (Multipart)p.getContent();
         level++;
         int count = mp.getCount();
         for (int i = 0; i < count; i++)
              dumpPart(mp.getBodyPart(i));
         level--;
         } else if (p.isMimeType("message/rfc822")) {
         pr("This is a Nested Message");
         pr("---------------------------");
         level++;
         dumpPart((Part)p.getContent());
         level--;
         } else {
         if (!showStructure && !saveAttachments) {
              * If we actually want to see the data, and it's not a
              * MIME type we know, fetch it and check its Java type.
              Object o = p.getContent();
              if (o instanceof String) {
              pr("This is a string");
              pr("---------------------------");
              System.out.println((String)o);
              } else if (o instanceof InputStream) {
              pr("This is just an input stream");
              pr("---------------------------");
              InputStream is = (InputStream)o;
              int c;
              while ((c = is.read()) != -1)
                   System.out.write(c);
              } else {
              pr("This is an unknown type");
              pr("---------------------------");
              pr(o.toString());
         } else {
              // just a separator
              pr("---------------------------");
         * If we're saving attachments, write out anything that
         * looks like an attachment into an appropriately named
         * file. Don't overwrite existing files to prevent
         * mistakes.
         if (saveAttachments && level != 0 && !p.isMimeType("multipart/*")) {
         String disp = p.getDisposition();
         // many mailers don't include a Content-Disposition
         if (disp == null || disp.equalsIgnoreCase(Part.ATTACHMENT)) {
              if (filename == null)
              filename = "Attachment" + attnum++;
              pr("Saving attachment to file " + filename);
              try {
              File f = new File(filename);
              if (f.exists())
                   // XXX - could try a series of names
                   throw new IOException("file exists");
              ((MimeBodyPart)p).saveFile(f);
              } catch (IOException ex) {
              pr("Failed to save attachment: " + ex);
              pr("---------------------------");
    public static void dumpEnvelope(Message m) throws Exception {
         pr("This is the message envelope");
         pr("---------------------------");
         Address[] a;
         // FROM
         if ((a = m.getFrom()) != null) {
         for (int j = 0; j < a.length; j++)
              pr("FROM: " + a[j].toString());
         // TO
         if ((a = m.getRecipients(Message.RecipientType.TO)) != null) {
         for (int j = 0; j < a.length; j++) {
              pr("TO: " + a[j].toString());
              InternetAddress ia = (InternetAddress)a[j];
              if (ia.isGroup()) {
              InternetAddress[] aa = ia.getGroup(false);
              for (int k = 0; k < aa.length; k++)
                   pr(" GROUP: " + aa[k].toString());
         // SUBJECT
         pr("SUBJECT: " + m.getSubject());
         // DATE
         Date d = m.getSentDate();
         pr("SendDate: " +
         (d != null ? d.toString() : "UNKNOWN"));
         // FLAGS
         Flags flags = m.getFlags();
         StringBuffer sb = new StringBuffer();
         Flags.Flag[] sf = flags.getSystemFlags(); // get the system flags
         boolean first = true;
         for (int i = 0; i < sf.length; i++) {
         String s;
         Flags.Flag f = sf[i];
         if (f == Flags.Flag.ANSWERED)
              s = "\\Answered";
         else if (f == Flags.Flag.DELETED)
              s = "\\Deleted";
         else if (f == Flags.Flag.DRAFT)
              s = "\\Draft";
         else if (f == Flags.Flag.FLAGGED)
              s = "\\Flagged";
         else if (f == Flags.Flag.RECENT)
              s = "\\Recent";
         else if (f == Flags.Flag.SEEN)
              s = "\\Seen";
         else
              continue;     // skip it
         if (first)
              first = false;
         else
              sb.append(' ');
         sb.append(s);
         String[] uf = flags.getUserFlags(); // get the user flag strings
         for (int i = 0; i < uf.length; i++) {
         if (first)
              first = false;
         else
              sb.append(' ');
         sb.append(uf[i]);
         pr("FLAGS: " + sb.toString());
         // X-MAILER
         String[] hdrs = m.getHeader("X-Mailer");
         if (hdrs != null)
         pr("X-Mailer: " + hdrs[0]);
         else
         pr("X-Mailer NOT available");
    static String indentStr = " ";
    static int level = 0;
    * Print a, possibly indented, string.
    public static void pr(String s) {
         if (showStructure)
         System.out.print(indentStr.substring(0, level * 2));
         System.out.println(s);

    Oh, I didn't specify any command line argument. I don't really get what arguments I should specify. Could please explain it to me. My main objective is to learn and be able to apply this to my personal project.
    One more thing if you don't mind. I was very good at java (then I used Jdk 1.2) but I have lost touch due to not using Java for a very long time. I am also learning to Servlets at the moment but I just can't deploy it. In the past we used deploytool and I could get that to work but I just don't get how to deploy the servlet I wrote.
    Thanks ever so much!

  • OT: Macintosh Users: Beware the misleading advertising for Acrobat 9 Pro Extended

    An important message to Macintosh users who are considering purchasing Acrobat 9:
    I am writing to let you Mac users know that the current marketing for Acrobat Pro is very confusing.
    On the page for Acrobat Pro,
    here.
    there is a very enticing sidebar that says "Consider Upgrading to Acrobat 9 Pro Extended"
    It outlines all the cool things that Extended can do. I had seen some publicity for Extended and so I immediately clicked that button to find out more about this version. It is a very compelling product that has a presentation application, 3D capabilities, and the form creation product Live Cycle Designer.
    I was very excited about this product, when I was lucky to have checked the System Requirements for this product. And was amazed to find that this product is Windows only!
    It is one thing to shove the Mac market off to the side as Acrobat has in the past. For instance, in the past, Acrobat products have provided features for Windows that were missing on the Mac.
    But the current advertising borders on misleading advertising. Rather than just hide the Windows -only features under the same name as the Macintosh product, Adobe has come out with a Windows-only product that doesn't clearly state it is Windows only!
    To publicize a product on a page that is cross platform and then make it very hard to find out that the product is Windows only is terrible. And I guarantee that this will lead to many people ordering something they can not use. And will be very angry about!
    I have written to several people I know at Adobe to complain about this.
    I would suggest that others use the Adobe-feedback page:
    http://www.adobe.com/bin/webfeedback.cgi
    to tell Adobe how this makes you feel.
    Meanwhile, I'm glad that I won't have to shell out the extra money for this Windows-only product.

    Buko,
    I appreciate your support, but it's even worse than you think.
    Here are the features exclusive to Acrobat 9 Pro Extended:
    Combine documents, drawings, e-mail, spreadsheets, and rich media including audio, video, 3D, and maps in a single, compressed PDF Portfolio.
    b The Pro version does not support 3D.
    Create interactive, on-demand presentations Use Adobe Presenter software now included with Adobe Acrobat® 9 Pro Extended software to liven up your slides with video, voice-over, demos, and interactive quizzes, and then output to PDF for reliable, cross-platform sharing.
    b The Pro version does not contain Presenter.
    This is the product I was most interested in.
    Work with expanded 3D features Use new Adobe 3D Reviewer software to combine multiple CAD formats in one assembly; compare a revised design to an earlier version; measure and section on precise geometry; and create exploded views, animations, and balloons. Export your work to 2D vector or raster files or save as PDF.
    b The Pro version does not support any 3D features.
    View and interact with PDF maps Search, measure, and mark up geospatially enabled PDF maps. Discover the longitude and latitude by placing your cursor over a location. Measure PDF maps in kilometers or miles.
    b The Pro version does not support the PDF maps features.
    Create interactive forms with Adobe LiveCycle Designer.
    b The Pro version does not have the LiveCycle Designer application.
    Finally, there is a feature mentioned in the Pro 9 Extended product that I cannot find in the Acrobat Pro 9 features:
    Convert a variety of video formats to FLV for reliable, cross-platform sharing of video, animations, and applications in PDF documents. With native support for Adobe® Flash® technology, no additional media player is necessary for playback.
    b But I can't definitely tell if this feature is in the Pro 9 version.
    As you can see, there are quite a few compelling features in Pro Extended. And I guarantee it is
    b only marketing, and not code,
    that is keeping these features from the Mac market.

  • Adding Text to a Buffered Image

    Hey
    I am trying to add text to a bufferedimage image and have tried a couple of ways.
    I cannot seem to get it to work propely though. Everytime i try, the text appears but the image appears inside the lettering of the text and not under it like i want it to.
    Could someone please explain the best way of place text on TOP of an image as i am really stuck now :(
    Thanks in advanced for any help

    Basically paint your buffered image into a new BufferedImage and then paint in the new text on top.
    Here's a demo.
    import java.awt.*;
    import java.awt.font.*;
    import java.awt.geom.*;
    import java.awt.image.BufferedImage;
    import javax.swing.*;
    public class BufferedImageTest
        public static void main(String[] args)
            ImageGenerator ig = new ImageGenerator();
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(ig.getOriginalImagePanel(), "North");
            f.getContentPane().add(ig.getTextPanel(), "South");
            f.setSize(400,640);
            f.setLocation(200,50);
            f.setVisible(true);
            f.getContentPane().add(ig.getNewImagePanel());
            f.validate();
            f.repaint();
    class ImageGenerator
        JPanel originalPanel = new JPanel()
            public void paintComponent(Graphics g)
                super.paintComponent(g);
                Graphics2D g2 = (Graphics2D)g;
                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                    RenderingHints.VALUE_ANTIALIAS_ON);
                int w = getWidth();
                int h = getHeight();
                g2.setPaint(Color.blue);
                g2.fill(new Rectangle2D.Double(w/16, h/16, w*7/8, h*7/8));
                g2.setPaint(Color.yellow);
                g2.fill(new Rectangle2D.Double(w/8, h/8, w*3/4, h*3/4));
                g2.setPaint(Color.red);
                g2.fill(new Ellipse2D.Double(w/6, h/6, w*2/3, h*2/3));
                g2.setPaint(Color.green);
                g2.draw(new Line2D.Double(w/16, h/16, w*15/16, h*15/16));
        JPanel textPanel = new JPanel()
            Font font = new Font("lucida sans regular", Font.PLAIN, 32);
            String text = "A New Label";
            public void paintComponent(Graphics g)
                super.paintComponent(g);
                Graphics2D g2 = (Graphics2D)g;
                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                    RenderingHints.VALUE_ANTIALIAS_ON);
                g2.setFont(font);
                FontRenderContext frc = g2.getFontRenderContext();
                LineMetrics lm = font.getLineMetrics(text, frc);
                float textWidth = (float)font.getStringBounds(text, frc).getWidth();
                int w = getWidth();
                int h = getHeight();
                float x = (w - textWidth)/2;
                float y = (h + lm.getHeight())/2 - lm.getDescent();
                g2.drawString(text, x, y);
        public ImageGenerator()
            originalPanel.setBackground(Color.white);
            originalPanel.setPreferredSize(new Dimension(300,200));
            textPanel.setOpaque(false);
            textPanel.setPreferredSize(new Dimension(300,200));
        private BufferedImage createNewImage()
            BufferedImage image = new BufferedImage(originalPanel.getWidth(),
                                                    originalPanel.getHeight(),
                                                    BufferedImage.TYPE_INT_RGB);
            Graphics2D g2 = image.createGraphics();
            originalPanel.paint(g2);
            textPanel.paint(g2);
            g2.dispose();
            return image;
        public JPanel getOriginalImagePanel()
            return originalPanel;
        public JPanel getTextPanel()
            return textPanel;
        public JPanel getNewImagePanel()
            JPanel panel = new JPanel()
                BufferedImage image = createNewImage();
                public void paintComponent(Graphics g)
                    super.paintComponent(g);
                    Graphics2D g2 = (Graphics2D)g;
                    g2.drawImage(image, null, 0, 0);
            return panel;
    }

  • Spatial Queries are CPU bound and show very heavy use of query buffers

    Hi,
    Spatial Queries:
    When using tkprof to analyse spatial queries it is clear that
    there are implicit queries being done by Oracle spatial which
    use vast amounts of buffers, and seem unable to cache basic
    information from query to query - thus resulting in our machine
    being CPU bound when stress testing Oracle Spatial, for example
    the example below shows how information which is fixed for a
    table and not likely to change very often is being retrieved
    inefficiently (note the 26729 query buffers being used to do 6
    executions of what should be immediately available!!!):
    TKPROF: Release 8.1.7.0.0 - Production on Tue Oct 16 09:43:38
    2001
    (c) Copyright 2000 Oracle Corporation. All rights reserved.
    SELECT ATTR_NO, ATTR_NAME, ATTR_TYPE_NAME, ATTR_TYPE_OWNER
    FROM
    ALL_TYPE_ATTRS WHERE OWNER = :1 AND TYPE_NAME = :2 ORDER BY
    ATTR_NO
    call count cpu elapsed disk query rows
    Parse 6 0.00 0.01 0 0 0
    Execute 6 0.00 0.01 0 0 0
    Fetch 6 0.23 0.41 0 26729 5
    total 18 0.23 0.43 0 26729 5
    Misses in library cache during parse: 0
    Optimizer goal: CHOOSE
    Parsing user id: 37 (NAGYE)
    Rows Row Source Operation
    0 SORT ORDER BY
    0 FILTER
    1 NESTED LOOPS
    1 NESTED LOOPS
    290 NESTED LOOPS
    290 NESTED LOOPS
    290 NESTED LOOPS
    290 NESTED LOOPS
    290 TABLE ACCESS FULL ATTRIBUTE$
    578 TABLE ACCESS CLUSTER TYPE$
    578 TABLE ACCESS CLUSTER TYPE$
    578 INDEX UNIQUE SCAN (object id 255)
    578 TABLE ACCESS BY INDEX ROWID OBJ$
    578 INDEX RANGE SCAN (object id 35)
    578 TABLE ACCESS CLUSTER USER$
    578 INDEX UNIQUE SCAN (object id 11)
    289 TABLE ACCESS BY INDEX ROWID OBJ$
    578 INDEX RANGE SCAN (object id 35)
    0 TABLE ACCESS CLUSTER USER$
    0 INDEX UNIQUE SCAN (object id 11)
    0 FIXED TABLE FULL X$KZSPR
    0 NESTED LOOPS
    0 FIXED TABLE FULL X$KZSRO
    0 INDEX RANGE SCAN (object id 101)
    error during parse of EXPLAIN PLAN statement
    ORA-01039: insufficient privileges on underlying objects of the
    view
    and again:
    SELECT diminfo, nvl(srid,0)
    FROM
    ALL_SDO_GEOM_METADATA WHERE OWNER = 'NAGYE' AND TABLE_NAME =
    NLS_UPPER('TILE_MED_LINES_MBR') AND '"'||COLUMN_NAME||'"'
    = '"GEOM"'
    call count cpu elapsed disk query
    current rows
    Parse 20 0.00 0.04 0
    0 0 0
    Execute 20 0.00 0.00 0
    0 0 0
    Fetch 20 0.50 0.50 0 5960
    100 20
    total 60 0.50 0.54 0 5960
    100 20
    Misses in library cache during parse: 0
    Optimizer goal: CHOOSE
    Parsing user id: 37 (NAGYE) (recursive depth: 1)
    Rows Row Source Operation
    1 FILTER
    2 TABLE ACCESS BY INDEX ROWID SDO_GEOM_METADATA_TABLE
    2 INDEX RANGE SCAN (object id 24672)
    1 UNION-ALL
    1 FILTER
    1 NESTED LOOPS
    1 NESTED LOOPS
    1 NESTED LOOPS OUTER
    1 NESTED LOOPS OUTER
    1 NESTED LOOPS OUTER
    1 NESTED LOOPS OUTER
    1 NESTED LOOPS
    1 TABLE ACCESS FULL OBJ$
    1 TABLE ACCESS CLUSTER TAB$
    1 INDEX UNIQUE SCAN (object id 3)
    0 TABLE ACCESS BY INDEX ROWID OBJ$
    1 INDEX UNIQUE SCAN (object id 33)
    0 INDEX UNIQUE SCAN (object id 33)
    0 TABLE ACCESS CLUSTER USER$
    1 INDEX UNIQUE SCAN (object id 11)
    1 TABLE ACCESS CLUSTER SEG$
    1 INDEX UNIQUE SCAN (object id 9)
    1 TABLE ACCESS CLUSTER TS$
    1 INDEX UNIQUE SCAN (object id 7)
    1 TABLE ACCESS CLUSTER USER$
    1 INDEX UNIQUE SCAN (object id 11)
    0 FILTER
    0 NESTED LOOPS
    0 NESTED LOOPS OUTER
    0 NESTED LOOPS
    0 TABLE ACCESS FULL USER$
    0 TABLE ACCESS BY INDEX ROWID OBJ$
    0 INDEX RANGE SCAN (object id 34)
    0 INDEX UNIQUE SCAN (object id 97)
    0 INDEX UNIQUE SCAN (object id 96)
    0 FIXED TABLE FULL X$KZSPR
    0 NESTED LOOPS
    0 FIXED TABLE FULL X$KZSRO
    0 INDEX RANGE SCAN (object id 101)
    0 FIXED TABLE FULL X$KZSPR
    0 NESTED LOOPS
    0 FIXED TABLE FULL X$KZSRO
    0 INDEX RANGE SCAN (object id 101)
    error during parse of EXPLAIN PLAN statement
    ORA-01039: insufficient privileges on underlying objects of the
    view
    Note: The actual query being performed is:
    select a.id, a.geom
    from
    tile_med_lines_mbr a where sdo_relate(a.geom,mdsys.sdo_geometry
    (2003,NULL,
    NULL,mdsys.sdo_elem_info_array
    (1,1003,3),mdsys.sdo_ordinate_array(151.21121,
    -33.86325,151.21132,-33.863136)), 'mask=anyinteract
    querytype=WINDOW') =
    'TRUE'
    call count cpu elapsed disk query
    current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.08 0.08 0 4 0 0
    Fetch 5 1.62 21.70 0 56 0 827
    total 7 1.70 21.78 0 60 0 827
    Misses in library cache during parse: 0
    Optimizer goal: CHOOSE
    Parsing user id: 37 (NAGYE)
    Rows Row Source Operation
    827 TABLE ACCESS BY INDEX ROWID TILE_MED_LINES_MBR
    828 DOMAIN INDEX
    Rows Execution Plan
    0 SELECT STATEMENT GOAL: CHOOSE
    827 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF
    'TILE_MED_LINES_MBR'
    828 DOMAIN INDEX OF 'TILE_MLINES_SPIND'
    CPU: none, I/O: none
    call count cpu elapsed disk query
    current rows
    Parse 1 0.00 0.00 0 92
    Execute 1 0.00 0.00 0 22
    Fetch 1 0.00 0.00 38 236
    total 3 0.00 0.00 38 350
    Misses in library cache during parse: 1
    Optimizer goal: CHOOSE
    Parsing user id: 37 (NAGYE)
    Rows Row Source Operation
    12 TABLE ACCESS BY INDEX ROWID ROADELEMENT_MBR
    178 DOMAIN INDEX
    Rows Execution Plan
    0 SELECT STATEMENT GOAL: CHOOSE
    12 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF
    'ROADELEMENT_MBR'
    178 DOMAIN INDEX OF 'RE_MBR_SPIND'
    CPU: none, I/O: none
    Can Oracle improve the performance of Oracle spatial by
    improving the implementation so as to perform alternative
    implicit queries so as not to use these vast amounts of memory?
    Cheers
    Alex Eadie

    Hi Ravi,
    Thankyou for your reply.
    Here are some more details for you:
    Yes the queries are cached in that it gets its data from RAM and
    not from disk however the number of buffers used internally by
    Oracle RDBMS/Spatial is rather large and results in significant
    CPU usage (namely > 5000 per query or >40MByte). Which I'm sure
    you'd agree? Those numerous internal queries taking >10ms CPU
    time each, which is culmulative.
    A single real of ours query of will take between 180ms and 580ms
    depending on the number of results returned.
    An example query is:
    select a.id, a.geom
    from tile_med_lines_mbr a where sdo_relate
    (a.geom,mdsys.sdo_geometry
    (2003,NULL, NULL,mdsys.sdo_elem_info_array
    (1,1003,3),mdsys.sdo_ordinate_array(151.21121,
    -33.86325,151.21132,-33.863136)), 'mask=anyinteract
    querytype=WINDOW') = 'TRUE'
    Our 500Mhz PC Server database can only execute 3 processes
    running these queries simultaneously to go to 100% CPU loaded.
    The disk is hardly utilized.
    The data is the main roads in Sydney, Australia.
    The tables, data and indexes were created as shown below:
    1.     Create the Oracle tables:
    create table tile_med_nodes_mbr (
         id     number not null,
         geom     mdsys.sdo_geometry not null,
         xl     number not null,
         yl     number not null,
         xh     number not null,
         yh     number not null);
    create table tile_med_lines_mbr (
         id     number not null,
         fromid     number not null,
         toid     number not null,
         geom     mdsys.sdo_geometry not null,
         xl     number not null,
         yl     number not null,
         xh     number not null,
         yh     number not null);
    2.     Use the sqlldr Oracle loader utility to load the data
    into Oracle.
    % sqlldr userid=csiro_scats/demo control=nodes.ctl
    % sqlldr userid=csiro_scats/demo control=lines.ctl
    3.     Determine the covering spatial extent for the tile
    mosaic and use this to create the geometry metadata.
    % sqlplus
    SQLPLUS>     set numw 12
    SQLPLUS>     select min(xl), min(yl), max(xh), max(yh)
         from (select xl, yl, xh, yh
              from tile_med_nodes_mbr union
              select xl, yl, xh, yh
              from tile_med_lines_mbr);
    insert into USER_SDO_GEOM_METADATA
         (TABLE_NAME, COLUMN_NAME, DIMINFO)
         VALUES ('TILE_MED_NODES_MBR', 'GEOM',
         MDSYS.SDO_DIM_ARRAY
         (MDSYS.SDO_DIM_ELEMENT('X', 151.21093421,
                   151.21205421, 0.000000050),
         MDSYS.SDO_DIM_ELEMENT('Y', -33.86347146,
                   -33.86234146, 0.000000050)));
    insert into USER_SDO_GEOM_METADATA
         (TABLE_NAME, COLUMN_NAME, DIMINFO)
         VALUES ('TILE_MED_LINES_MBR', 'GEOM',
         MDSYS.SDO_DIM_ARRAY
         (MDSYS.SDO_DIM_ELEMENT('X', 151.21093421,
                   151.21205421, 0.000000050),
         MDSYS.SDO_DIM_ELEMENT('Y', -33.86347146,
                   -33.86234146, 0.000000050)));
    4.     Validate the data loaded:
    create table result
    (UNIQ_ID number, result varchar2(10));
    execute sdo_geom.validate_layer
    ('TILE_MED_NODES_MBR','GEOM','ID','RESULT');
    select result, count(result)
    from RESULT
    group by result;
    truncate table result;
    execute sdo_geom.validate_layer
    ('TILE_MED_LINES_MBR','GEOM','ID','RESULT');
    select result, count(result)
    from RESULT
    group by result;
    drop table result;
    5.     Fix any problems reported in the result table.
    6.     Create a spatial index, use the spatial index advisor to
    determine the sdo_level.
    create index tile_mlines_spind on
    tile_med_lines_mbr (geom) indextype is
    mdsys.spatial_index parameters
    ( 'sdo_level=7,initial=1M,next=1M,pctincrease=0');
    7.     Analyse table:
    analyze table TILE_MED_LINES_MBR compute statistics;
    8.     Find the spatial index table name:
    select sdo_index_table, sdo_column_name
    from user_sdo_index_metadata
    where sdo_index_name in
    (select index_name
    from user_indexes
    where ityp_name = 'SPATIAL_INDEX'
    and table_name = 'TILE_MED_LINES_MBR');
    9.     Analyse spatial index table:
    analyze table TILE_MLINES_SPIND_FL7$
    compute statistics;
    I hope this helps.
    Cheers
    Alex Eadie

  • Where do I find the demo songs?

    Where in Garageband do I find the several Gigabytes of demo songs I installed? I wanted to listen to any royalty free built in songs and see if they would work for an advertising project, (1-3 min. commercials).
    I can find the Chinese Text Editor, but not the demo songs.
    Thanks!

    Do a finder or spotlight search for Garageband and look under the "files" section. The songs (assuming they were installed) will be there.
    Unfortunately, I don't think the songs as they are are royalty free. I may be wrong (prolly am) but I know that you can't reproduce just the loops as they are...which leads me to think that the demo songs, as they are, are off limits too. Read the licensing agreement that came with GB.
    Hope this helps.
    X

  • Demo plug-in keeping logic from launching. HELP!

    I can't get Logic Pro 7.2 to launch. It gets stuck on an Antares avox throat
    demo that I installed months ago. It was never authorized and expired but I never trashed it. I thought I might buy it and get authorization but it's not worth $250. to me. I tossed the old versions and tried to load a new demo but there must be a pref file somewhere that says the demo has expired so I can't get the ten day trial time to trash the demo from my plug-ins manager.
    Am I going to have to reinstall Logic or is there a way to get to the Plug-in
    Manager list and delete avox throat without launching Logic?
    G5 Dual 2.0   Mac OS X (10.4.5)   Logic Pro 7.2

    I did another search and took all the instances of avox out
    of the plugins folder which worked but now I'm having trouble with other authorized plugs like Virtual Guitar 2.
    It seems that sometime they will snag and keep Logic from launching and even crash it but if I relaunch the plugin search continues apparently beyond the culprit plugs and continues. I guess I'll have to reinstall Virtual Guitar 2.
    This will be the third time. Maybe they will come out with a fix for what ever the problem is. Yeah, right! Steinberg is almost as bad as Liquid when it comes to support. I sent Liquid a somewhat angry note about their Liquid Guitar
    plug not being advertised as if it would do more than it does and I have yet to get a reply automated or otherwise.

Maybe you are looking for