Today I’m thrilled to announce that Adobe Flash Player 10.1 is now available for Windows, Mac, and Linux operating systems. You can get it now. Flash Player 10.1 for Android will be coming later this month – the beta release is currently available in the Android Market.
In this post, I’d like to share some of the top new PC-specific features, many of which have mobile implications as well, as I discussed in an earlier blog post about the engineering efforts behind Flash Player 10.1. In this post, I’ll cover the work we did to improve performance, power management and video, and discuss the new multi-touch and private browsing capabilities, as well as our work to provide a better Flash Player experience for Mac users.
Performance and Power Management
With Flash Player 10.1 we aligned our development efforts to create a single runtime that works across desktops and devices. Performance and power efficiency was a huge focus since different devices have varying sized processors and memory, and we needed to ensure Flash Player 10.1 would work across all of them. So we made a number of changes to Flash Player that directly translate to faster execution and reduced resource consumption. We achieved some large gains in reducing the amount of memory used at runtime, particularly for bitmap-intensive apps. The ActionScript virtual machine received some targeted optimizations, which directly benefit typed AS3 code. And, our release wouldn’t be complete if we didn’t improve the garbage collector – where we tuned its behavior to run more efficiently and better amortize its processing over the application’s lifetime.
As noted above, the team invested a lot of time in memory optimization. Tabbed browsing is common for PC users, who often have many pages open in their browser at the same time. This is a great timesaver but also uses up lots of RAM. With Flash Player 10.1, we added new functionality that detects when memory is running low. Now, content that runs in Flash Player will automatically shut down when the available memory is running low.
The Flash Player team made a number of improvements to conserve resources, reduce power usage and extend battery life. For example, Flash Player can now automatically reduce the power consumption for content running in the background on a non-visible browser tab to improve performance when users are multitasking. In cases where audio is playing in the background, playback fidelity is maintained.
Some significant changes were made to Flash Player 10.1 to re-architect the system for managing timers and events. Without going into the details here (Tinic Uro will share a post next week that covers this topic more comprehensively), the end result is that apps for Flash Player and Adobe AIR will use significantly less CPU when the content is idle and consume less power in the process. These improvements are most pronounced on Macs.
From hardware decoding to better buffering, p2p video, multicast and http streaming — there are many improvements in Flash Player 10.1 with regards to web video delivery and playback. For desktops, Flash Player 10.1 introduces hardware-based H.264 video decoding to deliver smooth, high quality video with minimal overhead across supported operating systems. Using available hardware to decode video offloads tasks from the CPU, improving video playback performance, offering smoother frame rates, and reducing system resource utilization.
The addition of HTTP Dynamic Streaming expands the delivery options for high quality live and on-demand media with full adaptive bitrate functionality. This new option enables media publishers to leverage standard HTTP networking infrastructure to help increase capacity, reach, and quality of service for video delivery using standards-based MP4 fragments. Using the Open Source Media Framework, Flash developers can easily leverage this new technology to deploy your video much more quickly. You can download the free tools for HTTP Dynamic Streaming here.
Peer-assisted networking and Multicast is available for Flash Player 10.1 by leveraging Real Time Media Flow Protocol (RTMFP), which enables peers on a network to assist in real time communication and content delivery over the web. Flash Player now supports peer-assisted networking groups, which allows an application to segment its users and send messages and data between members of the group. Application level multicast allows for one (or a few)-to-many streaming of continuous live video streams as well as real-time audio/video chat applications.
Enhanced RTMP streaming and buffering features will also greatly improve the video viewing experience for Flash Player users. Stream reconnect lets Flash Player 10.1 allow an RTMP stream to continue to play through the buffer even if the connection is disrupted, thereby making media experiences more tolerant of short term network failures and enabling uninterrupted video playback. When a connection is re-established, the stream resumes playback. Developers can add stream re-connection logic in ActionScript to re-establish server connection and resume streaming with limited disruption in the video.
New to Flash Player 10.1, Smart seek can easily make using Flash Player a DVR-like experience. Smart seek allows the video viewer to seek within a new “back” buffer so viewers can easily rewind or fast forward video without Flash Player calling back to the server, thus reducing the start time after a seek. Smart seek can speed up seeking performance of streamed videos and enable the creation of slow motion, double time, or “instant replay” experiences for streaming video. With buffered stream catch-up, developers can set a target latency threshold that triggers slightly accelerated video playback to help ensure that live video streaming stays in sync with real time over extended playback periods. Finally, Fast Switch benefits Dynamic Streaming with RTMP to improve switching times between bitrates, reducing the time to receive the best viewing experience for available bandwidth and processing speed. Users no longer need to wait for the buffer to play through, which can result in a faster bitrate transition time and an uninterrupted video playback experience, regardless of bandwidth fluctuations or client computing power.
Many companies are beginning to rollout touch-enabled devices, and not just smartphones, but tablets as well as PCs like the HP Touchsmart. With Flash Player 10.1, you can take advantage of the latest hardware and operating system user interaction capabilities using a new set of ActionScript 3 APIs for multi-touch and native gesture events, creating the ability to interact with multiple objects simultaneously or work with native gestures, such as pinch, scroll, rotate, scale, and two-finger tap. Multi-touch may be one of the most important features for developers and designers creating new content with the Flash Platform, knowing your implementations may be easily extended to devices with touch capabilities. To get started using multi-touch with Flash Player 10.1, check out this ADC resource.
Browser Privacy Mode
Flash Player 10.1 abides by the host browser’s private browsing mode (where local data and browsing activity are not cached on the local system) providing a consistent private browsing mechanism between SWF and HTML content. Private local shared objects (LSOs) behave like their traditional variants as long as Flash Player is in memory, and LSOs created during private browsing are removed when the user returns to conventional browsing mode. Existing shared objects are preserved but inaccessible until private browsing is turned off.
Our Mac engineers, with some help from the Safari team, made significant changes to Flash Player for Macs. Here’s a partial list of the work we completed for Argo. First and foremost, Flash Player 10.1 is a full-fledged Cocoa app (though legacy Carbon support remains for some browsers that require it). We now leverage Cocoa events, use Cocoa UI for our dialogs, leverage Core Audio for sound, Core Graphics for printing support, and use Core Foundation for bundle-style text.
Mac performance was also an explicit focus for us. One improvement we made is the use of a double-buffered OpenGL context for improved full screen playback efficiency. We also investigated a number of compile-time optimizations using Xcode to improve our overall execution speed of Flash Player on Macs. Rendering performance was improved by our use of Core Animation. For Macs running OS X 10.6 or greater, we leverage the hardware acceleration in Core Animation to dramatically improve the efficiency of displaying web pages which combine both SWF and HTML content. The details and performance implications of the Core Animation work are outlined in Tinic’s blog post . The overall performance improvements of Flash Player for Mac users will result in faster video playback, more efficient CPU utilization, and greater battery life.
As you can see, don’t let the version number fool you! Flash Player 10.1 is more than a “dot upgrade.” It was a monumental undertaking including some significant architectural improvements and a long list of enhancements that will help the more than 3 million Flash designers and developers continue to move web innovation forward. We can’t wait to see what you develop. Be sure to check out the new Flash Player 10.1 product pages and ADC content to learn more.
Additionally, today we announced the immediate availability of the Adobe AIR 2 runtime. Starting today, you can download and install the new version at get.adobe.com/air/. Developers can now deploy applications built for AIR 2 on Mac OS, Windows and Linux. Read more about AIR 2 on the AIR Team blog .
Flash Player Engineering