Copy link to clipboard
Copied
Hi Chris,
we have reported a major show stopper which has been confirmed to be an issue with the latest release of Android.
This has to do with Video playback hanging due to the changes in Video component and its underline pipeline in Android which was changed in the latest AIR 22 (we confirmed this is when it broke) .
The bug has been reported and tracked here:
it's been over a month and we still do not have a status on this.
We provided a sample project, step by step instructions on how to reproduce and even details on which SDK broke this and how to install the SDK.
I really need your help to get a status on a fix for this MAJOR show stopper in Android and latest Adobe AIR.
We can't release our next Android TV Player until this is resolved.
thanks as always,
Sean.
Copy link to clipboard
Copied
Hi Sean,
I'm checking with the team. We had a related bug that was fixed in AIR 23 but I've asked them to verify and provide more info on 4161877.
Thanks,
Chris
Copy link to clipboard
Copied
Thanks so much for the update Chris, I appreciate it.
will wait anxiously for any info on any findings and expected release build fix.
have a great day,
Sean
Copy link to clipboard
Copied
Hi Sean,
In AIR 22, we have moved the rendering logic to the main thread, however, decoding is still hardware based and done from a secondary thread.
In your sample app, you are intentionally blocking the main thread for 1 second, which will stop rendering for that duration. You will observe the same behavior on desktop as well.
Could you share a small sample with your original use case where you are observing glitches on addChild?
Thanks,
Adobe Air Team
Copy link to clipboard
Copied
Hello,
The issue is not specific to addChild, in this two demo videos we demonstrate the problem:
http://www.digitalsignage.com/tmp/20160608_114436.mp4
http://www.digitalsignage.com/tmp/20160608_114114.mp4
we created a sample project to demonstrate this major show stopper. You can see that if you compile the sample project with AIR 20 all is great and the video is super smooth, but as soon as you compile with AIR22 the video will hang on cpu overload. I provided everything here so you can really check it out including, sample video file, pre-compiled APKs as well as the entire simple project...
here is the sample project so you can see the issue for yourself, just compile the same project once on AIR20 and once on AIR22,
Project: http://www.digitalsignage.com/tmp/bug/videoProject.zip
apk AIR22: http://www.digitalsignage.com/tmp/bug/videoAIR22.apk
apk AIR20 http://www.digitalsignage.com/tmp/bug/videoAIR20.apk
sample video: http://www.digitalsignage.com/tmp/bug/bunny25fps.mp4
again the fact it worked perfectly in AIR20 and broken in AIR22 proves that this is a major bug.
everything is also documented and proven to be a show stopper by the Adobe developer, see:
thanks again for taking the time:
hope we can get it fixed asap,
regards,
Sean.
Copy link to clipboard
Copied
Developers came back with:
Hi Sean,
In AIR 22, we have moved the rendering logic to the main thread, however, decoding is still hardware based and done from a secondary thread.
In your sample app, you are intentionally blocking the main thread for 1 second, which will stop rendering for that duration. You will observe the same behaviour on desktop as well.
Could you share a small sample with your original use case where you are oserving glitches on addChild?
Thanks
Adobe AIR Team
but I simple do not understand this.
this is a BIG design problem?
If now rendering logic is done on the main thread, anything that is CPU intensive will get the video to lock up? so how are we supposed to use the main thread now, which pretty much runs the entire app (addChild is just one method from thousands that we do in the main thread) ... as now anything we touch will cause the video to freeze (or at least slow down)?
please advise,
Sean.
Copy link to clipboard
Copied
I dont think you guys fully understand the effects of this.
you essentially are killing video support for Flash and AIR.
As anyone that does ANYTHING while video is playing will get a freezing image. This is not acceptable! Rendering is VERY cpu intensive so how do you expect to deliver high quality 4k videos when you can't do anything in the background? or the video will freeze!!!
this is impossible!
Please revert the changes to the way it was or you will kill the only marketing plan that AIR and Flash are strong with, high quality video playback. Or at least move the rendering to another thread.
Copy link to clipboard
Copied
this is from the release notes:
"Video Pipeline Changes for Android AIR
To address recommendations from Google and to keep pace with OS future developments, we've made significant changes in the way we use video codecs for decoding on AIR Android. There is no impact on functionality or performance for an AS developer. However, if you encounter issues with your AIR Android application, please report them to us at https://bugbase.adobe.com."
YES, I am reporting to you, that performance is taking a HUGE hit, you have to fix this!!!! please!!!
Copy link to clipboard
Copied
Hi Sean,
In the code that you have shared, we are seeing an idle loop as follows that demonstrates the issue:
while(t2-t1<1000)
{
t2 = (new Date()).time;
}
I am not sure if you are aware of workers. With the new architecture, you should be doing computation intensive operations on a worker. Below are some links that can help you with that:
http://www.bytearray.org/?p=4423
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Worker.html
Several runtime APIs are not available in code running in a background worker (...more details on this can be found in the link above). So, you should try by moving other operations to workers.
Hope this resolves the issue.
Thanks,
Adobe Air Team
Copy link to clipboard
Copied
Hi Chris,
Let me explain, we have a platform that we have been developing with AIR and Flash for over 11 years now.
We have 3 separate products totaling over 2 million lines of code, with tens of thousands of classes.
It would be practically impossible for us to go back and refactor the entire platform, which I can't even begin to explain how complex it is, with Web workers. I don't have to explain to you that moving to a Web worker is not a trivial task as it does not have the full access that the main UI, which would require a complete re-write of the 3 products (again 11+ years of development).
For us, this is a MAJOR show stopper and we will never be able to recover from this as we won't be able to support Android moving forward. ANE is also not an option for us as we have transitions built into our videos which we wont be able to do with ANE.
So I am begging that you reconsider and find a workaround, a flag or something that will allow video rendering to execute not in the main thread. I am sure that as more time passes by, you will get more and more complains (just today Paul replied with the same issue), so please assist us,
Our business is built around Android and AIR.
thanks as always for the time,
Sean.
Copy link to clipboard
Copied
Hi Sean,
We are working on your issue and are trying to find out a solution for it. We are really concerned about the impact of this issue on your application. We will keep you posted.
Thanks,
Ankit
Adobe Air Team
Copy link to clipboard
Copied
Thank you so so so so so much! If you ever come to Los Angeles, dinner is on me!!!
If Adobe can move the Video rendering back to a Web worker that would be ideal,
Once again, thank you for the attention on this matter,
Sean.
Copy link to clipboard
Copied
Hello,
I wanted to add on this subject that I very surprised by the decision to move video rendering to the main core thread, this of course is not acceptable and we are holding off moving to latest Air until this issue is resolved by the adobe development team, we will keep a close look at this thread,
PS:
thanks Sean for floating this critical probelm!!!
Copy link to clipboard
Copied
We manage a large library of tutorial videos for schools and distribute educational material to each school via our Android App. Last week we migrated to latest AIR and spent 3 days trying to figure out why performance on video was so terrible when interacting with the user interface while the video was playing. I am glad I found this post as we are now aware this is a design flaw in latest Adobe runtime. When do you think this will be fixed as we are interested in updating to latest version but this problem is stopping us from moving forward.
Copy link to clipboard
Copied
Are you using StageVideo or VideoTexture?
Copy link to clipboard
Copied
The issue is evident in both StageVideo and VideoTexture as video rendering is now done on the CPU main thread.
We are assisting the Adobe team to find a solution to this design flaw.
regards
Sean.
Copy link to clipboard
Copied
That's unfortunate . I hope this issue can be resolved, since I'll probably encounter this issue soon as well.
For some reason video support in AIR for Android has been really poor thoughout the years. StageVideo had some show-stopping bugs when used in conjunction with Starling, and now that VideoTexture seemed to be the solution to all the problems in StageVideo, we get these performance problems . I hope Adobe listens to us.
Best regards.
Copy link to clipboard
Copied
From what Sean is saying Adobe is already aware and working to resolve this for the next release of AIR.
Thank you!!! this would literally paralyze our company!!!! could have been a catastrophe.
I can also assist in any beta testing that may be needed
Copy link to clipboard
Copied
Hi Everyone,
While we work on this video performance issue, we would like to request you all to keep watching our (almost) weekly betas of AIR and Flash Player from here.
http://labs.adobe.com/technologies/flashruntimes/flashplayer/
http://labs.adobe.com/technologies/flashruntimes/air/
Early feedback from beta channel helps both the sides.
-Thanks
Pahup
Adobe AIR
Copy link to clipboard
Copied
Absolutely - we will continue and monitor the beta channels.
regards
Sean.
Copy link to clipboard
Copied
I have great news, we received a private build from Anki and it is awesome!!!!!!!
The fix puts the rendering of video back into a separate thread and so with this we now have 60fps super smooth video even when main thread is locked, WORKS GREAT!!!
I hope we can have this migrated into the main code base soon,
thanks as always Adobe for listening,
regards,
Sean.
Copy link to clipboard
Copied
Hi Adobe,
I am wondering if you have plans to migrate the current fix (what we have tested as private build) into the next beta release of AIR 23 so we (and the community) can validate the issue is resolved and no more bugs exist...?
regards,
Sean.
Copy link to clipboard
Copied
Hi Sean,
We've not made a decision yet on how to make the older architecture available to AS developers. We're trying to come up with a solution in AIR 24 beta, please stay tuned.
Thanks
-Pahup | AIR Engineering
Copy link to clipboard
Copied
Ok thank you for the prompt reply, I will wait anxiously and patiently
regards
Sean.
Copy link to clipboard
Copied
I saw that this bug now is set as fixed in AIR 24 beta.
we will test it asap and report back,
thank you for the effort,
Sean.