Upcoming changes to Flash Player’s extended support release

Beginning August 11th, 2015, we will be upgrading Flash Player’s extended support release from version 13 to version 18.  This change impacts enterprise and IT customers that currently deploy Flash Player using the extended support releases available through our distribution channel.

Adobe makes available the extended support release to organizations that prefer Flash Player stability over new functionality.  We will create a branch of the Flash Player code that we keep up to date with all of the latest security updates, but none of the new features or bug fixes available in our normal release branch.  This allows organizations to certify and stay secure with Flash Player with minimal effort.

To ensure a smooth transition, we encourage IT organizations to thoroughly test our version 18 releases (currently available on labs.adobe.com) over the next couple of months before deploying.

Best Practices for High Performing and Efficient Flash Video

flashvideo

 

Use StageVideo.  Always.

For best video playback performance and to minimize CPU and better battery consumption, using StageVideo for rendering video is strongly recommended.  StageVideo leverages the browser’s hardware accelerated rendering pipeline and GPU wherever available.

Starting with Flash Player 15, and when the swf is compiled for swf version greater than 26, the Flash Player will provide a software version of StageVideo as an automatic failover option when hardware StageVideo is not available.  As such the content does not need to implement a Video object failover.  The Flash Player will always try to use the hardware accelerated StageVideo first and only if the browser version and the GPU version does not support it, then it will automatically fail over to software version without any need to implement any fail overs in the App.

There should no longer be any reason to use the Video object, as StageVideo will always be available.

The StageVideoAvilability in this case will ALWAYS be “available”, the reason will always be “noError”.  If it is not able to support HW StageVideo for some reason and fails over to SW StageVideo, it will indicate that failover with a StageVideoAvailability event, and its property called “driver” will be set to “software”.

Use of wmode=direct is recommended.  For all the newer browsers as mentioned below, all the wmodes will support hardware accelerated StageVideo rendering.  But some older versions of the browsers that do not have hardware rendering support will fail over to software StageVideo if the wmode is not direct.  The only reason to not use wmode=direct will be if the app needs to render html overlays on top of video. Newer browsers will be able to support html overlays on any wModes, but older browsers that do not have hardware rendering support, will not be able to support html overlay for wmode=direct.

On Windows:

IE 11: IE has an accelerated pipeline and the FlashPlayer is HW accelerated in all wmode, so HW StageVideo should always be available.  Note that the decision to use the HW accelerate rendering pipeline reside in IE itself, there are probably cases where it will fallback to older software pipelines when the driver or OS is too old.  It is also possible for the user to disable the HW acceleration in the settings panel.

Firefox: There is currently no HW accelerated pipeline available in Firefox on windows and only wMode direct will have HW StageVideo available all other wMode should failover to SW StageVideo.

Chrome: Pepper has HW acceleration in all wMode, but some restrictions apply.  For example Chrome will refuse to use HW acceleration on Windows XP and it has its own driver blacklisting mechanism.  It is also possible for the user to disable the HW acceleration in the settings panel.  Chrome exposes a somewhat useful page to allow one to see the status of its gpu acceleration: chrome://gpu/

On Mac:

Safari: Apple’s browser uses CoreAnimation to render the HTML pages and all wMode should expose HW StageVideo.

Firefox: This browser also uses CoreAnimation to render the pages and all wModes should expose HW StageVideo.

Chrome: Pepper HW acceleration is available like it is on Windows and all wMode should expose HW StageVideo, with the same limitations as the windows version.

StageVideo should not be used before the availability event is fired.  Before this event, StageVideo is basically not initialized at all.  The timing of this event is somehow dependent on the browser and it should not be guessed.  You cannot base your code on a specific browser/os combination.  This will be true even with the software version of the API.

Just before the StageVideoAvailability event is fired, the StageVideo array is populated with a fixed amount of planes, usually 4.  At that time a stream can be attached to the plane for rendering.

The app should continue to listen for StageVideoAvailability event, if it wants to track HW or SW version of StaegVideo, as the event might be fired again when the status changes.

Once attached to a StageVideo entry, you can play the content and use its properties to move it around, zoom, pan…

 

StageVideo FAQs

  1. Is stageVideos.length>0 even if it’s software StageVideo?
    Yes, length is for stageVideo in general, either hardware or software.  Also, the length of the vector can sometimes be zero.  Rather than polling the length of the stageVideos vector manually, to implement stage video correctly, you should always listen to theStageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY event.  This will inform you about stage video ability.  SW StageVideo is enabled when the swf is compiled for swf version 26 and above, and is supported since Flash player 15.  If so the StageVideoAvilability will ALWAYS be “available”, the reason will always be “noError”.
  2. Is there an API to check if hardware acceleration is enabled (boolean value) or is the presence of stageVideos.length>0 enough?
    Stage video availability event has a property called driver that will be “software” when it is using Software StageVideo.stageVideo.length is not representative of HW or SW StageVideo and should not be used.  With SW StageVideo you can always expect this to be > 0.
  3. How does the value of HW Acceleration in right-click Settings panel impact StageVideo availability?
    It will disable HW acceleration and HW decode. Stage video software and software decode will be used.
  4. What is the best way to check for StageVideo availability before trying to load video content?
    The StageVideoAvailability event is called independent of video playback, so it can be checked at any time.  It is recommended to be checked before it’s used, so it should be checked before it is attached to NetStream.
  5. Is StageVideo available to all streaming formats ?
    Yes, StageVideo rendering is available for progressive, rtmp, appendBytes, or HLS formats.
  6. Where can I find more information on StageVideo?
    Getting started with StageVideo

Clean up NetStream after use

In order to conserve memory usage for video applications, its very important that any GPU or memory resources being consumed by the app are released and cleaned up.

NetStream object holds the buffered video data and handle to HW decoders so its very important that the object is cleaned up after its used.  This is specially important in the case of applications which create multiple NetStream objects and switch between them for displaying ads or to implement video playlists.

To clean up NetStream resources call Netstream.close() which will release all buffers and HW decoders and is ready for re-use if it needs to be recycled for another stream.  If the NetStream isn’t needed anymore, call NetSteam.dispose() instead.  In both the cases, detach the attached StageVideo object to it, by calling StageVideo.attachStream(null) which will also stop video playback and release the StageVideo object for another stream.

Special thanks to Abhinav Kapoor for putting together this article.

April Flash Runtime Updates

Both Flash Player 17 and AIR 17 were updated on April 14th during our planned April release.  This release focuses on security and functional improvements and does not include new functionality.  Flash Player customers that have opted into our automatic update process will receive this release within 24 hours.  AIR runtime customers will see a notification update dialog within 7 days (or the next time you run your AIR based application).  Full details for this release can be found in the our release notes and security bulletin.

Flash Player and AIR 17 Release Notes

Security Bulletin APSB15-06

Attention AIR iOS developers – If you would like to learn how you can use the Adobe Gaming SDK ANE’s in your universal iOS applications, please check out this recent article by our own Abhinav Dhandh!

Gaming SDK ANE’s – Universal 64-bit support

Abhinav provides the reader a high level overview of the included ANE’s and then step by step instructions on how you can modify and rebuild these ANE’s for your projects.

Finally, for those that read the Get AIR blog post by Philomena Dolla back in January, you might have noted that we were at 2.5 billion installations of AIR applications.  A monumental achievement to say the least!  It’s a little less than 3 months later and we’re now at 3.3 billion installations (and over 4 billion installs and updates!)  Congratulations to all of the amazing AIR developers and the enormous success your applications have had across the globe!

Flash Runtime 17 and more!

Flash Player and AIR 17 have arrived!  With this new release we’ve added some excellent features requested by our development community.  We recommend everyone check out the official release notes but I’ll cover some of the highlights below.  We’re also in the process of updating our public roadmap, for those interested in checking out an early preview read past the break!

Continue reading…

Feathers updates to 2.1.0

Congratulations to Josh Tynjala and the Feathers open source project for the release of Feathers 2.1.0 this week. Feathers offers a large collection of ActionScript UI components and layouts for mobile and desktop. Built on top of Starling, Feathers is a key framework in the Adobe Gaming SDK.

feathers-cube-transition

In version 2.1.0, Feathers includes a few new UI components and some new animation options to visually enhance your apps and games.

The AutoComplete component builds on top of the existing TextInput component to display a drop-down list of suggestions that is filtered as the user types.

SpinnerList is a mobile-style list that changes its selected item by scrolling. Items repeat infinitely in both directions – like a reel from a slot machine.

StackScreenNavigator enhances the classic ScreenNavigator component to add a history stack that makes it easier to go back to a previous screen.

The new StackScreenNavigator benefits from a new, expanded collection of animated transitions. In addition to simple transitions that slide screens into view or fade them in and out, Feathers takes advantage of the new Sprite3D feature added in Starling 1.6 to add card-flip and cube transitions that rotate in 3D space. Seven types of transitions are included with Feathers (each offers a number of customization options), and anyone may create custom transitions using familiar Starling animation techniques.

You can find the complete release notes on the project’s Github page. Developers are encouraged to download the latest stable version from the Feathers website.

Flash Runtime 16 Update – New PPAPI Installers and AIR news!

Flash Player 16 was released today with important bug and security fixes.  In this release, we added stand alone installation and plugin support for the PPAPI (“Pepper”) version of Flash Player!  This version was previously only available as an integrated component of Google Chrome.  With the upcoming changes to Chromium, making the PPAPI version of Flash Player available was critical for our customers and a top priority for our team.  With Flash Player 16, customers can now download Flash Player PPAPI for Chromium based applications and developers have access to the official PPAPI content debugger.  Please note, no changes or additional downloads are required for Google Chrome users.

For additional Flash Player release details, please see our forum announcement.

AIR developers, we haven’t forgotten about you!  It’s been all hands on deck getting support into AIR for iOS 64 bit.  Our plan is to shortly (possibly later this week) release an updated AIR 16 beta with iOS 64-bit compatibility along with an early peek at the videoTexture API for iOS.  We’re counting on getting great feedback from you and quickly making improvements.  We’ll continue updating our beta releases on labs.adobe.com to make sure you have the latest code available.  We know its going to be tough for everyone as we approach this holiday season, but we’re committed to making sure we have a solution in place before Apple changes their store requirements.

Adobe AIR and Android 5.0

Google has recently started rolling out an update to Android (OS 5.0 – Lollipop) on select devices. Unfortunately, this operating system upgrade has caused problems with AIR based applications.  We are working closely with Google to fix these issues.  This blog post describes the currently known problems and workarounds that developers can use for new applications.

Update 12/3/2014: Google has reported that this issue has been fixed with Android 5.0.1!  This OTA update is being currently being deployed to devices and we will continue to track the status and welcome your feedback.

Continue reading…

Adobe AIR to support upcoming iOS x64 requirement

Starting February 1st 2015, Apple will be requiring all new iOS applications submitted to the App Store to include support for 64-bit.  The Flash Runtime team is committed to supporting our AIR developers and end users.  Our team recognizes that platform compatibility is crucial to our customers, and supporting new OS versions and requirements are a top priority.

We’re hard at work adding iOS 64-bit compatibility to AIR in an upcoming beta which we look forward to making available in December 2014.

Both AIR and Flash Player have very active public beta programs, with updates made on almost a weekly basis.  We encourage all developers to participate and provide feedback to Adobe.  Updates, release notes and additional information can be found on Adobe Labs.

Adobe AIR Labs Homepage

Adobe Flash Player Labs Homepage

Beta Feature: VideoTexture and Stage3D

Authored by Jason Lee

Flash Player 15 Beta introduces the VideoTexture object, which allows hardware decoded video to be used in Stage3D content. With prior versions of Flash Player, the use of video in Stage3D required the use of the Video object (which is not hardware accelerated), copying of video frame to a BitmapData object, and loading of the data onto the GPU.

With the VideoTexture object introduced in Flash Player 15 Beta, the decode, conversion from YUV to RGB, and texture loading can be completely moved to the GPU.  The textures provided by the VideoTexture object can be used as rectangular, RGB, no mipmap textures in rendering of a Stage3D scene; and can be treated as ARGB texture by the shaders (i.e., the AGAL shaders do not need to provide YUV->RGB conversion).  Thus, standard shaders used with static images can also be used without providing a functionality for YUV-> RGB conversion.

Continue reading…

Improved Resolution of Stage3D Content on Browser Zoom

Authored by Channey Park

Flash Player version 15 (FP 15) introduces a feature whereby the loss of sharpness of Stage3D content upon browser zoom can be avoided.  With prior versions of FP, upon the user’s changing of the browser zoom factor, content that is rendered to a statically sized Stage3D buffer is scaled to match the browser zoom.  As the browser zoom factor increases, the sharpness of the Stage3D content is increasingly lost due to the scaling content. A new functionality introduced in FP 15 provides an event notification to the content when the browser zoom changes, and allows the content an opportunity to change the size of the Stag3D back buffer and re-render the stage3D content.

Continue reading…