From patchwork Mon Apr 15 16:27:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Derek Buitenhuis X-Patchwork-Id: 35107 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:670b:b0:1a9:af23:56c1 with SMTP id wh11csp1953094pzb; Mon, 15 Apr 2024 09:28:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV3QNl0VvBnnPI2zFIuv+s7SAQ6stvTRHPpYvuitsf9+BJxbUSZV/2GPC0kw8/lk/PcB/fb9sfkKDeVtT2Bzrkla9Wk7Rlmt8FkbQ== X-Google-Smtp-Source: AGHT+IF/y0jVepTCMultq1j6ovyRoXyNZea7nGNlVIhEGetVnANh/nZMctwGVY2VLyo9m4JLomqs X-Received: by 2002:a17:906:fb1a:b0:a52:3984:148f with SMTP id lz26-20020a170906fb1a00b00a523984148fmr131884ejb.36.1713198491398; Mon, 15 Apr 2024 09:28:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1713198491; cv=none; d=google.com; s=arc-20160816; b=xh35Ix78dYarnm9tjFyF1ylHqFiYAMSaaJfAiOKyTNTr0J+NA13cWI+HzzlXe7tX1E JTVOC9qpHhHkzHyz/ovco/45H9NYSOjgrdPfrivRslmxTf+qI9cGgN8YWEX9U8ElxwKH N/uV1ebcfjEm6cRhvac072dxlG9eFoMBQiVm4P6rJzZDrHSqfmss5E6wdS6hKhiQ0uae wC+3V2zI7H2CLD5XETlQwJTiUcS/3L7zT5BiFxnCVQXrPlxy67NGil7Bodt19EX5B6lt RQUanKFTkwDgDq+8Io5GhmJEANiXC/qzjkwgPzyv/VTp5vMYm12fdbt8j8TmMotVrQok VtDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=Kg3d4t4qaLDEh6iXGVjDkX32+H2WLHa2pdgYzp+jI1Y=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=YQ5KVYO4dBiHIWYLJc/+Qtl3eArMrSq7Vf8aBC+8lSJK/67JrtPhfSpiQ0Ht8PjGZ/ oh2KUwB9WlfwjJHArqGNH8vfYx3dZpGxu8Caljepr0+RrvvSpHFTTSR4ciTpM+tJXFVk ZePdFEri+DIvwO6q4Cz59xj3bcR+c8NSYGUt1VDMmOZV9vB/goB2jH4boKnT8bcBvBHk mQ37stXUSGx8qrsMJL/dotOmHk+p3mf2pnIHBAX7HtbG1I7hMxSRQu07aFikMMfIIt6O PWrkRsyGVSsaOGm8bAaimARo0dEBMgBa2HvZpO6votZtD2BYMYgfPAwhkX0AbgRmvzpg HcKA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=JXEKHgJk; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id qk34-20020a1709077fa200b00a4e2541005bsi4714355ejc.454.2024.04.15.09.28.10; Mon, 15 Apr 2024 09:28:11 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=JXEKHgJk; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A569D68CC25; Mon, 15 Apr 2024 19:28:06 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C46168C72F for ; Mon, 15 Apr 2024 19:27:59 +0300 (EEST) Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-344047ac7e4so2618505f8f.0 for ; Mon, 15 Apr 2024 09:27:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713198477; x=1713803277; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=YzcPKNf9gwOzNVGMlb0Z3q9rtZsclj8p6lQ122FL4pg=; b=JXEKHgJkP6PegBw1q6ZouyFStJu7iGZO14o4F7GfTfiVATC6JMKcPXaaroD9iMkcA5 3EHQ5oQHKaIsMw3IIHyvhJXUj2uW7nRB+HslJBBIUtbduY7JRH9pb1x5OloY0Un5hwfd EfQ/+m8wVhQn7lTYgKIXLaJM+3awSSbMvlhx0W8DSeNAtOfE/K54JgNNHicb75psDwZx fkQq6M0A+FFDKS1uaogannSoqnJ6xxZlly38LxPDZyAbOyCZY/h94YgzD3Gl6j0jJFJH lZD7EFt/d6RMWCcu88y7AwoegcLHn/b9DtwwlggM/xId9LuBUp51MFS1aXOFe0x8XxWY +X0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713198477; x=1713803277; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=YzcPKNf9gwOzNVGMlb0Z3q9rtZsclj8p6lQ122FL4pg=; b=QjiVrTxCM0g4YKGPikH/Ynh6MeqVelVw2WhKDcMRuyqxnJt9v5lb9nqtuapSHxpeG0 6PGb4ttFiiSdtiLBuXwWCmtb4QrZX6F3GQ2iLUWLkxovXZ3fGWButOZ1hhoIh51fH++6 Hmokjohtlw196rNa50QHtC4j9ZbF8UBrVD0MYE9oZ3tgm/b51bystZHf1c7KyzCNQht+ 5GAhuVcEL26qWGOMtVncNu1KeBnpgMcgybjOQka9EBeXUS+8DIno3+xq9ifY1kZBXQG7 c+uoTYUMqgXJa/B5m7UNXNwuROSHBF0XtVoiv+C54ovW8N+kH8KZbeRHhyjjlF1w/UaW /V+A== X-Gm-Message-State: AOJu0Yy6xCuqz7N8kmXf07F1adZwgMuKphJPyAebGfBx2sQ/Wq+f44Fg eg08KZzHvdEo/TuAGF6Xgy85soFIeX4tMUAE888L6v+mU5pDJjgYVnHy8g== X-Received: by 2002:a05:6000:7:b0:343:39a6:93bc with SMTP id h7-20020a056000000700b0034339a693bcmr162142wrx.11.1713198477386; Mon, 15 Apr 2024 09:27:57 -0700 (PDT) Received: from localhost.localdomain (33bf3d9d.skybroadband.com. [51.191.61.157]) by smtp.gmail.com with ESMTPSA id u8-20020a5d4348000000b00347c187a3a0sm3899969wrr.24.2024.04.15.09.27.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Apr 2024 09:27:56 -0700 (PDT) From: Derek Buitenhuis To: ffmpeg-devel@ffmpeg.org Date: Mon, 15 Apr 2024 17:27:35 +0100 Message-ID: <20240415162741.110374-1-derek.buitenhuis@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 0/6] HTTP rate limiting and retry improvements X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: QAabGrOmTxc5 This patch set adds support for properly handling HTTP 429 codes, and their rate limiting, which is widely used and is standardized. Derek Buitenhuis (6): avutil/error: Add HTTP 429 Too Many Requests AVERROR code avformat/http: Use AVERROR_HTTP_TOO_MANY_REQUESTS avformat/http: Don't bail on parsing headers on "bad" HTTP codes avformat/http: Add support for Retry-After header avformat/http: Rename attempts to auth_attempts avformat/http: Add options to set the max number of connection retries libavformat/http.c | 69 +++++++++++++++++++++++++++++++++---------- libavformat/version.h | 2 +- libavutil/error.h | 1 + libavutil/version.h | 2 +- 4 files changed, 57 insertions(+), 17 deletions(-)