Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Android] Video playback after VideoTexture usage cause crash #1952

Closed
itlancer opened this issue Jun 4, 2022 · 1 comment
Closed

[Android] Video playback after VideoTexture usage cause crash #1952

itlancer opened this issue Jun 4, 2022 · 1 comment

Comments

@itlancer
Copy link

itlancer commented Jun 4, 2022

Problem Description

Video playback after VideoTexture usage cause crash with Android.

Tested with multiple AIR versions, even with latest AIR 33.1.1.856 with multiple different Android devices with different OS versions with different MP4 H.264 videos.
Same problem in all cases.
The same issues exists if you try to create similar application using Starling.
It works fine with Windows and macOS
Cannot test with iOS because of issue: #1939

Related issues (not the same):
#1939
#1174
#1159
#151
#139
#100
#87
#81

Steps to Reproduce

Launch code below with any Android device. First time video play using VideoTexture. After that the same video will try to playback using Video.

Application example with sources and example of video attached.
Also logcat output with crash log attached.
android_videotexture_video_crash.zip

package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.media.Video;
	import flash.display.Stage3D;
	import flash.display3D.Context3D;
	import flash.display3D.IndexBuffer3D;
	import flash.geom.Matrix3D;
	import flash.net.NetConnection;
	import flash.net.NetStream;
	import flash.display3D.textures.VideoTexture;
	import flash.events.NetStatusEvent;
	import flash.display3D.VertexBuffer3D;
	import flash.display3D.Context3DProgramType;
	import com.adobe.utils.AGALMiniAssembler;
	import flash.display3D.Program3D;
	import flash.display3D.Context3DVertexBufferFormat;
	
	public class AndroidVideoTextureVideoCrash extends Sprite {
		private var stage3D:Stage3D;
		private var context3D:Context3D;
		private var indexbuffer:IndexBuffer3D;
		private var matrix:Matrix3D = new Matrix3D();
		private var nc:NetConnection;
		private var ns:NetStream;
		private var videoTexture:VideoTexture;
		
		private var video:Video;
		
		public function AndroidVideoTextureVideoCrash() {
			stage3D = stage.stage3Ds[0];
			stage3D.addEventListener(Event.CONTEXT3D_CREATE, contextCreated);
			stage3D.requestContext3D();
		}
		
		private function contextCreated(event:Event):void {
			trace("contextCreated");
			
			context3D = stage.stage3Ds[0].context3D;
			context3D.enableErrorChecking = true;
			context3D.configureBackBuffer(300, 240, 4, false, false, true);
			trace(context3D.driverInfo);
			
			var vertices:Vector.<Number> = Vector.<Number>([
			1, -1, 0, 1, 0,
			1, 1, 0, 1, 1,
			-1, 1, 0, 0, 1,
			-1,-1, 0, 0, 0
			]);
			
			var vertexbuffer:VertexBuffer3D = context3D.createVertexBuffer(4, 5);
			vertexbuffer.uploadFromVector(vertices, 0, 4);
			
			indexbuffer = context3D.createIndexBuffer(6);
			indexbuffer.uploadFromVector(Vector.<uint>([0, 1, 2, 2, 3, 0]), 0, 6);
			
			var vertexShaderAssembler:AGALMiniAssembler = new AGALMiniAssembler();
			vertexShaderAssembler.assemble(Context3DProgramType.VERTEX, "m44 op, va0, vc0\n" + "mov v0, va1");
			
			var fragmentShaderAssembler:AGALMiniAssembler = new AGALMiniAssembler();
			fragmentShaderAssembler.assemble( Context3DProgramType.FRAGMENT, "tex ft1, v0, fs0 <2d,linear, nomip>\n" + "mov oc, ft1");
			
			var program:Program3D = context3D.createProgram();
			program.upload( vertexShaderAssembler.agalcode, fragmentShaderAssembler.agalcode);
			
			context3D.setVertexBufferAt(0, vertexbuffer, 0, Context3DVertexBufferFormat.FLOAT_3);
			context3D.setVertexBufferAt(1, vertexbuffer, 3, Context3DVertexBufferFormat.FLOAT_2);
			
			videoTexture = context3D.createVideoTexture();
			context3D.setTextureAt(0, videoTexture);
			
			context3D.setProgram(program);
			matrix.appendScale(1, -1, 1);
			context3D.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 0, matrix, true);
			
			nc = new NetConnection();
			nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandlerVideoTexture);
			nc.connect(null);
		}
	
		private function netStatusHandlerVideoTexture(event:NetStatusEvent):void {
			trace(event.info.code);
			switch (event.info.code){
				case "NetConnection.Connect.Success":
					ns = new NetStream(nc);
					ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandlerVideoTexture);
					ns.client = {onMetaData:getMetaVideoTexture, onPlayStatus:onPlayStatusVideoTexture};
					ns.play("neon.mp4");
					videoTexture.attachNetStream(ns);
					
					videoTexture.addEventListener(Event.TEXTURE_READY, renderState);
					break;
				case "NetStream.Play.StreamNotFound":
					trace("Stream not found");
					break;
				case "NetStream.Play.Stop":
					videoTextureFinishedPlayback();
					break;
				default:
					break;
			}
		}

		private function getMetaVideoTexture(mdata:Object):void {
			trace("metadataVideoTexture");
		}

		private function onPlayStatusVideoTexture(infoObject:Object):void {
			trace("onPlayStatusVideoTexture", infoObject.code);
			videoTextureFinishedPlayback();
		}
		
		private function renderState(e:Event):void {
			videoTexture.removeEventListener(Event.TEXTURE_READY, renderState);
			trace("renderState");
			render();
			addEventListener(Event.ENTER_FRAME, enterFrame);
		}
	
		private function enterFrame(event:Event):void {
			render();
		}

		private function render():void {
			context3D.clear(1, 0, 0, 1);
			if (videoTexture != null)context3D.drawTriangles(indexbuffer);
			context3D.present();
		}
	
		
		private function videoTextureFinishedPlayback():void {
			trace("videoTextureFinishedPlayback");
			videoTexture.removeEventListener(Event.TEXTURE_READY, renderState);
			ns.dispose();
			videoTexture.dispose();
			videoTexture = null;
			
			video = new Video(640, 480);
			addChild(video);
			ns = new NetStream(nc);
			ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandlerVideo);
			ns.client = {onMetaData:getMetaVideo, onPlayStatus:onPlayStatusVideo};
			video.attachNetStream(ns);
			ns.play("neon.mp4");//This line cause crash
		}
	
		private function netStatusHandlerVideo(event:NetStatusEvent):void {
			trace(event.info.code);
		}
		
		private function getMetaVideo(mdata:Object):void {
			trace("getMetaVideo");
		}

		private function onPlayStatusVideo(infoObject:Object):void {
			trace("onPlayStatusVideoTexture", infoObject.code);
		}
		
	}
}

Actual Result:
Application crash when video start to playback second time using Video.

    --------- beginning of crash
2022-06-04 16:57:34.432 11262-11262/? A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xb5d7fb18 in tid 11262 (ure.video.crash), pid 11262 (ure.video.crash)
2022-06-04 16:57:34.470 11457-11457/? I/crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstoneProto
2022-06-04 16:57:34.471 807-807/? I/tombstoned: received crash request for pid 11262
2022-06-04 16:57:34.471 11457-11457/? I/crash_dump64: performing dump of process 11262 (target tid = 11262)
2022-06-04 16:57:34.476 11457-11457/? E/DEBUG: failed to read /proc/uptime: Permission denied
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: Build fingerprint: 'Sony/XQ-BQ52_EEA/XQ-BQ52:12/61.1.A.9.73/061001A009007300421440726:user/release-keys'
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: Revision: '0'
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: ABI: 'arm64'
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: Timestamp: 2022-06-04 16:57:34.476181294+0300
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: Process uptime: 0s
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: Cmdline: android.videotexture.video.crash
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: pid: 11262, tid: 11262, name: ure.video.crash  >>> android.videotexture.video.crash <<<
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: uid: 10441
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xb5d7fb18
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     x0  0000000012d555c8  x1  0000000000000001  x2  0000000000000000  x3  0000000070e862b8
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     x4  0000000070e862b8  x5  0000000000000010  x6  0000000000002a38  x7  0000000000000008
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     x8  000000000000000c  x9  0000000072dda860  x10 0000007c34007dfc  x11 0000007c35eca60c
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     x12 0000007c35eca654  x13 0000007c35eca69c  x14 0000007c35eca6fc  x15 0000000012d555a8
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     x16 0000000070e861d8  x17 000000000004b555  x18 0000007bb3e7a0fc  x19 b400007dab2d2be0
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     x20 0000000000000000  x21 00000000b5d7fb18  x22 0000000012d555a0  x23 0000000012d555b0
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     x24 0000000012d555b8  x25 0000000000000000  x26 0000000070e862b8  x27 0000000000000001
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     x28 0000000070e862b8  x29 0000007fe0bb0470
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:     lr  00000000714ede20  sp  0000007fe0bb03a0  pc  00000000714ede8c  pst 0000000080001000
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG: backtrace:
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:       #00 pc 0000000000371e8c  /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.CopyOnWriteArrayList.add+412) (BuildId: ad9ee401645a5135206a62ff86fc2ef5cdc29120)
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:       #01 pc 000000000072b904  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.view.View.addOnAttachStateChangeListener+164)
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:       #02 pc 00000000002ca764  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:       #03 pc 000000000030e980  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:       #04 pc 00000000003c1db4  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+380) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.615 11457-11457/? A/DEBUG:       #05 pc 00000000004673f8  /apex/com.android.art/lib64/libart.so (art::JNI<false>::CallVoidMethodA(_JNIEnv*, _jobject*, _jmethodID*, jvalue const*)+264) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #06 pc 0000000000a402a8  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #07 pc 00000000009fc4dc  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #08 pc 00000000009fc2d4  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #09 pc 0000000000323cb0  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #10 pc 0000000000317278  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #11 pc 00000000003175a4  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #12 pc 00000000002b15d4  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #13 pc 00000000002b3074  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #14 pc 0000000000506870  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #15 pc 0000000000508ce8  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #16 pc 00000000004c3e08  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #17 pc 00000000004c7d2c  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #18 pc 000000000027173c  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #19 pc 0000000000274bcc  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #20 pc 00000000002782c4  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/lib/arm64/libCore.so (BuildId: 48594b403074cf2a9be032f48ede8f98476cd654)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #21 pc 00000000002d4044  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #22 pc 000000000020a0a0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #23 pc 00000000000365d0  /data/app/~~NhalQx83abKQHfXenstQ0w==/android.videotexture.video.crash-S9fUNsiTOhJoRwRckQDRmg==/oat/arm64/base.vdex (com.adobe.air.customHandler.handleMessage+20)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #24 pc 0000000000529a2c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Handler.dispatchMessage+188)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #25 pc 000000000052c898  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Looper.loopOnce+1096)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #26 pc 000000000052c3b4  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.os.Looper.loop+516)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #27 pc 0000000000306b0c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (android.app.ActivityThread.main+732)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #28 pc 00000000002ca9e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #29 pc 000000000035b5d0  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+608) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #30 pc 000000000035b348  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #31 pc 00000000000b2f74  /apex/com.android.art/javalib/arm64/boot.oat (art_jni_trampoline+132) (BuildId: ad9ee401645a5135206a62ff86fc2ef5cdc29120)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #32 pc 000000000085717c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+140)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #33 pc 000000000085f478  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2232)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #34 pc 00000000002ca9e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #35 pc 000000000044ca04  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+464) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #36 pc 000000000062cf30  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+268) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #37 pc 00000000000b0bd4  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: fa6598fcda8dd528aeb4260c235b96ff)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #38 pc 00000000000bd048  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+840) (BuildId: fa6598fcda8dd528aeb4260c235b96ff)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #39 pc 0000000000002684  /system/bin/app_process64 (main+1580) (BuildId: be6dd1f6c54baeabdfd0a0e02be38550)
2022-06-04 16:57:34.616 11457-11457/? A/DEBUG:       #40 pc 0000000000049f10  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+100) (BuildId: b94752b6809cd7518c3c28ff9d195306)

Full logcat log attached above.

Expected Result:
Video start to playback second time using Video without crash.

Known Workarounds

none
*don't use Video and VideoTexture in one application

@itlancer
Copy link
Author

Fixed with latest AIR 33.1.1.889.
Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants