apivideo / api.video-flutter-live-stream

Flutter RTMP live stream client. Made with ♥ by api.video
MIT License
65 stars 39 forks source link

Android: crash on stopStreaming: nativeClose #14

Closed nhat108 closed 1 year ago

nhat108 commented 2 years ago

Describe the bug Hi, I'm trying to Livestream on android device, but it's keeping crashing when call stopStreaming() method or startStreaming(). Can you help me find out this issue because I'm using this library and preparing for pushing app to Play Store.

Screenshots ` 0xebadde09 skipped times: 0 F/libc ( 8362): Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1f000000010 in tid 8362 (minakomiapp.dev), pid 8362 (minakomiapp.dev)


Build fingerprint: 'samsung/dreamltexx/dreamlte:9/PPR1.180610.011/G950FXXU4ZSA5:user/release-keys' Revision: '0' ABI: 'arm64' pid: 8362, tid: 8362, name: minakomiapp.dev >>> com.minakomiapp.dev <<< signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1f000000010 x0 0000006f9ee27208 x1 000001f000000032 x2 0000006f9ee0d000 x3 0000000000000000 x4 00000000000001b8 x5 0000006f9ee0d988 x6 0000006f987b4c80 x7 0000006f987b4b00 x8 000001efffffff98 x9 fffffffffffffff3 x10 0000000000000000 x11 0000000000000025 x12 ffffffffffffefff x13 ffffffffffffffff x14 00000000ffffffff x15 0000000000000000 x16 000000701fa32bb8 x17 000000701f9c8678 x18 0000000000000008 x19 000001f000000032 x20 0000006f9ee27208 x21 0000006f9ee0d000 x22 0000000000000000 x23 000000701fa3e968 x24 000000701fa3e9e4 x25 00000070257445f8 x26 0000006f9ee14ca0 x27 0000000000000001 x28 0000007fc44a2ad0 x29 0000007fc44a2a00 sp 0000007fc44a29d0 lr 000000701f9e5b64 pc 000000701f9e55d0 backtrace:

00 pc 00000000000a25d0 /system/lib64/libc.so (ifree+88)

#01 pc 00000000000a2b60  /system/lib64/libc.so (je_free+120)
#02 pc 0000000000003858  /data/app/com.minakomiapp.dev-hywtSBOIRNB5mpf1jtyKPg==/lib/arm64/librtmpdroid.so (nativeClose(_JNIEnv*, _jobject*)+252)
#03 pc 000000000056afe0  /system/lib64/libart.so (art_quick_generic_jni_trampoline+144)
#04 pc 0000000000561f88  /system/lib64/libart.so (art_quick_invoke_stub+584)
#05 pc 00000000000d0140  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#06 pc 00000000002865e8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
#07 pc 00000000002805a4  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+948)
#08 pc 0000000000532578  /system/lib64/libart.so (MterpInvokeDirect+296)
#09 pc 0000000000554714  /system/lib64/libart.so (ExecuteMterpImpl+14484)
#10 pc 000000000039bf24  /dev/ashmem/dalvik-classes12.dex extracted in memory from /data/app/com.minakomiapp.dev-hywtSBOIRNB5mpf1jtyKPg==/base.apk!classes12.dex_8362_8362 (deleted) (video.api.rtmpdroid.Rtmp.close)
#11 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#12 pc 000000000025fc20  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
#13 pc 0000000000280588  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
#14 pc 0000000000531238  /system/lib64/libart.so (MterpInvokeVirtual+584)
#15 pc 0000000000554614  /system/lib64/libart.so (ExecuteMterpImpl+14228)
#16 pc 000000000019afe4  /dev/ashmem/dalvik-classes11.dex extracted in memory from /data/app/com.minakomiapp.dev-hywtSBOIRNB5mpf1jtyKPg==/base.apk!classes11.dex_8362_8362 (deleted) (io.github.thibaultbee.streampack.ext.rtmp.internal.endpoints.RtmpProducer.disconnect+4)
#17 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#18 pc 000000000025fc20  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
#19 pc 0000000000280588  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
#20 pc 00000000005321b0  /system/lib64/libart.so (MterpInvokeInterface+1392)
#21 pc 0000000000554814  /system/lib64/libart.so (ExecuteMterpImpl+14740)
#22 pc 00000000001aec98  /dev/ashmem/dalvik-classes11.dex extracted in memory from /data/app/com.minakomiapp.dev-hywtSBOIRNB5mpf1jtyKPg==/base.apk!classes11.dex_8362_8362 (deleted) (io.github.thibaultbee.streampack.streamers.live.BaseCameraLiveStreamer.disconnect+4)
#23 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#24 pc 000000000025fc20  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
#25 pc 0000000000280588  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
#26 pc 0000000000531238  /system/lib64/libart.so (MterpInvokeVirtual+584)
#27 pc 0000000000554614  /system/lib64/libart.so (ExecuteMterpImpl+14228)
#28 pc 00000000000623e8  /dev/ashmem/dalvik-classes2.dex extracted in memory from /data/app/com.minakomiapp.dev-hywtSBOIRNB5mpf1jtyKPg==/base.apk!classes2.dex_8362_8362 (deleted) (video.api.flutter.livestream.MethodCallHandlerImpl.onMethodCall+184)
#29 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#30 pc 000000000025fc20  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
#31 pc 0000000000280588  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
#32 pc 00000000005321b0  /system/lib64/libart.so (MterpInvokeInterface+1392)

33 pc 0000000000554814 /system/lib64/libart.so (ExecuteMterpImpl+14740)

#34 pc 000000000018a53e  /dev/ashmem/dalvik-classes11.dex extracted in memory from /data/app/com.minakomiapp.dev-hywtSBOIRNB5mpf1jtyKPg==/base.apk!classes11.dex_8362_8362 (deleted) (io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage+34)
#35 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#36 pc 0000000000521978  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
#37 pc 000000000056b0fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)

38 pc 000000000005a2b0 /dev/ashmem/dalvik-jit-code-cache_8362_8362 (deleted) (io.flutter.embedding.engine.dart.DartMessenger.invokeHandler+224)

39 pc 0000000000040c78 /dev/ashmem/dalvik-jit-code-cache_8362_8362 (deleted) (io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger+248)

#40 pc 0000000000561f88  /system/lib64/libart.so (art_quick_invoke_stub+584)
#41 pc 00000000000d0140  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#42 pc 00000000002865e8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
#43 pc 00000000002816b0  /system/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+752)
#44 pc 0000000000532a70  /system/lib64/libart.so (MterpInvokeVirtualRange+576)
#45 pc 0000000000554914  /system/lib64/libart.so (ExecuteMterpImpl+14996)

46 pc 000000000017e054 /dev/ashmem/dalvik-classes11.dex extracted in memory from /data/app/com.minakomiapp.dev-hywtSBOIRNB5mpf1jtyKPg==/base.apk!classes11.dex_8362_8362 (deleted) (io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$TsixYUB5E6FpKhMtCSQVHKE89gQ.run+24)

#47 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#48 pc 0000000000521978  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
#49 pc 000000000056b0fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
#50 pc 000000000005ee70  /dev/ashmem/dalvik-jit-code-cache_8362_8362 (deleted) (android.os.Handler.handleCallback+64)
#51 pc 000000000004255c  /dev/ashmem/dalvik-jit-code-cache_8362_8362 (deleted) (android.os.Handler.dispatchMessage+60)
#52 pc 0000000000009258  /dev/ashmem/dalvik-jit-code-cache_8362_8362 (deleted) (android.os.Looper.loop+1032)
#53 pc 00000000005622dc  /system/lib64/libart.so (art_quick_osr_stub+44)
#54 pc 000000000030f0d4  /system/lib64/libart.so (art::jit::Jit::MaybeDoOnStackReplacement(art::Thread*, art::ArtMethod*, unsigned int, int, art::JValue*)+1988)
#55 pc 00000000005378b8  /system/lib64/libart.so (MterpMaybeDoOnStackReplacement+144)
#56 pc 0000000000558ff0  /system/lib64/libart.so (ExecuteMterpImpl+33136)
#57 pc 0000000000c65b8a  /system/framework/boot-framework.vdex (android.os.Looper.loop+930)
#58 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#59 pc 000000000025fc20  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
#60 pc 0000000000280588  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
#61 pc 000000000053273c  /system/lib64/libart.so (MterpInvokeStatic+204)
#62 pc 0000000000554794  /system/lib64/libart.so (ExecuteMterpImpl+14612)
#63 pc 00000000004c1038  /system/framework/boot-framework.vdex (android.app.ActivityThread.main+220)
#64 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#65 pc 0000000000521978  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
#66 pc 000000000056b0fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
#67 pc 000000000056224c  /system/lib64/libart.so (art_quick_invoke_static_stub+604)
#68 pc 00000000000d0160  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
#69 pc 00000000004682d8  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#70 pc 0000000000469d30  /system/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1440)
#71 pc 00000000003f87b0  /system/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+48)
#72 pc 000000000011e7e4  /system/framework/arm64/boot.oat (offset 0x114000) (java.lang.Class.getDeclaredMethodInternal [DEDUPED]+180)
#73 pc 0000000000561f88  /system/lib64/libart.so (art_quick_invoke_stub+584)
#74 pc 00000000000d0140  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#75 pc 00000000002865e8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
#76 pc 00000000002805a4  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+948)
#77 pc 0000000000531238  /system/lib64/libart.so (MterpInvokeVirtual+584)
#78 pc 0000000000554614  /system/lib64/libart.so (ExecuteMterpImpl+14228)
#79 pc 00000000013c64da  /system/framework/boot-framework.vdex (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
#80 pc 000000000025a0a0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.783209430+496)
#81 pc 0000000000521978  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
#82 pc 000000000056b0fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
#83 pc 0000000000e15280  /system/framework/arm64/boot-framework.oat (offset 0x41f000) (com.android.internal.os.ZygoteInit.main+2208)
#84 pc 000000000056224c  /system/lib64/libart.so (art_quick_invoke_static_stub+604)
#85 pc 00000000000d0160  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
#86 pc 00000000004682d8  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#87 pc 0000000000467f30  /system/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+416)
#88 pc 000000000036ab1c  /system/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+644)
#89 pc 00000000000b9ae8  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+120)
#90 pc 00000000000bc6ac  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+780)
#91 pc 0000000000004990  /system/bin/app_process64 (main+1200)

92 pc 00000000000b0568 /system/lib64/libc.so (__libc_init+88)

Lost connection to device. `

Smartphone (please complete the following information):

ThibaultBee commented 2 years ago

Hi,

According your stacktrace, the crash happens in nativeClose which is only called in disconnect (by stopStream). Is there a way to reproduce it? Is this something you reproduced with the code example? BTW, I have updated StreamPack to a new version in the main branch. Could you test it?

nhat108 commented 2 years ago

@ThibaultBee Hi, I tested your new version. But crashes still happens sometimes when I try to stopStream with same error posted before. Could you help me to find it out? That error is very straight with me, I don't know how to fix it.

Glexium commented 2 years ago

Hello, I have a similar error, same crash, but it happened when I try to load again the preview after I call stopStreaming() method (I change current page), it only happened on version 1.0.4 and 1.0.5, it doesn't crash on 1.0.3. I don't know if it's relevant but I'm also using: camera: ^0.10.0+1

ThibaultBee commented 2 years ago

@Glexium The crash described here happens when disconnect is called. Therefore, it does not seem to be your issue. Anyway, is there a reason to call startPreview after stopStreaming? Preview is still running, you should not have to call startPreview again. Do you have a sample code where I can reproduce your crash? Also, betwen 1.0.3 and 1.0.4, there hasn't been any changes on Android...

nhat108 commented 2 years ago

Hi, I fixed this issue, problem is in your example code when call stop() in didChangeAppLifecycleState on Android. I fixed by this way:

image

@ThibaultBee @Glexium

ThibaultBee commented 2 years ago

@nhat108 your fix won't disconnect the application if the user put the application in background.

As a workaround, could you add this in your AndroidManifest.xml?

  <application android:allowNativeHeapPointerTagging="false">
  ...
  </application>
rahultechvantage commented 2 years ago

Please help to fix this issue. App is crashing while calling liveStreamController?.stopStreaming();

rahultechvantage commented 2 years ago

Hi All,

Seems this can fix the crashing issue and can release the memory.

paste below method inside api live stream package.

/// Dispose the live stream. void dispose() { _channel.invokeMethod('dispose'); isStreaming = false; }

then call _controller.dispose() from your live screen dispose method.

Mellow-Developer commented 2 years ago

Hi All,

Seems this can fix the crashing issue and can release the memory.

paste below method inside api live stream package.

/// Dispose the live stream. void dispose() { _channel.invokeMethod('dispose'); isStreaming = false; }

then call _controller.dispose() from your live screen dispose method.

This doesn't work. Still crashes on some android devices (Galaxy A32 android 12) when calling stopStreaming()

swathyns commented 2 years ago

Hi All, Seems this can fix the crashing issue and can release the memory. paste below method inside api live stream package. /// Dispose the live stream. void dispose() { _channel.invokeMethod('dispose'); isStreaming = false; } then call _controller.dispose() from your live screen dispose method.

This doesn't work. Still crashes on some android devices (Galaxy A32 android 12) when calling stopStreaming()

Yes, it's crashing sometimes. Any alternative method for this.?

ThibaultBee commented 2 years ago

Unfortunately, I can't reproduce this issue. Is there some easy way to reproduce it?

swathyns commented 2 years ago

Unfortunately, I can't reproduce this issue. Is there some easy way to reproduce it?

Hi,

App crash occurs while calling controller.stop() or controller.stopStreaming(). Please find below error details.

I/CCodecConfig( 4247): query failed after returning 9 values (BAD_INDEX) D/VideoMediaCodecEncoder( 4247): createCodec: {mime=video/avc, width=360, height=640} I/ACodec ( 4247): [OMX.Exynos.AVC.Encoder] Now Executing->Idle D/MediaCodec( 4247): MediaCodec::reclaim(0x7299fc9000) OMX.Exynos.AVC.Encoder I/ACodec ( 4247): [OMX.Exynos.AVC.Encoder] Now Idle->Loaded I/ACodec ( 4247): [OMX.Exynos.AVC.Encoder] Now Loaded I/ACodec ( 4247): [OMX.Exynos.AVC.Encoder] Now uninitialized I/ACodec ( 4247): [] Now kWhatShutdownCompleted event : 8101 I/MediaCodec( 4247): Codec shutdown complete D/MediaCodec( 4247): MediaCodec looper is gone, skip reclaim I/ACodec ( 4247): [] Now uninitialized I/ACodec ( 4247): [] onAllocateComponent I/OMXClient( 4247): IOmx service obtained I/ACodec ( 4247): [OMX.Exynos.AVC.Encoder] Now Loaded I/MediaCodec( 4247): MediaCodec will operate in async mode D/MediaCodec( 4247): shapeMediaFormat: deltas(1): AMessage(what = 0x00000000) = { D/MediaCodec( 4247): int32_t android._encoding-quality-level = 0 D/MediaCodec( 4247): } I/ACodec ( 4247): app-pid(4247) W/OMXUtils( 4247): do not know color format 0x7f000011 = 2130706449 W/OMXUtils( 4247): do not know color format 0x10 = 16 W/OMXUtils( 4247): do not know color format 0x7f00a000 = 2130747392 W/OMXUtils( 4247): do not know color format 0x7f000789 = 2130708361 I/ACodec ( 4247): setupAVCEncoderParameters with [profile: High] [level: Level3] I/ACodec ( 4247): Enable Perceptual Video Coding I/ACodec ( 4247): Success set VideoMinQP(5/5/5) VideoMaxQP(50/50/50) I/ACodec ( 4247): reconfigEncoder4OtherApps I/ACodec ( 4247): [OMX.Exynos.AVC.Encoder] cannot encode HDR static metadata. Ignoring. I/ACodec ( 4247): setupVideoEncoder succeeded I/ACodec ( 4247): [OMX.Exynos.AVC.Encoder] configure, AMessage : AMessage(what = 'conf', target = 71) = { I/ACodec ( 4247): int32_t color-format = 2130708361 I/ACodec ( 4247): int32_t i-frame-interval = 1 I/ACodec ( 4247): int32_t level = 524288 I/ACodec ( 4247): string mime = "video/avc" I/ACodec ( 4247): int32_t profile = 8 I/ACodec ( 4247): int32_t width = 360 I/ACodec ( 4247): int32_t bitrate = 2000000 I/ACodec ( 4247): int32_t frame-rate = 30 I/ACodec ( 4247): int32_t height = 640 I/ACodec ( 4247): int32_t android._encoding-quality-level = 0 I/ACodec ( 4247): int32_t flags = 1 I/ACodec ( 4247): int32_t encoder = 1 I/ACodec ( 4247): } W/OMXUtils( 4247): do not know color format 0x7f000789 = 2130708361 F/libc ( 4247): Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x83bff2663c in tid 4247 (.flyhy.customer), pid 4247 (.flyhy.customer)


Build fingerprint: 'samsung/m21nnxx/m21:12/SP1A.210812.016/M215FXXU3CVH1:user/release-keys' Revision: '5' ABI: 'arm64' Processor: '6' Timestamp: 2022-09-29 19:02:08.885609802+0530 Process uptime: 216s Cmdline: com.flyhy.customer pid: 4247, tid: 4247, name: .flyhy.customer >>> com.flyhy.customer <<< uid: 10671 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x83bff2663c x0 00000072fcbe80e8 x1 00000072fd005355 x2 0000000000000020 x3 0000000000000000 x4 00000073bff250e0 x5 00000073bff25100 x6 00000072643ce8d0 x7 0000007264681030 x8 00000073a691b5a0 x9 00000073174008c0 x10 00000083bff261c8 x11 00000072c0000000 x12 0000000000000001 x13 0000000004e576e0 x14 00000073bff26430 x15 0000000000000000 x16 00000073a6916d50 x17 00000073a690607c x18 00000073c12f8000 x19 00000073bff26408 x20 00000072fd005355 x21 00000073bff265c8 x22 00000073c034a000 x23 00000000ffffffdc x24 00000083bff2663c x25 00000073bff26430 x26 0000007fd4d1f0b4 x27 0000007fd4d1f0b0 x28 0000007fd4d1efb0 x29 0000007fd4d1ef20 lr 00000073a6867d64 sp 0000007fd4d1eed0 pc 00000073a6867ef4 pst 0000000080000000 backtrace:

00 pc 000000000004def4 /apex/com.android.runtime/lib64/bionic/libc.so (je_free+464) (BuildId: 351225fa1d718acf9e00214d7dd5d405)

  #01 pc 0000000000003858  /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/lib/arm64/librtmpdroid.so (nativeClose(_JNIEnv*, _jobject*)+252) (BuildId: 36f4247b50f59e1b2af75b3fe0a31a71f5ca4a2f)
  #02 pc 0000000000440554  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #03 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #04 pc 00000000003a0a68  [anon:dalvik-classes6.dex extracted in memory from /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/base.apk!classes6.dex] (video.api.rtmpdroid.Rtmp.close+0)
  #05 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #06 pc 000000000024426c  [anon:dalvik-classes6.dex extracted in memory from /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/base.apk!classes6.dex] (io.github.thibaultbee.streampack.ext.rtmp.internal.endpoints.RtmpProducer.disconnect+4)
  #07 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #08 pc 0000000000257e30  [anon:dalvik-classes6.dex extracted in memory from /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/base.apk!classes6.dex] (io.github.thibaultbee.streampack.streamers.live.BaseCameraLiveStreamer.disconnect+4)
  #09 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #10 pc 000000000002c1b0  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/base.apk!classes2.dex] (video.api.flutter.livestream.MethodCallHandlerImpl.onMethodCall+184)
  #11 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #12 pc 0000000000231a5a  [anon:dalvik-classes6.dex extracted in memory from /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/base.apk!classes6.dex] (io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage+34)
  #13 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #14 pc 0000000000226140  [anon:dalvik-classes6.dex extracted in memory from /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/base.apk!classes6.dex] (io.flutter.embedding.engine.dart.DartMessenger.invokeHandler+36)
  #15 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #16 pc 00000000002261c8  [anon:dalvik-classes6.dex extracted in memory from /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/base.apk!classes6.dex] (io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger+40)
  #17 pc 000000000020a958  /apex/com.android.art/lib64/libart.so (nterp_helper+5720) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #18 pc 0000000000225988  [anon:dalvik-classes6.dex extracted in memory from /data/app/~~Ayl6IA8598LKQIpHiiYSGw==/com.flyhy.customer-MhumktQxH6twbji9kCfiSg==/base.apk!classes6.dex] (io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run+24)
  #19 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #20 pc 000000000048c51c  /system/framework/framework.jar (android.os.Handler.handleCallback+4)
  #21 pc 000000000202d300  /memfd:jit-cache (deleted)
swathyns commented 2 years ago

Please help, due to this we can't go to the production.

ThibaultBee commented 2 years ago

I already know that it crashes at stopStreaming due to a free in nativeClose of rtmpdroid. I tried many startStreaming / stopStreaming with the example yesterday and could not reproduced it... Can you reproduce it with the example provided in this repository?

Mellow-Developer commented 2 years ago

I already know that it crashes at stopStreaming due to a free in nativeClose of rtmpdroid. I tried many startStreaming / stopStreaming with the example yesterday and could not reproduced it... Can you reproduce it with the example provided in this repository?

It seems the problem is not related to the android version. I think it's directly related to the RAM free space size at the time. When we call stopStreaming, the cameraPreview freezes for 2 seconds in devices with more than 6 gig of RAM and it crashes on devices with lesser RAM size. Therefore, I saw no crashes on emulator and galaxy s22 ultra. but I saw the crash on galaxy A32. Hope it should help you to find a clue. @ThibaultBee

rahultechvantage commented 2 years ago

I already know that it crashes at stopStreaming due to a free in nativeClose of rtmpdroid. I tried many startStreaming / stopStreaming with the example yesterday and could not reproduced it... Can you reproduce it with the example provided in this repository?

Hi,

I have tested the same with your example repository. App Crash is occurring when we stop the stream. Please find below error output.

Build fingerprint: 'samsung/m21nnxx/m21:12/SP1A.210812.016/M215FXXU3CVH1:user/release-keys' Revision: '5' ABI: 'arm64' Processor: '7' Timestamp: 2022-10-03 23:11:11.707855514+0530 Process uptime: 85s Cmdline: video.api.flutter.livestream.example pid: 11275, tid: 11275, name: estream.example >>> video.api.flutter.livestream.example <<< uid: 10421 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x83bff2663c x0 0000000000000000 x1 00000073a6932eb8 x2 00000073bff26430 x3 0000000000000000 x4 0000000000000001 x5 0000000000000000 x6 000000724a0dfb80 x7 000000724a0df4f0 x8 00000073a691b5a0 x9 00000073174008c0 x10 00000083bff261c8 x11 0000bf0f00000000 x12 0000000000000001 x13 00000000099c1590 x14 00000073bff26430 x15 00000000ebad6a89 x16 00000073a6916d50 x17 00000073a690607c x18 00000073c12f8000 x19 00000073bff26408 x20 0000bf0f17ad0030 x21 00000073bff265c8 x22 00000073c034a000 x23 00000000ffffffdc x24 00000083bff2663c x25 00000073bff26430 x26 0000007fd4d1f0b4 x27 0000007fd4d1f0b0 x28 0000007fd4d1efb0 x29 0000007fd4d1ef20 lr 00000073a6868784 sp 0000007fd4d1eed0 pc 00000073a6867ef4 pst 0000000080000000 backtrace:

00 pc 000000000004def4 /apex/com.android.runtime/lib64/bionic/libc.so (je_free+464) (BuildId: 351225fa1d718acf9e00214d7dd5d405)

  #01 pc 0000000000003858  /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/lib/arm64/librtmpdroid.so (nativeClose(_JNIEnv*, _jobject*)+252) (BuildId: 36f4247b50f59e1b2af75b3fe0a31a71f5ca4a2f)
  #02 pc 0000000000440554  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #03 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #04 pc 00000000004d4550  [anon:dalvik-classes.dex extracted in memory from /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/base.apk] (video.api.rtmpdroid.Rtmp.close+0)
  #05 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #06 pc 00000000003c3bc4  [anon:dalvik-classes.dex extracted in memory from /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/base.apk] (io.github.thibaultbee.streampack.ext.rtmp.internal.endpoints.RtmpProducer.disconnect+4)
  #07 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #08 pc 00000000003d7898  [anon:dalvik-classes.dex extracted in memory from /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/base.apk] (io.github.thibaultbee.streampack.streamers.live.BaseCameraLiveStreamer.disconnect+4)
  #09 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #10 pc 0000000000007fb8  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/base.apk!classes2.dex] (video.api.flutter.livestream.MethodCallHandlerImpl.onMethodCall+184)
  #11 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #12 pc 00000000003b1322  [anon:dalvik-classes.dex extracted in memory from /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/base.apk] (io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage+34)
  #13 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #14 pc 00000000003a598c  [anon:dalvik-classes.dex extracted in memory from /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/base.apk] (io.flutter.embedding.engine.dart.DartMessenger.invokeHandler+36)
  #15 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #16 pc 00000000003a5a14  [anon:dalvik-classes.dex extracted in memory from /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/base.apk] (io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger+40)
  #17 pc 000000000020a958  /apex/com.android.art/lib64/libart.so (nterp_helper+5720) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #18 pc 00000000003a51d4  [anon:dalvik-classes.dex extracted in memory from /data/app/~~vK2ERL23QQvoDxN0DkZF9w==/video.api.flutter.livestream.example-IgwXzwpyb9LKhyQvohLLAA==/base.apk] (io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run+24)
  #19 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
  #20 pc 000000000048c51c  /system/framework/framework.jar (android.os.Handler.handleCallback+4)
  #21 pc 0000000002026600  /memfd:jit-cache (deleted)

Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.3.3, on macOS 12.1 21C52 darwin-arm, locale en-IN) [✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 13.4) [✓] Chrome - develop for the web [✓] Android Studio (version 2021.1) [✓] VS Code (version 1.71.2) [✓] Connected device (3 available) [✓] HTTP Host Availability

• No issues found! @ThibaultBee Please help us with a solution. If required i am ready to share my screen and will show the error.

rahultechvantage commented 2 years ago

@ThibaultBee Hi, is this output enough for debugging?

ThibaultBee commented 2 years ago

Have you reproduced this issue in the example provided in this repo?

ThibaultBee commented 2 years ago

Could anyone share their rtmp url + stream key with me?

Glexium commented 2 years ago

Hello, I tried using mostly the example code, on 1.0.3 it also crashes, after finished a streaming I reload the entire page because I required user input, I can't share the stream key (production), one more thing, the streaming page is loading inside this lib "persistent_bottom_nav_bar" and when I change navigation it reload everything

ThibaultBee commented 2 years ago

Ok. Maybe not the exact url, I just need to check that code support any your URL. Of course, you can change the stream key.

Glexium commented 2 years ago

class Params { final VideoConfig video = VideoConfig.withDefaultBitrate(); final AudioConfig audio = AudioConfig();

String rtmpUrl = "rtmps://global-live.mux.com:443/app"; String streamKey = "";

String getResolutionToString() { return video.resolution.toPrettyString(); }

String getChannelToString() { return audio.channel.toPrettyString(); }

String getBitrateToString() { return bitrateToPrettyString(audio.bitrate); }

String getSampleRateToString() { return audio.sampleRate.toPrettyString(); } }

Other file:

Future startStreaming() async { final LiveStreamController? liveStreamController = _controller; if (liveStreamController == null) { SnackBarModel().showSnackBar( message: 'Error: create a camera controller first.', ); return; }

try {
  await liveStreamController.startStreaming(
      streamKey: _config.streamKey, url: _config.rtmpUrl);
} catch (error) {
  if (error is PlatformException) {
    print("Error: failed to start stream: ${error.message}");
  } else {
    print("Error: failed to start stream: $error");
  }
}

}

Future stopStreaming() async { final LiveStreamController? liveStreamController = _controller; if (liveStreamController == null) { SnackBarModel().showSnackBar( message: 'Error: create a camera controller first.', ); return; }

try {
  liveStreamController.stopStreaming();
} catch (error) {
  if (error is PlatformException) {
    SnackBarModel().showSnackBar(
      message: "Failed to stop stream: ${error.message}",
    );
  } else {
    SnackBarModel().showSnackBar(
      message: "Failed to stop stream: $error",
    );
  }
}

}

I hope it helps

rahulrajpampady commented 1 year ago

Have you reproduced this issue in the example provided in this repo?

Yes, logs available in the previous comments. Let me know it you require any additional information.

ThibaultBee commented 1 year ago

Can anyone test this branch: https://github.com/apivideo/api.video-flutter-live-stream/tree/bugfix/rtmp_nativeClose It is a only workaround for now. If it fixes the crash, I will try to implement a better solution.

rahultechvantage commented 1 year ago

Can anyone test this branch: https://github.com/apivideo/api.video-flutter-live-stream/tree/bugfix/rtmp_nativeClose It is a only workaround for now. If it fixes the crash, I will try to implement a better solution.

Testing the same, i will let you know the output within half an hour. Thank you.

rahultechvantage commented 1 year ago

Can anyone test this branch: https://github.com/apivideo/api.video-flutter-live-stream/tree/bugfix/rtmp_nativeClose It is a only workaround for now. If it fixes the crash, I will try to implement a better solution.

Hi @ThibaultBee,

Tested multiple time and seems it's working. App is not crashing now. Appreciating your effort and thank you so much. Is it possible to publish the package with solution today.

ThibaultBee commented 1 year ago

Hi, Glad to hear that. That issue has been painfull for a while. I will try something better because the current solution has a memory leak. I might ask you to restest it several time.

rahultechvantage commented 1 year ago

Hi, Glad to hear that. That issue has been painfull for a while. I will try something better because the current solution has a memory leak. I might ask you to restest it several time.

Sure, waiting for your reply and always welcome to test any time.

ThibaultBee commented 1 year ago

Ok, I updated the snapshot of rtmpdroid. To be sure that rtmpdroid has been updated, could you clone a new project on the bugfix/rtmp_nativeClose branch?

rahultechvantage commented 1 year ago

bugfix/rtmp_nativeClose - This branch i have tested before. Do you want to test it again?

ThibaultBee commented 1 year ago

Yes. It is the same branch but one of the dependency has changed. To be sure that the dependency is correctly fetched, please create a brand new clone of this project.

rahultechvantage commented 1 year ago

Yes. It is the same branch but one of the dependency has changed. To be sure that the dependency is correctly fetched, please create a brand new clone of this project.

OK, doing the same and let you know asap.

rahultechvantage commented 1 year ago

Yes. It is the same branch but one of the dependency has changed. To be sure that the dependency is correctly fetched, please create a brand new clone of this project.

Hi @ThibaultBee

Took a fresh clone of the project and switch branch to bugfix/rtmp_nativeClose. Installed the app and tested Start/Stop live stream multiple times. App is not crashing.

rahultechvantage commented 1 year ago

Hi @ThibaultBee

Is this solution reflect in the package available in pub?

ThibaultBee commented 1 year ago

Sorry not yet. I want to fix another small memory leak, I will ask for your help once more. Then if it works, I will release everything (rtmpdroid+StreamPack+flutter). But building rtmpdroid takes~40-50min

ThibaultBee commented 1 year ago

hum I am not 100% sure that taken a fresh clone is enough. Could you run this command in the example/android folder:

./gradlew assemble --refresh-dependencies

Then install the application on your device.

rahultechvantage commented 1 year ago

hum I am not 100% sure that taken a fresh clone is enough. Could you run this command in the example/android folder:

./gradlew assemble --refresh-dependencies

Then install the application on your device.

Sure, will check and let you know.

ThibaultBee commented 1 year ago

Hi, Thank you for your tests. I just tested again and could connect to a local ffplay. Are you sure your RTMP server is okay?

rahultechvantage commented 1 year ago

Hi, Thank you for your tests. I just tested again and could connect to a local ffplay. Are you sure your RTMP server is okay?

Hi It's working fine now.

rahultechvantage commented 1 year ago

Hi, Thank you for your tests. I just tested again and could connect to a local ffplay. Are you sure your RTMP server is okay?

Hi @ThibaultBee

Tested the same after refreshing dependencies. It's working fine and app is not crashing.

ThibaultBee commented 1 year ago

I guess you don't have the crash on stopStreaming.

Ok, I just updated the snapshot of rtmpdroid. Could you test with --refresh-dependencies one last time please?

rahultechvantage commented 1 year ago

I guess you don't have the crash on stopStreaming.

Ok, I just updated the snapshot of rtmpdroid. Could you test with --refresh-dependencies one last time please?

Hi @ThibaultBee

Dependencies refreshed and installed the apk. Start/Stop streaming is working fine without any crash.

ThibaultBee commented 1 year ago

Ok. Thank you very much! 🥇 Then I am going to release rtmpdroid and StreamPack. And we will make one last test with these releases :)

rahultechvantage commented 1 year ago

Ok. Thank you very much! 🥇 Then I am going to release rtmpdroid and StreamPack. And we will make one last test with these releases :)

After updating rtmpdroid and StreamPack, can i test the live streaming from my project?

ThibaultBee commented 1 year ago

As flutter allows git dependencies, you can.

ThibaultBee commented 1 year ago

Ok, I pushed the fix in the main branch. Could you test it in your app? In your pubspec.yaml, you will have to replace the apivideo_live_stream package by something like this:

dependencies:
  apivideo_live_stream:
    git:
      url: git@github.com:apivideo/api.video-flutter-live-stream.git
rahultechvantage commented 1 year ago

Hi @ThibaultBee

I am getting this error when i change the package name as above.

Git error. Command: git clone --mirror git@github.com:apivideo/api.video-flutter-live-stream.git /Users/rahulrajk/.pub-cache/git/cache/api.video-flutter-live-stream-1dcb647fb915b15278d6f966f52caf1d6290f9fb stdout: stderr: Cloning into bare repository '/Users/rahulrajk/.pub-cache/git/cache/api.video-flutter-live-stream-1dcb647fb915b15278d6f966f52caf1d6290f9fb'... Host key verification failed. fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists. exit code: 128 pub get failed (server unavailable) -- attempting retry 1 in 1 second...

ThibaultBee commented 1 year ago

Hi, This is because you haven't set your ssh key with github. Otherwise, you may want to use git with HTTPS connection instead. In this case, replace git url with https://github.com/apivideo/api.video-flutter-live-stream.git

rahultechvantage commented 1 year ago

Hi, This is because you haven't set your ssh key with github. Otherwise, you may want to use git with HTTPS connection instead. In this case, replace git url with https://github.com/apivideo/api.video-flutter-live-stream.git

Hi @ThibaultBee

Now pub updated

apivideo_live_stream: git: url: https://github.com/apivideo/api.video-flutter-live-stream.git ref: main

Below issues observed.

1)java.net.connect exception: Unable to start live stream. it showing error failed to connect stream.

But live stream is happening with the package available in pub.

ThibaultBee commented 1 year ago

Nothing has changed since the last test... Could you check in the example application?