Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions pytrickle/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -414,17 +414,21 @@ async def _handle_start_stream(self, request: web.Request) -> web.Response:
return web.json_response({
"status": "error",
"message": "Pipeline is still initializing. Please wait for IDLE status.",
"current_state": "LOADING"
"current_state": self.state.get_pipeline_state()
}, status=503) # 503 Service Unavailable

# Parse and validate request first
params = await self._parse_and_validate_request(request, StreamStartRequest)

logger.info(f"Starting stream: {params.subscribe_url} -> {params.publish_url}")

# Stop existing client if running
# Check if a stream is already active
if self.current_client and self.current_client.running:
await self.current_client.stop()
return web.json_response({
"status": "error",
"message": "Pipeline is still in use",
"current_state": self.state.get_pipeline_state()
}, status=503) # 503 Service Unavailable

# Extract dimensions from params
params_dict = params.params or {}
Expand Down Expand Up @@ -476,7 +480,8 @@ async def _handle_start_stream(self, request: web.Request) -> web.Response:
return web.json_response({
"status": "success",
"message": "Stream started successfully",
"request_id": params.gateway_request_id
"request_id": params.gateway_request_id,
"current_state": self.state.get_pipeline_state()
})

except Exception as e:
Expand Down Expand Up @@ -505,7 +510,8 @@ async def _handle_start_stream(self, request: web.Request) -> web.Response:

return web.json_response({
"status": "error",
"message": f"Error starting stream: {str(e)}"
"message": f"Error starting stream: {str(e)}",
"current_state": self.state.get_pipeline_state()
}, status=400)

async def _handle_stop_stream(self, request: web.Request) -> web.Response:
Expand Down