File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -558,6 +558,42 @@ class RenderingMode {
558558
559559 // ------------------ Stop Render ------------------
560560 static function stopRender () {
561+ #if android
562+ if (! started || cleanupLock ) return ;
563+ cleanupLock = true ;
564+
565+ Sys .println (" Android: Stopping render with cleanup" );
566+
567+ // Important: Unbind GL objects before context loss
568+ GL .bindBuffer (pboTarget , null );
569+ for (pbo in pbos ) {
570+ try {
571+ GL .deleteBuffer (pbo );
572+ } catch (e : Dynamic ) {}
573+ }
574+ pbos = [];
575+
576+ // Force GC to reclaim memory
577+ neash.vm. Gc .run (true );
578+
579+ // Move file from tmpfs if used
580+ try {
581+ var tmpFile = " /dev/shm/ffmpeg/" + songName + " .mp4" ;
582+ var destFile = lime.system. System .applicationStorageDirectory + " /rendered/" + songName + " .mp4" ;
583+
584+ if (FileSystem .exists (tmpFile ) && FileSystem .exists (destFile )) {
585+ // Copy with progress
586+ var src = sys.io. File .read (tmpFile , true );
587+ var dst = sys.io. File .write (destFile , true );
588+ dst .writeInput (src );
589+ src .close ();
590+ dst .close ();
591+
592+ // Delete tmp file
593+ FileSystem .deleteFile (tmpFile );
594+ }
595+ } catch (e : Dynamic ) {}
596+ #else
561597 if (! started || cleanupLock ) return ;
562598 cleanupLock = true ;
563599
@@ -628,5 +664,6 @@ class RenderingMode {
628664 cleanupLock = false ;
629665
630666 Sys .println (" Rendering Mode System - Cleanup complete!" );
667+ #end
631668 }
632669}
You can’t perform that action at this time.
0 commit comments