<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">Le 18 nov. 2020 à 14:48, Jérôme Laheurte <<a href="mailto:jerome@jeromelaheurte.net" class="">jerome@jeromelaheurte.net</a>> a écrit :</div><br class="Apple-interchange-newline"><div class=""><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="Apple-interchange-newline"><br class=""><blockquote type="cite" class=""><div class="">Le 6 nov. 2020 à 16:21, Jérôme Laheurte <<a href="mailto:jerome@jeromelaheurte.net" class="">jerome@jeromelaheurte.net</a>> a écrit :</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">Le 5 nov. 2020 à 16:28, Nicolas Dufresne <<a href="mailto:nicolas@ndufresne.ca" class="">nicolas@ndufresne.ca</a>> a écrit :</div><div class=""><br class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">What is needed is to resurrect this as an MR and finish whatever is</span><br class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">needed:</span><br class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><a href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/618" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/618</a><br class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"></div></blockquote></div><br class=""><div class="">It just so happens that I’m currently investigating this for work. I did a quick and dirty merge and some fixes for Meson, but haven’t had the occasion to test it yet (lack of hardware). Since I’m definitely not an Android developer there’s not much I could do if it doesn’t work but I’ll keep you informed.</div></div></div></blockquote><br class=""></div><div class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">Obviously Google already gave up on the « don’t be evil » stuff when they designed Android, that was a PITA. Anyway I made some progress but unfortunately the only hardware I have right now (Galaxy Tab S2) does not support camera2 so I couldn’t test the actual capture. I had to add some validation in gst_ahc2_src_get_caps to prevent a SIGSEGV when no compatible camera is found; aside from this the plugin registers. I’ll ask my boss to buy a more recent Android tablet and I’ll come back when I have more news.</div></div></blockquote><br class=""></div>Got a Galaxy Tab 2; this is not going well. Things happen but in the end all I get is<div class=""><br class=""></div><div class=""><div class="">2020-12-04 11:59:37.543 395-1395/? W/GStreamer+basesrc: 0:00:02.089663691 0xb6b00b50 ../libs/gst/base/gstbasesrc.c:3127:gst_base_src_loop:<ahc2src0> error: Internal data stream error.</div><div class="">2020-12-04 11:59:37.543 395-1395/? W/GStreamer+basesrc: 0:00:02.090047383 0xb6b00b50 ../libs/gst/base/gstbasesrc.c:3127:gst_base_src_loop:<ahc2src0> error: streaming stopped, reason not-linked (-1)</div><div class="">2020-12-04 11:59:37.544 395-1395/? W/GStreamer+queue: 0:00:02.090575422 0xb6b00b50 ../plugins/elements/gstqueue.c:990:gst_queue_handle_sink_event:<queue0> error: Internal data stream error.</div><div class="">2020-12-04 11:59:37.544 395-1395/? W/GStreamer+queue: 0:00:02.090710383 0xb6b00b50 ../plugins/elements/gstqueue.c:990:gst_queue_handle_sink_event:<queue0> error: streaming stopped, reason not-linked (-1)</div><div class="">2020-12-04 11:59:37.544 395-1365/? E/spdlog: [2020-12-04 11:59:37.544] [GStreamer (instance 0)] [error] GST Error: Internal data stream error.</div><div class="">2020-12-04 11:59:37.544 395-1365/? E/spdlog: [2020-12-04 11:59:37.544] [GStreamer (instance 0)] [error] Additional info: ../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:QuividiPipeline/GstAHC2Src:ahc2src0:</div><div class=""> streaming stopped, reason not-linked (-1)</div></div><div class=""><br class=""></div><div class="">and nothing more, even though the logging level is *:7. I couldn’t even test a standalone NDK camera2 sample; I found 2 on Github but opening them in Android Studio leads to a much helpful « NullPointerException (no error message) » error before the project even loads (Google/SO suggest several reasons for that, and associated workarounds, which don’t work). I’m going to poke around some more but I think I’ll give up soon to keep what’s left of my sanity.</div><div class=""><br class=""></div><div class="">Best regards</div><div class="">Jérôme Laheurte</div><div class=""><br class=""></div></body></html>