From patchwork Mon May 29 22:16:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 41881 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c51c:b0:10c:5e6f:955f with SMTP id gm28csp1760037pzb; Mon, 29 May 2023 07:16:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7/VyyVjiQd/iSuMs+urNmwJavNNRk6zkMKMsIaNfPBSmKohnQ1ItSk/LPniUTXOawaRSle X-Received: by 2002:a05:6402:1050:b0:510:82b4:844d with SMTP id e16-20020a056402105000b0051082b4844dmr243666edu.2.1685369785811; Mon, 29 May 2023 07:16:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685369785; cv=none; d=google.com; s=arc-20160816; b=ofGBNStbGbYuHaKm3BV7Sg7CcgZvh+TeGgxeUT5Py5w+5v7dkZsaKV6M+xdPvomPQz WE8fMAx8HszeAC+MTjU8cme3sqjcdiEDWjOtS8rvuoL4wcDHteE2fMsvjTqHx6oNNFO7 hqR2E/KnqUZ+cH4ycc6LtKXL/o71NS14vGkbA+7VAOPcGaByStlCTn9CkPl/svCrGTFz 9S2pnncTH7tikLEMqicZaHH+pIexLOkBz6NUFN//GNJjNN+ZY/jDq97BLp0Qa8H1JSDt SJexL/tN602bxO/DhhJ0SJMUMDWN/d6jRz7GLyPb2dDYRfMPWnm6nUmUUlXlnRUHm7U8 XXdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=190EAPBA0ILzxvJhiJLNUdBFneT+3pBD/t+Mlzfcah4=; b=E588ow4ABgsB/+WHmIlvCCmwuBU2k3Gw9HMSkKTUNigJe1RY1rO7nMqvluQfym45vz jY9pwXF8JqSP0Ri7kq/qcnOzFWkz9vULcGRuoBt8Yc27CuwC/autgNW8tgsT8mKko8JR 4hRhii4s9QJLzO++fdp/14uS6olAyiV13TprBLWxkRvxd1nh5tN4CSMtwrIe7oe47VF+ Nc8bqtKIf4ZHntJOhWkQSLiPTL01BgFUQDZOLGv1Z/gHo0fyHwrTrmsbdIlzb30sf0JT Rf6w1oeJyT9AgUElltvd5sQtavDMHEmg7kFzmI74RxAfeAEaG8nmJFeaZzzbkJBDwQKz GMNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=tI2iGX+1; 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=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c5-20020a056402120500b00514a495a035si686444edw.692.2023.05.29.07.16.25; Mon, 29 May 2023 07:16:25 -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=@foxmail.com header.s=s201512 header.b=tI2iGX+1; 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=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6DC4868C1FD; Mon, 29 May 2023 17:16:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-87.mail.qq.com (out162-62-57-87.mail.qq.com [162.62.57.87]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AB42468A084 for ; Mon, 29 May 2023 17:16:15 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1685369766; bh=aBFd5bi4V1rW6eniOXmOfJ+udBVQC68iC+GlMbofV7Q=; h=From:To:Cc:Subject:Date; b=tI2iGX+10WvsAuTSIaJAg2DRIu4pqv6KW1tSfjXngHg+7Dfyjha1PlUD3OeEj6n/5 pPxCVyOU5u9jIejsvLdTxQjhuDt06UeHzuw8mzjEJ75TeE5/KMPVrnuPjBFZudC8Y6 GxS8vuvNUkTaPTwGNW1AeoO0+jfXjFB2PhTjAD4o= Received: from localhost.localdomain ([113.108.77.51]) by newxmesmtplogicsvrszb1-0.qq.com (NewEsmtp) with SMTP id 405B1C2D; Mon, 29 May 2023 22:16:05 +0800 X-QQ-mid: xmsmtpt1685369765tla5xkoie Message-ID: X-QQ-XMAILINFO: OaubouGXmhNzWepAu9CoYyHNAZ5MjztmgrsHH/Ll1NwxfhiobKEsNLaLoj6gd3 NE4YqpWT9JyuRn3lEoQ7LPQwJZn5la+JUXADKMtqrOU1FxiwZso0i8U7MlPzKU6vNXyYNjCKupI5 W+tJnGH4boFZr8INBs9alPXSSeJe126UMKCn3l/pyBfsSX8veKgpFHBX472665c80egVlPwNMILy 4rkyXd3C8A5z2eu8ornde0+8/W49COnV5rp8fdyluq+87lAXQ0hpNIlV1La407Z4hqfZL8XqaSl1 H8kBeuQ/IXF/3Vi8iK61d5LTFw4puVojflLpWFkoPRSbJg6vQ6BiIc29ASMiepMPGuVgkJgDaPu/ Z0cTPJA8Qf/HNiqanrDXoy34T5fvjNEkuuqAcaWOcnGM2TY5dWACZoTt0IpZH0z8j3rq/hzfgs5k ztaM6TvlKRq/CArjJjq6FmuRUWHoYkALUToviSE4CF/8e6rlsp/6CRxijFyCbQZbbqztOSn0PqJc ttQKlJUYMpiNJ+YNk28Szc2gG3jILUwNVLQ3wtuPEpyaTXCGCos5lG7OyN2+PSan4Asxk7LJIjPe jA/KUAuqZJXQGRRgGtwASyTNBEoZUuvn8489s3Ld/rfbvZJJDLH5vkNy0pm9ensM+HY4ZaqLFHVa inb0JprJCY7URePEk5w6IVijzaln7E6vSzg29tkTz8VCA94Vtm6h9lsllRdO9TYCkUfnOxMRJ35B 7fVcBsB/qg9u0zWc0/fqfCalj2q3Np7uEWpcUF/o2itqIeZI6CgKw1hOP297xPQ1sj1GdfYT8yJG 93oVEcgBkx3kMEOSUvobLAOhuTqJ878sWfj7u2aRf8cEo1t6crrVjSlBMnUFOQU3imGx97csmrJP C5vbZ+kp0Ps4WNvOlR5JxkpS8SYfplO3OwJ+OqyrFvVtIzwlizWzUbjEeu4bdBeJnFiSjN3HAEZu OMFjYuXNOFedy5+3robTnJUe59JB7L From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 30 May 2023 06:16:05 +0800 X-OQ-MSGID: <20230529221605.499777-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/hlsenc: fix CODECS attribute of H.264 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 Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: TVcAGfBWbzvk From: Zhao Zhili Signed-off-by: Zhao Zhili --- libavformat/hlsenc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 871afb571b..1e0848ce3d 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -355,9 +355,19 @@ static void write_codec_attr(AVStream *st, VariantStream *vs) if (st->codecpar->codec_id == AV_CODEC_ID_H264) { uint8_t *data = st->codecpar->extradata; - if (data && (data[0] | data[1] | data[2]) == 0 && data[3] == 1 && (data[4] & 0x1F) == 7) { + if (data) { + const uint8_t *p; + + if (AV_RB32(data) == 0x01 && (data[4] & 0x1F) == 7) + p = &data[5]; + else if (AV_RB24(data) == 0x01 && (data[3] & 0x1F) == 7) + p = &data[4]; + else if (data[0] == 0x01) /* avcC */ + p = &data[1]; + else + goto fail; snprintf(attr, sizeof(attr), - "avc1.%02x%02x%02x", data[5], data[6], data[7]); + "avc1.%02x%02x%02x", p[0], p[1], p[2]); } else { goto fail; }