text:
Video function broken/unstable/no preview with gphoto2

Describe the bug
Since a recent update (tested 2.0.2) the Video function became very unstable for me using gphoto2 with liveview

sometimes it throws error. Log:
FileNotFoundError: ‚None‘ video not found

Sometimes Video works but cannot be displayed on result screen (Media corrupt) and Gallery (just blank item)

(3. Never works as intended for me.)
To Reproduce
Steps to reproduce the behavior:

Use gphoto2
Enable Live View
Take Video

Expected behavior
Working Function
If I can help testing something, please contact.
Really Looking forward to this awesome Feature and the implementation of boomerang in the Future :)
System (please complete the following information):

OS: Xubuntu 22.04
Firefox Linux and Safari iOS

Additional context
If I can help testing something, please contact.
Really Looking forward to this awesome Feature and the implementation of boomerang in the Future :)

Hey,
could you upload a logfile from a restring, please?
You mean only the video does not work? Live preview is good all the times or has issues with your camera?
you installed ffmpeg?

Hey,
the live preview works.
To be more precise for "2.":
What is not working is the result-screen after video recording, so media playback on result-screen is broken.
And in the gallery there are only white items, when they are clicked, there is broken media also.
ffmpeg is installed. The video files are indeed stored in the media folders and are playable with vlc.
I will post the log, will have to change computers.

Any errors in the browser console?
Would chrome work(that is what I use to develop)?

This is log entry from working video with broken media in result / gallery:
2024-04-15 13:19:41,359 [    INFO] _videoworker_fun start (abstractbackend.py:388)
2024-04-15 13:19:41,360 [    INFO] writing to ffmpeg stdin (abstractbackend.py:429)
2024-04-15 13:19:41,361 [   DEBUG] -- ffmpeg startuptime: 0.0s  (abstractbackend.py:362)
ffmpeg started on 2024-04-15 at 13:19:41
Report written to "./log/ffmpeg-last.log"
Log level: 32
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 70.100 / 56. 70.100
libavcodec     58.134.100 / 58.134.100
libavformat    58. 76.100 / 58. 76.100
libavdevice    58. 13.100 / 58. 13.100
libavfilter     7.110.100 /  7.110.100
libswscale      5.  9.100 /  5.  9.100
libswresample   3.  9.100 /  3.  9.100
libpostproc    55.  9.100 / 55.  9.100
2024-04-15 13:19:44,361 [    INFO] no user input within 3s so stopping video (processingservice.py:425)
2024-04-15 13:19:44,362 [    INFO] transition after: counting--(_counted)-->record (processingservice.py:226)
2024-04-15 13:19:44,363 [    INFO] exit: record from stop_recording (processingservice.py:237)
2024-04-15 13:19:44,363 [    INFO] WledService preset_standby triggered (wledservice.py:132)
2024-04-15 13:19:44,363 [   DEBUG] stop recording (abstractbackend.py:372)
2024-04-15 13:19:44,431 [    INFO] writing to ffmpeg stdin finished (abstractbackend.py:448)
2024-04-15 13:19:44,431 [   DEBUG] -- process time: 3.07s  (abstractbackend.py:449)
Input #0, image2pipe, from 'pipe:':
Duration: N/A, start: 1713179981.480000, bitrate: N/A
Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 960x640, 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
[libx264 @ 0x5e72e1f59000] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x5e72e1f59000] profile High 4:2:2, level 3.1, 4:2:2, 8-bit
[libx264 @ 0x5e72e1f59000] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=6 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=abr mbtree=1 bitrate=3000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'tmp/Gphoto2Backend_9e8ad11ff0034e75aa972f077ae1938f.mp4':
Metadata:
encoder         : Lavf58.76.100
Stream #0:0: Video: h264 (avc1 / 0x31637661), yuvj422p(pc, bt470bg/unknown/unknown, progressive), 960x640, q=2-31, 3000 kb/s, 6 fps, 12288 tbn
Metadata:
encoder         : Lavc58.134.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/3000000 buffer size: 0 vbv_delay: N/A
[mp4 @ 0x5e72e1f5fb80] Starting second pass: moving the moov atom to the beginning of the file
frame=   20 fps=0.0 q=-1.0 Lsize=    2444kB time=00:00:02.83 bitrate=7065.5kbits/s dup=0 drop=13 speed=4.66x
video:2443kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.044976%
[libx264 @ 0x5e72e1f59000] frame I:1     Avg QP: 0.33  size:276851
[libx264 @ 0x5e72e1f59000] frame P:5     Avg QP:10.14  size:113050
[libx264 @ 0x5e72e1f59000] frame B:14    Avg QP: 8.61  size:118466
[libx264 @ 0x5e72e1f59000] consecutive B-frames:  5.0%  0.0% 15.0% 80.0%
[libx264 @ 0x5e72e1f59000] mb I  I16..4:  8.7% 59.6% 31.7%
[libx264 @ 0x5e72e1f59000] mb P  I16..4: 12.8% 57.0%  2.9%  P16..4: 17.3%  3.8%  2.6%  0.0%  0.0%    skip: 3.7%
[libx264 @ 0x5e72e1f59000] mb B  I16..4:  8.0% 40.4%  0.7%  B16..8:  9.6%  5.4%  1.1%  direct:25.8%  skip: 9.0%  L0:26.9% L1:45.0% BI:28.1%
[libx264 @ 0x5e72e1f59000] final ratefactor: 15.05
[libx264 @ 0x5e72e1f59000] 8x8 transform intra:79.1% inter:63.5%
[libx264 @ 0x5e72e1f59000] coded y,uvDC,uvAC intra: 89.5% 96.4% 91.2% inter: 58.7% 72.4% 55.9%
[libx264 @ 0x5e72e1f59000] i16 v,h,dc,p: 20%  5% 58% 17%
[libx264 @ 0x5e72e1f59000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25%  8% 48%  2%  3%  4%  3%  4%  3%
[libx264 @ 0x5e72e1f59000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 14% 18%  5%  7%  8%  6%  6%  6%
[libx264 @ 0x5e72e1f59000] i8c dc,h,v,p: 67%  6% 20%  7%
[libx264 @ 0x5e72e1f59000] Weighted P-Frames: Y:80.0% UV:60.0%
[libx264 @ 0x5e72e1f59000] kb/s:6001.50
2024-04-15 13:19:45,053 [    INFO] ffmpeg finished (abstractbackend.py:466)
2024-04-15 13:19:45,053 [   DEBUG] -- process time: 0.62s  (abstractbackend.py:467)
2024-04-15 13:19:45,054 [    INFO] record written to tmp/Gphoto2Backend_9e8ad11ff0034e75aa972f077ae1938f.mp4 (abstractbackend.py:470)
2024-04-15 13:19:45,054 [    INFO] leaving _videoworker_fun (abstractbackend.py:472)
2024-04-15 13:19:45,054 [    INFO] _video_worker_thread stopped and joined (abstractbackend.py:375)
2024-04-15 13:19:45,054 [    INFO] enter: captures_completed from stop_recording (processingservice.py:230)
2024-04-15 13:19:45,055 [    INFO] start postprocessing phase 2 (processingservice.py:439)
2024-04-15 13:19:45,055 [   DEBUG] record to filepath_neworiginalfile=PosixPath('media/original/video_show_20240415-131945-055246.mp4') (processingservice.py:476)
2024-04-15 13:19:45,085 [    INFO] -- process time: 0.03s to create video (processingservice.py:485)
2024-04-15 13:19:45,085 [    INFO] finished postprocessing (processingservice.py:496)
2024-04-15 13:19:45,086 [    INFO] adding items to db (processingservice.py:499)
2024-04-15 13:19:45,086 [   DEBUG] adding MediaItem Id: b5cbb2ea966742073c1d23b92ad48be0, filename video_show_20240415-131945-055246.mp4 to collection (processingservice.py:502)
2024-04-15 13:19:45,087 [    INFO] transition after: record--(stop_recording)-->captures_completed (processingservice.py:226)
2024-04-15 13:19:45,087 [    INFO] exit: captures_completed from _present (processingservice.py:237)
2024-04-15 13:19:45,087 [    INFO] enter: present_capture from _present (processingservice.py:230)
2024-04-15 13:19:45,088 [    INFO] transition after: captures_completed--(_present)-->present_capture (processingservice.py:226)
2024-04-15 13:19:45,088 [    INFO] exit: present_capture from _finish (processingservice.py:237)
2024-04-15 13:19:45,089 [    INFO] enter: finished from _finish (processingservice.py:230)
2024-04-15 13:19:45,089 [    INFO] transition after: present_capture--(_finish)-->finished (processingservice.py:226)
2024-04-15 13:19:45,089 [   DEBUG] job finished (processingservice.py:64)
2024-04-15 13:19:45,090 [   DEBUG] _process_fun left (processingservice.py:84)
2024-04-15 13:19:45,280 [    INFO] 127.0.0.1:48258 - "GET /media/processed/preview/video_show_20240415-131945-055246.mp4 HTTP/1.1" 200 (h11_impl.py:477)

This is for Error during video recording without result:
2024-04-15 13:44:52,816 [    INFO] _videoworker_fun start (abstractbackend.py:388)
2024-04-15 13:44:52,822 [    INFO] writing to ffmpeg stdin (abstractbackend.py:429)
2024-04-15 13:44:52,822 [   DEBUG] -- ffmpeg startuptime: 0.01s  (abstractbackend.py:362)
ffmpeg started on 2024-04-15 at 13:44:52
Report written to "./log/ffmpeg-last.log"
Log level: 32
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 70.100 / 56. 70.100
libavcodec     58.134.100 / 58.134.100
libavformat    58. 76.100 / 58. 76.100
libavdevice    58. 13.100 / 58. 13.100
libavfilter     7.110.100 /  7.110.100
libswscale      5.  9.100 /  5.  9.100
libswresample   3.  9.100 /  3.  9.100
libpostproc    55.  9.100 / 55.  9.100
2024-04-15 13:44:53,023 [   ERROR] timeout receiving frames (abstractbackend.py:441)
Traceback (most recent call last):
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/backends/abstractbackend.py", line 437, in _videoworker_fun
ffmpeg_subprocess.stdin.write(self._wait_for_lores_image())
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/backends/gphoto2.py", line 176, in _wait_for_lores_image
raise TimeoutError("timeout receiving frames")
TimeoutError: timeout receiving frames
2024-04-15 13:44:53,024 [   ERROR] Failed to create video! Error: timeout receiving frames (abstractbackend.py:442)
2024-04-15 13:44:53,025 [    INFO] leaving _videoworker_fun (abstractbackend.py:472)
2024-04-15 13:44:57,823 [    INFO] no user input within 5s so stopping video (processingservice.py:425)
2024-04-15 13:44:57,824 [    INFO] transition after: counting--(_counted)-->record (processingservice.py:226)
2024-04-15 13:44:57,825 [    INFO] exit: record from stop_recording (processingservice.py:237)
2024-04-15 13:44:57,826 [    INFO] WledService preset_standby triggered (wledservice.py:132)
2024-04-15 13:44:57,827 [   DEBUG] stop recording (abstractbackend.py:372)
2024-04-15 13:44:57,828 [    INFO] _video_worker_thread stopped and joined (abstractbackend.py:375)
2024-04-15 13:44:57,828 [    INFO] enter: captures_completed from stop_recording (processingservice.py:230)
2024-04-15 13:44:57,830 [    INFO] start postprocessing phase 2 (processingservice.py:439)
2024-04-15 13:44:57,830 [   ERROR] 'None' video not found! pls check logs (processingservice.py:66)
Traceback (most recent call last):
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/processingservice.py", line 63, in _process_fun
self._state_machine.start()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/event.py", line 54, in trigger_event
return event_instance.trigger(self, *args, **kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/event.py", line 29, in trigger
return machine._process(trigger_wrapper)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/statemachine.py", line 288, in _process
return self._processing_loop()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/statemachine.py", line 303, in _processing_loop
result = trigger()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/event.py", line 27, in trigger_wrapper
return self._trigger(trigger_data)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/event.py", line 39, in _trigger
if transition.execute(event_data):
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/transition.py", line 140, in execute
result = machine._activate(event_data)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/statemachine.py", line 336, in _activate
self._callbacks_registry[target.enter].call(
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/callbacks.py", line 228, in call
return [
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/callbacks.py", line 229, in
callback(*args, **kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/callbacks.py", line 29, in call
result = self._callback(*args, **kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/dispatcher.py", line 48, in call
return self._cache(*args, **kwds)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/signature.py", line 56, in method_wrapper
return method(*ba.args, **ba.kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/processingservice.py", line 472, in on_enter_captures_completed
temp_videofilepath = self._aquisition_service.get_recorded_video()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/aquisitionservice.py", line 145, in get_recorded_video
return self._get_video_backend().get_recorded_video()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/backends/abstractbackend.py", line 385, in get_recorded_video
raise FileNotFoundError(f"'{self._video_recorded_videofilepath}' video not found! pls check logs")
FileNotFoundError: 'None' video not found! pls check logs
2024-04-15 13:44:57,838 [   ERROR] the job failed, error: 'None' video not found! pls check logs (processingservice.py:67)
2024-04-15 13:44:57,839 [   ERROR] Uncaught exception in thread <Thread(_processingservice_thread, started daemon 136767642527296)>: <class 'FileNotFoundError'> 'None' video not found! pls check logs (loggingservice.py:189)
Traceback (most recent call last):
File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/usr/lib/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/processingservice.py", line 78, in _process_fun
raise exc
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/processingservice.py", line 63, in _process_fun
self._state_machine.start()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/event.py", line 54, in trigger_event
return event_instance.trigger(self, *args, **kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/event.py", line 29, in trigger
return machine._process(trigger_wrapper)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/statemachine.py", line 288, in _process
return self._processing_loop()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/statemachine.py", line 303, in _processing_loop
result = trigger()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/event.py", line 27, in trigger_wrapper
return self._trigger(trigger_data)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/event.py", line 39, in _trigger
if transition.execute(event_data):
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/transition.py", line 140, in execute
result = machine._activate(event_data)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/statemachine.py", line 336, in _activate
self._callbacks_registry[target.enter].call(
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/callbacks.py", line 228, in call
return [
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/callbacks.py", line 229, in
callback(*args, **kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/callbacks.py", line 29, in call
result = self._callback(*args, **kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/dispatcher.py", line 48, in call
return self._cache(*args, **kwds)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/statemachine/signature.py", line 56, in method_wrapper
return method(*ba.args, **ba.kwargs)
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/processingservice.py", line 472, in on_enter_captures_completed
temp_videofilepath = self._aquisition_service.get_recorded_video()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/aquisitionservice.py", line 145, in get_recorded_video
return self._get_video_backend().get_recorded_video()
File "/home/PixelAlarm/.local/lib/python3.10/site-packages/photobooth/services/backends/abstractbackend.py", line 385, in get_recorded_video
raise FileNotFoundError(f"'{self._video_recorded_videofilepath}' video not found! pls check logs")
FileNotFoundError: 'None' video not found! pls check logs

I think it could be because Ubuntu installation is different to Debian, maybe filter are missing…
Please also check if there is something in
Report written to "./log/ffmpeg-last.log"
it’s always only last run.
In case it breaks, it would be good to have log from before starting the job also.

Any errors in the browser console? Would chrome work(that is what I use to develop)?

Chrome show a different picture:

Video throws errors more often than Firefox (ErrorReceivingFrames)
When Video is being recorded correctly, it will be shown in resultscreen and gallery correctly in chrome. Also the old media is being displayed in gallery. So this seems indeed to be browser-related.

Just also tested with Firefox and chrome on macOS, preview is working there ok.

Any errors in the browser console? Would chrome work(that is what I use to develop)?

Chrome show a different picture:

Video throws errors more often than Firefox (ErrorReceivingFrames)
When Video is being recorded correctly, it will be shown in resultscreen and gallery correctly in chrome. Also the old media is being displayed in gallery. So this seems indeed to be browser-related.

Just also tested with Firefox and chrome on macOS, preview is working there ok.

So safari is the only browser with issues, right?

Maybe for your cam this timeout is just too tight:
https://github.com/photobooth-app/photobooth-app/blob/f099eabbc1cc4fca39b0fee05824972483b00de6/photobooth/services/backends/gphoto2.py#L175
self._lores_data.condition.wait(timeout=0.2):

For Firefox in Linux, I get following log:
[Child 22427, MediaDecoderStateMachine #3] WARNING: Decoder=722f61dcda00 Decode error: NS_ERROR_DOM_MEDIA_DECODE_ERR (0x806e0004) - virtual MediaResult mozilla::FFmpegVideoDecoder<58>::DoDecode(MediaRawData *, uint8_t *, int, bool *, MediaDataDecoder::DecodedData &): avcodec_send_packet error: Invalid data found when processing input: file /build/firefox/parts/firefox/build/dom/media/MediaDecoderStateMachineBase.cpp:166

Hi,
I think I found the problem. The mjpeg stream has a pixel format with chroma 4:2:2 (yuvj422p).
This seems not to be supported in some browsers. When not specified, ffmpeg will contain the input chroma. This was working with VirtualCamera (yuv420p) but not with the GPhoto2-Stream (yuvj422p).
After forcing yuv420p in ffmpeg (adding a parameter "-pix_fmt yuv420p") through the abstract backend, it now works on all browsers I've testet.
in abstractbackend.py:
...
"-preset",
"veryfast",
"-pix_fmt",
"yuv420p",
"-b:v",  # bitrate
f"{appconfig.misc.video_bitrate}k",
"-movflags",
"+faststart",

Nice finding! Thank you!
In the very end of this post your suspicion is confirmed. https://unix.stackexchange.com/a/741124
Will add it to next release. Not sure if there is an impact on cpu use to encode. Will test and maybe its selectable.

Despite higher cpu usage I added this one.
Will be included in next release.
Thx!
Maybe the browser at one time will be compatible with the 422 format also

Some additional context on this one:
iOS seems not to play videos other than 4:2:0 subsampling for h264.
4:2:0 can be forced by ffmpg profile base|main|high or pix_fmt yuv420p to ensure compatibility.
For now I chose pix_fmt to set (despite there are deprecation warnings in the output) so ffmpeg can choose the profile automatically.

https://trac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayers
https://de.wikipedia.org/wiki/H.264#Profile

For testing if needed, the virtualcamera can be forced to output 422 jpeg also:
img.save(jpeg_buffer, format="jpeg", quality=90)  # add subsampling="4:2:2" could be useful to test for #233

Updated version including a fix is released.
Please enable the compatibility mode in video settings to make it work for you.

repo: photobooth-app/photobooth-app


text:
[v3.0.0-alpha.3] Fatal error: openssl signature could not be verified: openssl public key could not be read

At the root directory of my Symfony 4 project, I run:
$ php phpDocumentor.phar -d src/ -t docs/

And get a fatal error:
Fatal error: Uncaught PharException: phar "C:\wamp64\www\devdungeon\phpDocumentor.phar" openssl signature could not be verified: openssl public key could not be read in C:\wamp64\www\devdungeon\phpDocumentor.phar:10

Stack trace:
#0 C:\wamp64\www\devdungeon\phpDocumentor.phar(10): Phar::mapPhar('box-auto-genera...')
#1 {main}
  thrown in C:\wamp64\www\devdungeon\phpDocumentor.phar on line 10

This is my project: https://github.com/o-alquimista/devdungeon
PHP 7.3.5
Windows 7 64-bit
phpDocumentor v3.0.0-alpha.3 in a PHAR file.

You need to place the key which is in the release as well in the same directory as you installed the phar.

It works now. Sorry.
One question, if I may.
There are no compilation errors when using this version, while on v2 it always complained about missing summaries in some docblocks. Is this the new normal in v3?

Yes we removed the validation. It will come back at some point but not in the 3.0 release. The validation did not fit in the massive amount of internal changes we had to do to support all kind of new language features.
There are many other great tools that can help you with the validation of your code style. At this point we think we can better be good at building a compleet documentation than focus on validation.

source: gharchive/issue

authors: jaapio o-alquimista

license: mit

license_type: permissive

license_source: bigquery


text:
🛑 phpMyFAQ API is down

In ad07b71, phpMyFAQ API (https://api.phpmyfaq.de/versions) was down:

HTTP code: 0
Response time: 0 ms

Resolved: phpMyFAQ API is back up in 421b00d.

license: MIT

license_source: github-api


text:
🛑 phpMyFAQ Homepage is down

In c1c9bb0, phpMyFAQ Homepage (https://www.phpmyfaq.de) was down:

HTTP code: 0
Response time: 0 ms

Resolved: phpMyFAQ Homepage is back up in 0b682ea.


text:
🛑 phpMyFAQ Password Hash Generator Tool is down

In 8ed4754, phpMyFAQ Password Hash Generator Tool (https://password.phpmyfaq.de) was down:

HTTP code: 0
Response time: 0 ms

Resolved: phpMyFAQ Password Hash Generator Tool is back up in d86dd32.


text:
🛑 phpMyFAQ Password Hash Generator Tool is down

In 3633724, phpMyFAQ Password Hash Generator Tool (https://password.phpmyfaq.de) was down:

HTTP code: 0
Response time: 0 ms

Resolved: phpMyFAQ Password Hash Generator Tool is back up in ba343c0.


text:
Import classes and use ::class instead of strings and FQNs

Type: documentation update
Breaking change: no
As promised in https://github.com/phpmd/phpmd/pull/1098 here is a PR to convert string to ::class const as well as import classes. This helps to reduce line length and makes things more consistent. PHPMD at least seems to think so as it helped it discover 3 more violations in it self.

By the way, the only time I we can't use ::class is when we would reference an optional, potentially external, class.

Not so, this works perfectly fine:
<?php

echo IDontExists::class;

By the way, the only time I we can't use ::class is when we would reference an optional, potentially external, class.

Not so, this works perfectly fine:
<?php

use NothingHere\IDontExists;

echo IDontExists::class;

Output:
NothingHere\IDontExists

Odd, I vaguely remember at least one case where it introduces issues...
Anyway, since we aren't working with external classes, we shouldn't run into it.
Also, if we do, we will see it. 😆

PHPStan will complain if the class is missing, maybe that was it?

Nah, was probably some other context. Nevermind.

Could have been Composer where things where installed with the -a (--authoritative) option.

Yeah, could be. 😉 👍

source: gharchive/pull-request

repo: phpmd/phpmd


text:
🛑 qh88com.tel is down

In 8877261, qh88com.tel (https://qh88com.tel) was down:

HTTP code: 403
Response time: 590 ms

Resolved: qh88com.tel is back up in bc379ca after 1 hour, 41 minutes.

repo: phungtd/upptime


text:
Bashar/functions

Implementation of Sphere, Rosenbrock, and Rastrigin functions along with their respective tests.
Note** includes some edits to the makefile, poetry.lock, and pyproject.toml that were required to get things running on my end. I included this just to show how these prereqs may need to be installed differently across different devices. You may not want to commit these changes to main.

All looks good.

authors: bkabbarah phzwart

repo: phzwart/consir


text:
fix parse errors

Fixes the parsing errors I allowed to slip in with #342. It's not clear to me why the parsing broke with $$ but not $ but this seems to be the best solution for today.

Yeah, I just realized the same thing.

authors: StevenClontz prabau

repo: pi-base/data


text:
Add P185 Partition topology and establishing theorems

Resolves #574
This adds a new property P185 Partition topology. The alias Almost discrete is used in Topospaces and several MathSE questions. Not included in this PR are modifications to spaces' traits, which I plan to add in another PR, or theorems involving countability axioms, of which there are many obvious ones, but I need time to untangle implication chains and determine optimal antecedents and consequents.

Topospaces cannot be considered an authoritative source, especially since it has no citations.  Note that in many papers in the literature an "almost discrete" space is one where all points except one are isolated.  Many of our spaces are actually of that kind, and one can deduce some nice easy properties out of that.  Anyway, I don't think "almost discrete" is appropriate here.  But let's see what other reviewers say.

T470: I like this proof.  From this, we should be able to remove T348 and T349 as redundant.

I'd prefer to see at least one peer reviewed manuscript that uses a term before introducing it to the pi-Base.

What do you guys think the better name is: "partition topology" or "has a partition topology"?

T466: I am confused.  What do you mean by "a set of topologically indistinguishable points"?  You mean pairwise indistinguishable?  And such a set is not even closed in general (e.g. in an indiscrete space).
Since we already have the equivalent definition for P185 in terms of the Kolmogorov quotient, we could say something along these lines: (replacing some properties with appropriate links)

Let $Y$ be the Kolmogorov quotient of $X$.  Since $X$ is R0, $Y$ is T1.  And the Kolmogorov quotient of an Alexandrov space is Alexandrov.  So $Y$ is discrete by {T267}, which is equivalent to $X$ having a partition topology.

Topological indistinguishability is an equivalence relation, and really what I meant was each of its equivalence classes.

T44: I think you meant to say "every closed set is open".  Also, remove the second line "Assert on Figure 9".

T44: I think you meant to say "every closed set is open".

Either way works, actually, since open sets being closed means their closures are open.

T44: I think you meant to say "every closed set is open".

Either way works, actually, since open sets being closed means their closures are open.

Yeah, that's fine.

T66 [discrete ==> zero dimensional] is now redundant, since P185 implies ultraparacompact and also R0.  And then applying T464 [ultraparacompact + R0 ==> zero dim].
As an aside (irrelevant for this PR), I don't remember if we talked about that when introducing T464, but do you know any example of ultraparacompact and not zero dim (and of course without R0)?  Would be interesting to add at some point.

Some interesting stuff already.  Will resume tomorrow.

As an aside (irrelevant for this PR), I don't remember if we talked about that when introducing T464, but do you know any example of ultraparacompact and not zero dim (and of course without R0)?  Would be interesting to add at some point.

The only spaces I know about are those where any open cover must include the full space $X$ as an element and sums of these. This includes the excluded point spaces.

@danflapjax Did you want to comment on any of the pending items above?
In particular, about the alias.  Here are a few literature references that use "almost discrete" in the sense of having exactly one nonisolated point:

https://arxiv.org/abs/2312.10724
https://www.sciencedirect.com/science/article/abs/pii/S0166864122001596?via%3Dihub
https://www.sciencedirect.com/science/article/abs/pii/S0166864122001596?via%3Dihub

I don't have any strong feelings about the alias, so I'm alright with removing it.

I don't have any strong feelings about the alias, so I'm alright with removing it.

Okay, I'll remove it and wrap this up.

authors: StevenClontz danflapjax prabau


text:
T640: every LOTS is collectionwise normal

Answers https://topology.pi-base.org/spaces?q=LOTS%2B~Collectionwise+normal

Note: this is also kind of shown in https://math.stackexchange.com/a/322974.  There is also a mention of an article by Carter in another answer.  Did not read it, but could be worth taking a look.

This will follow from #927, if monotonically normal gets added. LOTS are GO-spaces, GO-spaces are monotonically normal, which are in turn even hereditarily collectionwise normal.

I'd suggest just adding monotonically normal, as in #927, then get this automatically deduced. @prabau do you still want to do the addition of monotonically normal? Or I can just do it myself.

This will follow from #927, if monotonically normal gets added. LOTS are GO-spaces, GO-spaces are monotonically normal, which are in turn even hereditarily collectionwise normal.

Right.  I know about that.  We could still mention this current result now, and later replace the theorem as needed.

This will follow from #927, if monotonically normal gets added. LOTS are GO-spaces, GO-spaces are monotonically normal, which are in turn even hereditarily collectionwise normal.

Right. I know about that. We could still mention this current result now, and later replace the theorem as needed.

That also works. Adding monotonically normal and doing reviews will take a day or two.

This will follow from #927, if monotonically normal gets added. LOTS are GO-spaces, GO-spaces are monotonically normal, which are in turn even hereditarily collectionwise normal.

Right. I know about that. We could still mention this current result now, and later replace the theorem as needed.

That also works. Adding monotonically normal and doing reviews will take a day or two.

I was planning to do it.  Is there a rush to do it now?

This will follow from #927, if monotonically normal gets added. LOTS are GO-spaces, GO-spaces are monotonically normal, which are in turn even hereditarily collectionwise normal.

Right. I know about that. We could still mention this current result now, and later replace the theorem as needed.

That also works. Adding monotonically normal and doing reviews will take a day or two.

I was planning to do it. Is there a rush to do it now?

No, not really. Just seeing this PR reminds of that, is all.

I was planning to do it. Is there a rush to do it now?

No, not really. Just seeing this PR reminds of that, is all.

OK.  I'll start working on it after I finish reviewing other stuff.

Note: this is also kind of shown in https://math.stackexchange.com/a/322974, or at least we could mention this mathse answer. There is also a mention of an article by Carter in another answer. Did not read it, but could be worth taking a look.

Added mathse reference. I agree with the consensus: add this here, improve with monotonically normal later.

As an aside, the quoted sources show that a LOTS is hereditarily collectionwise normal
This last property would be good to add at some point. Does one of you know an example of collectionwise normal space that is not hereditarily so?

The theorem number conflicts with #974.  Needs to be changed.

I'll change the theorem number when I get a chance, though i think as a policy it's intractable in the long term to check every open pr to avoid id conflicts: once a conflict is merged, pending prs will be able to tell and be updated.

This last property would be good to add at some point. Does one of you know an example of collectionwise normal space that is not hereditarily so?

https://topology.pi-base.org/spaces?q=Collectionwise+normal%2B~Completely+normal

I'll change the theorem number when I get a chance, though i think as a policy it's intractable in the long term to check every open pr to avoid id conflicts: once a conflict is merged, pending prs will be able to tell and be updated.

I understand.  It's just that the other PR has already been approved.  But it is make it easier, I will now merge it to make it clear.

#974 now merged.

I'll change the theorem number when I get a chance, though i think as a policy it's intractable in the long term to check every open pr to avoid id conflicts: once a conflict is merged, pending prs will be able to tell and be updated.

I understand. It's just that the other PR has already been approved. But if it makes it easier, I will now merge it to make it clear.

Ah, definitely then! Didn't realize it was ready.

Before approving, isn't is also the case that GO-spaces are collectionwise normal (cwn)?
Reasoning: The sources mentioned show that LOTS are hereditarily cwn.  Since a GO-space is a subspace of a LOTS, it will also be cwn.
So for now, do you want to update the theorem?  Or leave it like this and I'll do the change to [GO-space ==> hered. cwn] while introducing "hereditarily cwn", which I'll do later today or tomorrow.

I didn't remember we had GO-space already!

Anyway, this can be merged, or superceded by a PR that introduces hereditarily collection wise normal

I made a change to the proof.  Please take a look.
One nice thing is that we can derive that three more spaces are collectionwise normal, and two more are not GO-spaces.

Looks good @prabau, and I fixed the numbering conflict.

I'm not sure if this is just a display error on my devices, but I've tried both on my laptop and iPad, for some reason extra curly brackets show up in T629:

The code looks correct though, so I'm not sure what went wrong here.

It's a typo in the PR.  {{P133}} should be {P133}, etc.
Fixing this right now, and then you can approve and merge.

@prabau Oh yes, external links need two curly brackets, internal links need only one. Didn't notice that.

authors: StevenClontz david20000813 prabau


text:
ios cookie do not persist.

[x] I have read the Get Started - Installation section
[x] I have read and done the Get Started - Setup Android section
[x] I have read and done the Get Started - Setup iOS section
[x] I have already searched for the same problem

Environment

Technology
Version

Flutter version
2.0.1

Plugin version

Android version

iOS version
14

Xcode version
14.5

Device information:
Description
Expected behavior:
-> I want to keep my login session in webview.
If I login my website in webview, and restart app again, login is valid.
And it seems to have problem with saving cookies.
Current behavior:
-> Even if I don't setCookie using CookieManager, it works fine on Android.
But not on ios. After logging in and restarting the app, the login is not maintained.
After testing a few sites, this only seems to happen with http sites. The problem doesn't seem to be happening with sites using https. The site in question is http and only the login page uses https. I've also tried saving the cookies myself, but if expiresDate is not set, all cookies are not saved.
What is the problem?
The current library is up to date.
++
This issue is actually the same with this https://github.com/pichillilorenzo/flutter_inappwebview/issues/824
but you didn't answer to it.
plz answer this question... I already handle this issue even for a week...
Here is my code.
This code is not special but just a simple code.
@override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('InAppWebView Example'),
        ),
        body: Container(
            child: Column(children: <Widget>[
          Expanded(
              child: InAppWebView(
            initialUrlRequest: URLRequest(url: Uri.parse(initialUrl)),
            // initialHeaders: {},
            initialOptions: InAppWebViewGroupOptions(
              crossPlatform: InAppWebViewOptions(
                // debuggingEnabled: true,
                userAgent:
                    "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",
                javaScriptCanOpenWindowsAutomatically: true,
                // javaScriptEnabled: true,
                // cacheEnabled: true
              ),
              ios: IOSInAppWebViewOptions(
                // sharedCookiesEnabled: true
              )
            ),
            iosOnNavigationResponse: (controller, response) async {
              print('iosOnNavigationResponse');
            },
            onAjaxProgress: (controller, request) async {
              print('onLoadStart');
            },
            onWebViewCreated: (InAppWebViewController controller) async {
              print('onWebViewCreated');
              _webViewController = controller;
            },
            onLoadStart: (InAppWebViewController controller, Uri? url) async {
              print('onLoadStart');
            },
            onLoadStop: (InAppWebViewController controller, Uri? url) async {
              final expiration = DateTime.now().add(Duration(days: 3)).millisecondsSinceEpoch;
              var cookies = await cookieManager.getCookies(url: url!);
              // cookies.forEach((cookie) async {
              //   await cookieManager.setCookie(
              //     url: url,
              //     // domain: Uri.parse(pandoraBaseUrl).host,
              //     name: cookie.name,
              //     value: cookie.value,
              //     // expiresDate: cookie.expiresDate ?? expiration,
              //     // maxAge: expiration
              //   );
              // });
              // await cookieManager.deleteCookie(url: url, name: 'PHPSESSID');

            },
          )),
          // Expanded(
          //     child: InAppWebView(
          //       initialUrlRequest: URLRequest(
          //           url: Uri.parse(
          //             initialUrl
          //           )),
          //       // initialHeaders: {},
          //       initialOptions: InAppWebViewGroupOptions(
          //         crossPlatform: InAppWebViewOptions(
          //           // debuggingEnabled: true,
          //             userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",
          //             javaScriptCanOpenWindowsAutomatically: true,
          //             incognito: true
          //         ),
          //       ),
          //       onWebViewCreated: (InAppWebViewController controller) async {
          //         _webViewController = controller;
          //
          //       },
          //       onLoadStart: (InAppWebViewController controller, Uri? url) {
          //
          //       },
          //       onLoadStop: (InAppWebViewController controller, Uri? url) async {
          //
          //       },
          //     ))
        ])),
      ),
    );
  }

Hi, did you solve?
Im using https with android also same could not get working and cookie not respons and open directly and asking login in my wordpress.  I just posting this issue here https://github.com/pichillilorenzo/flutter_inappwebview/issues/894
Let me know if you can help me if you said https is working?
Thanks in advance.

Hi, did you solve?
Im using https with android also same could not get working and cookie not respons and open directly and asking login in my wordpress. I just posting this issue here #894
Let me know if you can help me if you said https is working?
Thanks in advance.

plz refer to my code below.
This option works on https in android!
crossPlatform: InAppWebViewOptions(
          incognito: false,
          userAgent: userWebAgent,
          useShouldOverrideUrlLoading: true,
          mediaPlaybackRequiresUserGesture: false,
          javaScriptCanOpenWindowsAutomatically: true,
          verticalScrollBarEnabled: true,
          clearCache: false, // true 로 설정시 안드로이드에서 로그인 쿠키 유지 안됨
          disableContextMenu: false,
          cacheEnabled: true,
          javaScriptEnabled: true,
        ),
        android: AndroidInAppWebViewOptions(
            useShouldInterceptRequest: true,
            allowFileAccess: true,
            supportMultipleWindows: true, // 구글 로그인 시 사용
            useHybridComposition: true,
            allowContentAccess: true,
            builtInZoomControls: true,
            thirdPartyCookiesEnabled: true,
            mixedContentMode:
                AndroidMixedContentMode.MIXED_CONTENT_ALWAYS_ALLOW // 소셜 로그인 후 block 방지
            ),
        ios: IOSInAppWebViewOptions(
          // sharedCookiesEnabled: true,
          allowsInlineMediaPlayback: true,
          // sharedCookiesEnabled: true,
        ));

Hi, did you solve?
Im using https with android also same could not get working and cookie not respons and open directly and asking login in my wordpress. I just posting this issue here #894
Let me know if you can help me if you said https is working?
Thanks in advance.

plz refer to my code below.
This option works on https in android!
crossPlatform: InAppWebViewOptions(
          incognito: false,
          userAgent: userWebAgent,
          useShouldOverrideUrlLoading: true,
          mediaPlaybackRequiresUserGesture: false,
          javaScriptCanOpenWindowsAutomatically: true,
          verticalScrollBarEnabled: true,
          clearCache: false,
          disableContextMenu: false,
          cacheEnabled: true,
          javaScriptEnabled: true,
        ),
        android: AndroidInAppWebViewOptions(
            useShouldInterceptRequest: true,
            allowFileAccess: true,
            supportMultipleWindows: true,
            useHybridComposition: true,
            allowContentAccess: true,
            builtInZoomControls: true,
            thirdPartyCookiesEnabled: true,
            mixedContentMode:
                AndroidMixedContentMode.MIXED_CONTENT_ALWAYS_ALLOW
            ),
        ios: IOSInAppWebViewOptions(
          // sharedCookiesEnabled: true,
          allowsInlineMediaPlayback: true,
          // sharedCookiesEnabled: true,
        ));

I have same problem ！！！

not resolve yet？

Yes, I've tried this on iOS native code, It appears do not work too.
I think something goes wrong when sync cookies.
Just handle this with cookies(must set expiresDate), not sessions.

This code fixes the problem for me:
    final url = WebUri(_baseUrl);
    final cookieManager = CookieManager.instance();
    final expiresDate =
        DateTime.now().add(const Duration(days: 365)).millisecondsSinceEpoch;

    (await cookieManager.getCookies(url: url))
        .where((cookie) => cookie.expiresDate == null)
        .forEach((cookie) => cookieManager.setCookie(
              url: url,
              name: cookie.name,
              value: cookie.value,
              path: cookie.path ?? '/',
              domain: cookie.domain,
              expiresDate: expiresDate,
              isSecure: cookie.isSecure,
              isHttpOnly: cookie.isHttpOnly,
              sameSite: cookie.sameSite,
            ));

authors: PandoraTV bbslab creomobile djks74 unnamedw


text:
errorbar do not has horizontal line

Hi,
I found something wrong in error bar.
For example,
x=abs([-1:0.4:0,-1:0.4:1,0.2:0.4:1]); y=rand(1,12); err=rand(1,12); tag0=cell(3,1);tag0=cellfun(@(x) 'a',tag0,'UniformOutput',false); tag1=cell(3,1);tag1=cellfun(@(x) 'b',tag1,'UniformOutput',false); tag=[tag1;tag0;tag0;tag1]; g=gramm('x',x,'y',y,'ymin',y-err,'ymax',y+err); g.facet_wrap(tag); g.geom_line; g.geom_interval('geom','errorbar'); g.draw;
You can see that the errorbar do not has the horizontal line.
If we just change the tag like:
tag=[tag1;tag1;tag0;tag0];
or change the x like:
x=-1:0.2:1.2;
It's going to be normal now.

Hi @Gery111,
You are using a pretty vicious dataset ! The bug  seems related to the functionality that "dodges" graphical elements so that they are not superimposed. Your code specifically generates multiple error bars at the same x location which are however in the same data group, with x data that is additionally not ordered. I'll look into it !

Hi @piermorel ，
Thank you.
Actually, the way of the simulated data is like my real data. Those two error bars at same x location are in the different group, which I didn't show it here. Because it's no horizontal line, error bars are overlaped, and I can't discriminate the error bars from two groups.

repo: piermorel/gramm


text:
Update index.md

I made some update to the home page

This is 🆗


text:
Display precision support

Description
Add display precision support and update compute state display to latest version
Related Issue

This PR fixes or closes issue: fixes #1035
Motivation and Context

How Has This Been Tested

Types of changes

[x] 🐛 Bug fix (non-breaking change which fixes an issue)
[ ] 🚀 New feature (non-breaking change which adds functionality)
[ ] 🌎 Translation (addition or update a translation)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have tested the change locally.
[ ] I followed the steps if I add a new language .

This issue seems to have returned?
I have an entity where I use HA's UI to set its precision to two decimals, as it represents a monetary value:

You can see the entity card respecting this setting, but not the mushroom template card:

Additionally, the mushroom template card also doesn't respect the locale for the decimal separator (expecting "," in my context, not "."). Will file separately for this.
Running HA 2023.12 and Mushroom 3.2.2.

authors: piitaya richardvinger

repo: piitaya/lovelace-mushroom


text:
Not getting venmo option in BraintreeDropInRequest

Only getting paypal and card option here in BraintreeDropInRequest. how can I get venmo option also?
var request = BraintreeDropInRequest(
                        vaultManagerEnabled: true,
                        applePayRequest: BraintreeApplePayRequest(
                            amount: amountInt.toDouble(),
                            displayName: "TEST",
                            countryCode: "PL",
                            currencyCode: "PLD",
                            appleMerchantID: "merchant.id.here"),
                        venmoEnabled: true,
                        tokenizationKey: tokenizationKey,
                        collectDeviceData: true,
                        googlePaymentRequest: BraintreeGooglePaymentRequest(
                          totalPrice: amountInt.toString(),
                          currencyCode: 'PLD',
                          billingAddressRequired: false,
                        ),
                        paypalRequest: BraintreePayPalRequest(
                          amount: amountInt.toString(),
                          displayName: 'TEST',
                        ),
                        cardEnabled: true,
                      );

Please help me with this. Thank you.

same error. Is there any update on this?

Same bug, can't use Venmo.

+1

Same error. Any update?

I was able to solve the same issues by following the instructions here:

https://developer.paypal.com/braintree/articles/guides/payment-methods/venmo#testing
https://developer.paypal.com/braintree/docs/guides/venmo/client-side

I was able to solve the same issues by following the instructions here:

https://developer.paypal.com/braintree/articles/guides/payment-methods/venmo#testing
https://developer.paypal.com/braintree/docs/guides/venmo/client-side

Can you share the code please?

authors: BunnyBuddy YonathanZetune anooj-shah diegofca dinit-bwd jsmeke krishna1931

repo: pikaju/flutter-braintree


text:
🛑 www.pikfarm.com is down

In b9e7d77, www.pikfarm.com (https://www.pikfarm.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: www.pikfarm.com is back up in ee80856 after 11 minutes.

repo: pikfarm/PikfarmStatus


text:
🛑 www.pik.farm is down

In 24a7d5b, www.pik.farm (https://pik.farm) was down:

HTTP code: 0
Response time: 0 ms

Resolved: www.pik.farm is back up in 1ec22df after 36 minutes.


text:
🛑 www.pikfarm.com is down

In 0fa730d, www.pikfarm.com (https://www.pikfarm.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: www.pikfarm.com is back up in bfcef12 after 14 minutes.


text:
🛑 www.pik.farm is down

In 7a0def5, www.pik.farm (https://pik.farm) was down:

HTTP code: 0
Response time: 0 ms

Resolved: www.pik.farm is back up in f49241f after 59 minutes.


text:
Feature: Opportunity add TTL to record

Example: Paper.book().write("city", "Lund").ttl(3600) //3600 sec
Now we can't read value after 3600 sec. It will return null

At this moment I use wrapper for this. But I have one drawback. I remove expired data when I read from db. I need automatic remove expired data with ttl (as redis do)

To be honest I don't think this feature should be a part of any database. You can design your data model in order to serve a purpose like yours. For example, you can keep a timestamp along with your data and check it on reading and so on. So I'm closing this feature request.

authors: N-i-p-o-l pilgr

repo: pilgr/Paper


text:
Fugu15

iPhone 13 Pro max iOS 15.5

iPhone 13 Pro Max iOS 15.0.2


text:
Allow Dart core types in Query return type.

Implemented basic logic to support Dart core types for returning in Query methods.

Codecov Report

Merging #691 (744b19f) into develop (4e3562d) will decrease coverage by 0.29%.
The diff coverage is 72.72%.

@@             Coverage Diff             @@
##           develop     #691      +/-   ##
===========================================
- Coverage    90.18%   89.88%   -0.30%
===========================================
  Files           74       65       -9
  Lines         1874     1701     -173
===========================================
- Hits          1690     1529     -161
+ Misses         184      172      -12

Flag
Coverage Δ

floor
?

floor_generator
89.88% <72.72%> (-0.25%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...lib/processor/error/query_method_writer_error.dart
0.00% <0.00%> (ø)

...loor_generator/lib/writer/query_method_writer.dart
98.18% <88.88%> (-1.82%)
:arrow_down:

floor/lib/src/adapter/query_adapter.dart

floor/lib/src/adapter/update_adapter.dart

...src/extension/on_conflict_strategy_extensions.dart

floor/lib/src/adapter/insertion_adapter.dart

floor/lib/src/callback.dart

floor/lib/src/util/primary_key_helper.dart

floor/lib/src/adapter/deletion_adapter.dart

floor/lib/src/migration.dart

... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

authors: codecov-commenter dkaera

repo: pinchbv/floor


text:
tiup becomes tiup.tmp unexpectly

Bug Report
Please answer these questions before submitting your issue. Thanks!

What did you do?

Run tiup update --self. And due to my network issue (on WSL2), it hangs connecting to a local proxy for a while.
I press <C-c> during the hanging and then retype tiup update --self but Linux complains about tiup is not found.
So I went to ~/.tiup/bin and found that tiup has been altered to tiup.tmp

What did you expect to see?
tiup should still be there

What did you see instead?
tiup becomes tiup.tmp

What version of TiUP are you using (tiup --version)?

tiup version v0.0.5 tiup
Go Version: go1.13
Git Branch: master
GitHash: aab3add
Build Time: 2020-04-24 18:10:16 +0800

Hello, sorry for the inconvenience. The binary is renamed to tiup.tmp for a backup purpose, but it seems you didn't finished the following process so new binary is not installed.
We'll review the process to see if we can do the rename at a latter timepoint.

repo: pingcap-incubator/tiup


text:
fix: debug api pprof timeout & refine api model

Fix pprof timeout exceeded caused by network overheads or something else.

/cc @breeswish @baurine PTAL~

Let me try it quickly.

/cc @breeswish
Some updates, PTAL, thanks~

Looks much easier, Thanks!
/cc @breeswish

/merge

authors: breeswish shhdgit

repo: pingcap/tidb-dashboard


text:
diagnostic: fix index out of bounds error in sysinfo

What problem does this PR solve?
Issue Number: Ref https://github.com/tikv/tikv/issues/15006
Problem Summary:
Non-stop cpu expansion causes index out of bounds error.
What is changed and how it works?
https://github.com/mornyx/sysinfo/commit/5a1bcf08816979624ef2ad79cfb896de432a9501
See: https://github.com/tikv/tikv/pull/15007
Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/re-test

/run-all-tests

/test

repo: pingcap/tidb-engine-ext


text:
cast real as datetime is not compatible with tidb/mysql

Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)

use test;

drop table test.t;
create table test.t(a float, b double);
insert into test.t values (0, 0);
insert into test.t values (111.0, 111.0);
insert into test.t values (111.1, 111.1);
insert into test.t values (202102, 20210201);
insert into test.t values (202102.1, 20210201.1);

alter table test.t set tiflash replica 1;

// tiflash
set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash';
select a, cast(a as datetime), b, cast(b as datetime) from t;

// tidb
set tidb_enforce_mpp=0; set tidb_isolation_read_engines='tikv';
select a, cast(a as datetime), b, cast(b as datetime) from t;

// mysql
// execute in mysql
select a, cast(a as datetime), b, cast(b as datetime) from t;

2. What did you expect to see? (Required)
-- mysql/tidb/tiflash
+-------------+---------------------+-------------------------+---------------------+
| a           | cast(a as datetime) | b                       | cast(b as datetime) |
+-------------+---------------------+-------------------------+---------------------+
|           0 | NULL                |                       0 | NULL                |
|  3.40282e38 | NULL                |  1.7976931348623157e308 | NULL                |
| 1.17549e-38 | NULL                | 2.2250738585072014e-308 | NULL                |
|         111 | 2000-01-11 00:00:00 |                     111 | 2000-01-11 00:00:00 |
|       111.1 | 2000-01-11 00:00:00 |                   111.1 | 2000-01-11 00:00:00 |
|      202102 | NULL                |                20210201 | 2021-02-01 00:00:00 |
|      202102 | NULL                |              20210201.1 | 2021-02-01 00:00:00 |
+-------------+---------------------+-------------------------+---------------------+

3. What did you see instead (Required)
-- mysql
+-------------+---------------------+-------------------------+---------------------+
|           0 | NULL                |                       0 | NULL                |
|  3.40282e38 | NULL                |  1.7976931348623157e308 | NULL                |
| 1.17549e-38 | NULL                | 2.2250738585072014e-308 | NULL                |
|         111 | 2000-01-11 00:00:00 |                     111 | 2000-01-11 00:00:00 |
|       111.1 | 2000-01-11 00:00:00 |                   111.1 | 2000-01-11 00:00:00 |
|      202102 | NULL                |                20210201 | 2021-02-01 00:00:00 |
|      202102 | NULL                |              20210201.1 | 2021-02-01 00:00:00 |
+-------------+---------------------+-------------------------+---------------------+

-- tidb
+-------------+---------------------+-------------------------+---------------------+
| a           | cast(a as datetime) | b                       | cast(b as datetime) |
+-------------+---------------------+-------------------------+---------------------+
|           0 | 0000-00-00 00:00:00 |                       0 | 0000-00-00 00:00:00 |
|         111 | NULL                |                     111 | NULL                |
|       111.1 | NULL                |                   111.1 | NULL                |
|      202102 | NULL                |                20210201 | 2021-02-01 00:00:00 |
|    202102.1 | NULL                |              20210201.1 | 2021-02-01 01:00:00 |
+-------------+---------------------+-------------------------+---------------------+

-- tiflash
+------------+---------------------+-------------------------+---------------------+
| a          | cast(a as datetime) | b                       | cast(b as datetime) |
+------------+---------------------+-------------------------+---------------------+
|          0 | NULL                |                       0 | NULL                |
|        111 | NULL                |                     111 | NULL                |
|      111.1 | NULL                |                   111.1 | NULL                |
|     202102 | 2021-08-02 00:00:00 |                20210201 | 2021-02-01 00:00:00 |
|   202102.1 | 2021-08-02 09:37:05 |              20210201.1 | 2021-02-01 01:00:00 |
+------------+---------------------+-------------------------+---------------------+

4. What is your TiFlash version? (Required)
master

In current master.
The result is:
-- mysql 8.0
+--------+---------------------+------------+---------------------+
| a      | cast(a as datetime) | b          | cast(b as datetime) |
+--------+---------------------+------------+---------------------+
|      0 | NULL                |          0 | NULL                |
|    111 | 2000-01-11 00:00:00 |        111 | 2000-01-11 00:00:00 |
|  111.1 | 2000-01-11 00:00:00 |      111.1 | 2000-01-11 00:00:00 |
| 202102 | NULL                |   20210201 | 2021-02-01 00:00:00 |
| 202102 | NULL                | 20210201.1 | 2021-02-01 00:00:00 |
+--------+---------------------+------------+---------------------+

-- tidb(tikv)
+----------+---------------------+------------+---------------------+
| a        | cast(a as datetime) | b          | cast(b as datetime) |
+----------+---------------------+------------+---------------------+
|        0 | 0000-00-00 00:00:00 |          0 | 0000-00-00 00:00:00 |
|      111 | 2000-01-11 00:00:00 |        111 | 2000-01-11 00:00:00 |
|    111.1 | 2000-01-11 00:00:00 |      111.1 | 2000-01-11 00:00:00 |
|   202102 | NULL                |   20210201 | 2021-02-01 00:00:00 |
| 202102.1 | NULL                | 20210201.1 | 2021-02-01 00:00:00 |
+----------+---------------------+------------+---------------------+

-- tidb(tiflash)
+----------+---------------------+------------+---------------------+
| a        | cast(a as datetime) | b          | cast(b as datetime) |
+----------+---------------------+------------+---------------------+
|        0 | 0000-00-00 00:00:00 |          0 | 0000-00-00 00:00:00 |
|      111 | 2000-01-11 00:00:00 |        111 | 2000-01-11 00:00:00 |
|    111.1 | 2000-01-11 00:00:00 |      111.1 | 2000-01-11 00:00:00 |
|   202102 | NULL                |   20210201 | 2021-02-01 00:00:00 |
| 202102.1 | NULL                | 20210201.1 | 2021-02-01 00:00:00 |
+----------+---------------------+------------+---------------------+

I think the only issue left is cast(0.0 as datetime) is NULL or 0000-00-00 00:00:00.
And it's related to NO_ZERO_DATE sql_mode.

authors: SeaRise gengliqi

repo: pingcap/tiflash


text:
[TSAN] Data race at Metric Familiy

Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)
cmake /path/to/tiflash -DCMAKE_BUILD_TYPE=TSan -GNinja
ninja gtests_dbms
# run gtests_dbms

2. What did you expect to see? (Required)
No tsan error.
3. What did you see instead (Required)
https://ci.pingcap.net/blue/rest/organizations/jenkins/pipelines/tiflash-sanitizer-daily/runs/145/nodes/78/log/?start=0
4. What is your TiFlash version? (Required)
master

上面链接的tsan结果是不是删除掉了？能访问测试环境么？


text:
[WIP] feat: Auto reload ssl cert

What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
What is changed and how it works?
Check List
Tests

[ ] Unit test
[x] Integration test
[x] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/run-all-tests

/run-all-tests

/rebuild

/build

/rebuild


text:
CDC lag >10s when upgrade TiKV

What did you do?

ti-operator cluster with 36 tikv, 3 cdc, 3 pd, create changefeed to sync to kafka
running workload, throughtput ~50MB/s
Upgrade cluester

What did you expect to see?
lag should be less then 10s
What did you see instead?
lag > 10s when uprade TiKV

Versions of the cluster
[root@upstream-ticdc-0 /]# /cdc version
Release Version: v7.1.0-rc.0
Git Commit Hash: https://github.com/pingcap/tiflow/commit/4d633bfd28c0305109c52a01cd1304b436c0dfba
Git Branch: heads/refs/tags/v7.1.0-rc.0
UTC Build Time: 2023-04-21 10:14:01
Go Version: go version go1.20.3 linux/amd64
Failpoint Build: false

/server major

/severity major

This issue can be alleviated by https://github.com/pingcap/tiflow/commit/5e06aa72e76291a641a65c1cb1688302ecd4c969

This issue can be alleviated by https://github.com/pingcap/tiflow/commit/5e06aa72e76291a641a65c1cb1688302ecd4c969

the lag  is closely related to the number of regions.If lots of regions on one node ,the lag will larger than 10s occasionally. In this case , there are more than 20k regions on one node

/close

authors: asddongmen fubinzh nongfushanquan

repo: pingcap/tiflow


text:
storage: add epoch to raftkv

@ngaut @siddontang

LGTM

LGTM

authors: BusyJay ngaut siddontang

repo: pingcap/tikv


text:
How about adding refresh_token to session data

So whenver the userinformation are changed, we can always request new idtoken silently and update it to the session data.

One should not be able to request a new id_token using a refresh token, that's against the semantics of an id_token: the user should be present to authenticate himself.
What could be done is to refresh the access token and periodically poll the user info endpoint to update the data in the session with the claims from the user info endpoint in a similar way to mod_auth_openidc: https://github.com/pingidentity/mod_auth_openidc/blob/master/auth_openidc.conf#L723

http://openid.net/specs/openid-connect-core-1_0.html#RefreshingAccessToken. if i'm not wrong, Its not against the semantics, My IDP follows the guidelines as how the new refreshed id token should be issued, only the claims get changed in the IdToken. So getting refreshed id token is fine.
I don't want to periodically refresh, i want to force refresh, because in entire system flow, it is not possible to knew, when the user information is updated.

That section speaks about refreshing the access token only. Your IDP seems to extend the spec so you'll need to extend the RP client yourself if you want to follow that. Adding a hook for a forced refresh of an access token is something that can be added here.

If an ID Token is returned as a result of a token refresh request, the following requirements apply:
its iss Claim Value MUST be the same as in the ID Token issued when the original authentication occurred,
its sub Claim Value MUST be the same as in the ID Token issued when the original authentication occurred,
its iat Claim MUST represent the time that the new ID Token is issued,
its aud Claim Value MUST be the same as in the ID Token issued when the original authentication occurred,
if the ID Token contains an auth_time Claim, its value MUST represent the time of the original authentication - not the time that the new ID token is issued,
its azp Claim Value MUST be the same as in the ID Token issued when the original authentication occurred; if no azp Claim was present in the original ID Token, one MUST NOT be present in the new ID Token, and
otherwise, the same rules apply as apply when issuing an ID Token at the time of the original authentication.

Hello, this feature would be very interesting to refresh the accessToken when it is expired :
if we want to use the nginx as a RP for OAuth Resource Servers, the accessToken needs to be valid (and not expired).
The nginx could provide a method to get such a valid access token which :

would test the current AT validity (i.e. is it expired)
if expired silently call the refresh token endpoint if the current scope contains refreshToken and update accessToken in session.
return the valid accessToken.

Also there's a little window when : accessToken is not expired in OIDC RP and becomes expired in the RS side that could perhaps be handled (don't know how : i.e. provide a tolerance to artificially reduce the at expiry in the RP side or provide a way to trap 401, refresh the token and recall the RS).
Regards,
Adrian

agreed, feel free to submit a PR

Hello @zandbelt , I just created a PR for this issue.
If there's anything I should change, please tell me !
Thanks,
Adrian

It looks pretty good so I have merged it. I have to do some testing myself and possibly fine-tune it before I put out a new release. I'll leave the ticket open until then. Thanks for now!

Thanks very much @zandbelt !

authors: gonzalad sureshvarman zandbelt

repo: pingidentity/lua-resty-openidc