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 C0AA647734 for ; Tue, 19 Mar 2024 19:17:04 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9900668D426; Tue, 19 Mar 2024 21:16:55 +0200 (EET) Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 12FDA68D2E9 for ; Tue, 19 Mar 2024 21:16:48 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1710875807; bh=o8sHkckAWoYsTvDu7nJczWp5oVH/hYNUAOvDwpIMDus=; h=From:To:Cc:Subject:Date:From; b=d+Fxc57q39BZSdKOIab+FG9os9HFnfJdzcu1QvXCCOjrxxHzz7D0HFVoim4paA4FY ZdVu1erF6p9QtRrO3Vzb1ENoPPJRjnwJeS+mlHB9SD2Uh+5J4iD2W1XV6s/LyorNGe 4Pdi9ByXSr0Vumo05CPfKOrKjR0sSJWwB5rdsTqY= Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 8CD9A40292; Tue, 19 Mar 2024 20:16:47 +0100 (CET) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Tue, 19 Mar 2024 20:16:39 +0100 Message-ID: <20240319191642.95217-1-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.44.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] fftools/ffmpeg_enc: strip DOVI config record for AV1 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: Niklas Haas 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: Niklas Haas AV1 streams don't use configuration records, so delete them when encoding to AV1. Ideally this would be, as the comment suggests, handled at the frame-level (and stripped by the av1 encoder), but given the status quo of copying the packet-level data here directly, we should definitely make an effort to strip it. --- fftools/ffmpeg_enc.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c index c9a12af1393..0c21acfafc6 100644 --- a/fftools/ffmpeg_enc.c +++ b/fftools/ffmpeg_enc.c @@ -354,17 +354,20 @@ int enc_open(void *opaque, const AVFrame *frame) */ if (ist) { for (int i = 0; i < ist->st->codecpar->nb_coded_side_data; i++) { - AVPacketSideData *sd_src = &ist->st->codecpar->coded_side_data[i]; - if (sd_src->type != AV_PKT_DATA_CPB_PROPERTIES) { - AVPacketSideData *sd_dst = av_packet_side_data_new(&ost->par_in->coded_side_data, - &ost->par_in->nb_coded_side_data, - sd_src->type, sd_src->size, 0); - if (!sd_dst) - return AVERROR(ENOMEM); - memcpy(sd_dst->data, sd_src->data, sd_src->size); - if (ist->autorotate && sd_src->type == AV_PKT_DATA_DISPLAYMATRIX) - av_display_rotation_set((int32_t *)sd_dst->data, 0); - } + AVPacketSideData *sd_src, *sd_dst; + sd_src = &ist->st->codecpar->coded_side_data[i]; + if (sd_src->type == AV_PKT_DATA_CPB_PROPERTIES) + continue; + if (sd_src->type == AV_PKT_DATA_DOVI_CONF && enc->id == AV_CODEC_ID_AV1) + continue; /* AV1 doesn't use DOVI configuration records */ + sd_dst = av_packet_side_data_new(&ost->par_in->coded_side_data, + &ost->par_in->nb_coded_side_data, + sd_src->type, sd_src->size, 0); + if (!sd_dst) + return AVERROR(ENOMEM); + memcpy(sd_dst->data, sd_src->data, sd_src->size); + if (ist->autorotate && sd_src->type == AV_PKT_DATA_DISPLAYMATRIX) + av_display_rotation_set((int32_t *)sd_dst->data, 0); } } -- 2.44.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".