1- # camera_server .py
1+ # camera_serv .py
22import io
33import logging
44from http import server
55import socketserver
66from threading import Condition
7+
8+ from src .HL .Autotech_constant import STREAM_PATH # si tu veux un path configurable
9+
710streaming_enabled = True
811
9- from src .HL .programme .Camera_serv import streaming_enabled
1012
1113class FrameBuffer :
1214 def __init__ (self ):
1315 self .frame = None
1416 self .condition = Condition ()
1517
16- def update (self , data ):
18+ def update (self , data : bytes ):
1719 # Only accept full JPEG frames
18- if data .startswith (b' \xff \xd8 ' ) and data .endswith (b' \xff \xd9 ' ):
20+ if data .startswith (b" \xff \xd8 " ) and data .endswith (b" \xff \xd9 " ):
1921 with self .condition :
2022 self .frame = data
2123 self .condition .notify_all ()
@@ -34,14 +36,15 @@ def write(self, buf):
3436
3537
3638class StreamHandler (server .BaseHTTPRequestHandler ):
37- def __init__ (self ):
39+ def __init__ (self , * args , ** kwargs ):
3840 self .log = logging .getLogger (__name__ )
39-
41+ super ().__init__ (* args , ** kwargs )
42+
4043 def log_message (self , format , * args ):
41- logging . getLogger ( __name__ ) .info (format % args )
42-
44+ self . log .info (format % args )
45+
4346 def do_GET (self ):
44- if self .path != "/stream .mjpg" :
47+ if self .path != f"/ { STREAM_PATH } .mjpg" :
4548 self .send_error (404 )
4649 return
4750
@@ -63,7 +66,7 @@ def do_GET(self):
6366
6467 self .wfile .write (b"--FRAME\r \n " )
6568 self .send_header ("Content-Type" , "image/jpeg" )
66- self .send_header ("Content-Length" , len (frame ))
69+ self .send_header ("Content-Length" , str ( len (frame ) ))
6770 self .end_headers ()
6871 self .wfile .write (frame )
6972 self .wfile .write (b"\r \n " )
0 commit comments