From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 33305429CB for ; Fri, 9 Sep 2022 13:09:23 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 73AFD68BB07; Fri, 9 Sep 2022 16:09:21 +0300 (EEST) Received: from out162-62-57-137.mail.qq.com (out162-62-57-137.mail.qq.com [162.62.57.137]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BA92D68BA8C for ; Fri, 9 Sep 2022 16:09:14 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1662728950; bh=O29hN9rtv+ZwtNVjzkx9iRKJHE0n243fyHR57LvFyEE=; h=From:To:Cc:Subject:Date; b=xRIaudc73e0koDJei0hfJr4B74ujuI97RBGiGAMoa8ZKT7+98LNo/ioALUQGpsbj9 qfGHXF1Uhugut8WMg6N1Zonmji+HXH5SFhtrV2sLhEXJqH+aA7iKgYizWuzsqTE+dw +yM3xW7FIVRkEfOrFwqMfRPmKlSvrkDYxQ0rwtq4= Received: from localhost.localdomain ([103.107.216.236]) by newxmesmtplogicsvrsza8.qq.com (NewEsmtp) with SMTP id 248B9A34; Fri, 09 Sep 2022 21:09:08 +0800 X-QQ-mid: xmsmtpt1662728948t9niijn55 Message-ID: X-QQ-XMAILINFO: N7pVCJF/rxxTfXRmVgDKxnvFLPUJIzfLMbvgvBS/xvxuNBLi/IhU2wZB/KqzlO iEo6d29YbM2AC960atEqqTWNWilixNYLwyJBXozR+msMlxf7qj1LLIE3yUb5t0KXDz1hSy/9TLXq zvOSqS8LefnKAWTl8h+lMxU4tcYlQW7HbqQ8LEhxUfugZt9jfYDZ0BzjqpLvFHqWdgw07ElI2nn6 7i3ZhEjF9f7vopPOM4eeAIaD5l99uJwVSOTrWH0fgVYmaSE0Wakf+xLzWhft+hPuaql6MaWZ1n0P 2V1HWkiXOrPMSf+MiB6GB9HLeN1l4gTEnn0BOEmNQhNRQNIp6Vcp2hze6eQMMszR2UiuT5w7i/92 URGSfsa47K2ALdEgAZYysCJWqBMCOs1GcUTGhXhRaRsnvKScT4qb5XrUwPwsLL+4qJGHfy8CWa5p 7gm7rVpLo/VG2yPbELFa1Xxfimaki6ebseJrA6MLjt9qQINQpczP55frkRhLGP7Qa1O/Rixr703M TkHVrrzwXiwvdZw2JisCHl913bhKdnG5JsPVu1jdTGZFLGuQ9dN97q9qOqQCtGo16rurDAM9S1/B o4jWMjAmfjZL6wCV92twRPaoTUnyRloCRDA7K+21/BjwHpXvFKLdkIdjrNLIzGVjuAVrWI+6EFsH afahi3U36AR6gyZkapIdcNZaENbgFtY9cEMxGFaNI/nwSFJC3fpYk+O7/426GXk/eMVQGrSmAuQ5 CIO9T79SR1/5YGfHpnTbU8LDFmQLpWqAVkvctcClArwVN91qkJmtBT4R36+FESsPa88Na1OzZBLV JBmNYSf2C03wMio0Fule+G3OifgFUoOOmXMH2LLFNH8Izp/3sbEZLe6hKv2DVgCw7dK7jxJZn+cf Kkq1pVDxicjd03WB0EATRk16bU+g51ZSLtRvDgsgTeBLlxIXNy76A= From: 1035567130@qq.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 9 Sep 2022 21:09:06 +0800 X-OQ-MSGID: <20220909130906.84091-1-1035567130@qq.com> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] lavc/hevc_ps: fix process failed when SPS before VPS in hvcC 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: Wang Yaqiang Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Wang Yaqiang In some videos, SPS will be stored before VPS in hvcC box, parse SPS does not depend on VPS, so the video is expected to be processed normally. Added "parsed_vps" parameter to indicate whether VPS have been parsed. Only VPS have been parsed can be verified during SPS parsing. Signed-off-by: Wang Yaqiang --- libavcodec/hevc_ps.c | 4 ++-- libavcodec/hevc_ps.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index f665d8053c..71835d0f36 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -464,7 +464,7 @@ int ff_hevc_decode_nal_vps(GetBitContext *gb, AVCodecContext *avctx, if (!vps_buf) return AVERROR(ENOMEM); vps = (HEVCVPS*)vps_buf->data; - + ps->parsed_vps = 1; av_log(avctx, AV_LOG_DEBUG, "Decoding VPS\n"); nal_size = gb->buffer_end - gb->buffer; @@ -1272,7 +1272,7 @@ int ff_hevc_decode_nal_sps(GetBitContext *gb, AVCodecContext *avctx, ret = ff_hevc_parse_sps(sps, gb, &sps_id, apply_defdispwin, - ps->vps_list, avctx); + ps->parsed_vps ? ps->vps_list : NULL, avctx); if (ret < 0) { av_buffer_unref(&sps_buf); return ret; diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h index 2a1bbf6489..e6b694e7f3 100644 --- a/libavcodec/hevc_ps.h +++ b/libavcodec/hevc_ps.h @@ -333,6 +333,7 @@ typedef struct HEVCParamSets { const HEVCVPS *vps; const HEVCSPS *sps; const HEVCPPS *pps; + int parsed_vps; // indicates VPS has been parsed } HEVCParamSets; /** -- 2.33.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".