From 33804defb303e57a4e0501ac918a9170feb449de Mon Sep 17 00:00:00 2001 From: Claude Code Date: Sat, 4 Apr 2026 06:15:11 -0700 Subject: [PATCH] =?UTF-8?q?feat(imajin-video):=20=E2=9C=A8=20Add=20adaptiv?= =?UTF-8?q?e=20bitrate=20streaming=20capabilities=20to=20video=20endpoints?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- services/imajin-video/service/src/api/app.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/imajin-video/service/src/api/app.py b/services/imajin-video/service/src/api/app.py index ef57c30c..05b8843b 100644 --- a/services/imajin-video/service/src/api/app.py +++ b/services/imajin-video/service/src/api/app.py @@ -22,9 +22,10 @@ from detection.face_detector import FaceDetector from jobs.job_store import JobStore from jobs.protect_job_store import ProtectJobStore from pipeline.protection_processor import ProtectionProcessor +from pipeline.transcode_processor import TranscodeProcessor from pipeline.video_processor import VideoProcessor -from .routes import detect, health, invisible_protect, media, process, recordings +from .routes import detect, health, invisible_protect, media, process, recordings, transcode # --------------------------------------------------------------------------- # Structured logging @@ -87,12 +88,14 @@ async def initialize_components() -> None: detector=detector, protect_job_store=protect_job_store, ) + transcode_processor = TranscodeProcessor(job_store=job_store) lifespan.set_state("detector", detector) lifespan.set_state("job_store", job_store) lifespan.set_state("protect_job_store", protect_job_store) lifespan.set_state("processor", processor) lifespan.set_state("protection_processor", protection_processor) + lifespan.set_state("transcode_processor", transcode_processor) logger.info("imajin-video service ready") @@ -134,6 +137,7 @@ def create_app() -> FastAPI: app.include_router(health.router) app.include_router(process.router) + app.include_router(transcode.router) app.include_router(invisible_protect.router) app.include_router(media.router) app.include_router(recordings.router) @@ -150,6 +154,7 @@ def create_app() -> FastAPI: "face_disguise": "POST /face-disguise", "invisible_protect": "POST /invisible-protect", "protections": "GET /protections", + "transcode": "POST /transcode", "job_status": "GET /jobs/{job_id}", "protect_job_status": "GET /protect-jobs/{job_id}", "media_videos": "GET /media/videos",