From patchwork Mon Aug 26 16:17:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 14717 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 4A5D644A3B0 for ; Mon, 26 Aug 2019 19:18:53 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2C29D68ABBF; Mon, 26 Aug 2019 19:18:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BB2E768A878 for ; Mon, 26 Aug 2019 19:18:45 +0300 (EEST) Received: by mail-qk1-f195.google.com with SMTP id d23so14530012qko.3 for ; Mon, 26 Aug 2019 09:18:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=OKSzg/f6eHOmdODkxYMEvV+hPMZ8vAIn4Jf/uax+k6Y=; b=Lk+7hgWobOtnDmSnW9tpMUoHwhB4IDVOyg3KP82w+32OgECAcjwrFmjL0qvdJC+ZP8 cykGI+csZGDhnR0RRllZVOcu4KwLA1vyREkw4grzdZQ2GY0hQrmZajeuDqtLH+bt3K9j KE96WCgBTaXzCzq9RTHZzo6bb+1JyyAEfBWAo5Kw0JoWUPNo7QykJWLe5hlF60X03ybC +vrnbzOcODr4ZhkuouklJcZj+qTus6oa6plCzthIrumgeaAe24+ea8Jlttg8wvadDrKk 2ypf4TxtZV6lVEoms5+En1BgqxIiwZUmmYnr/Y+A76Qak2LNYmbIzuCRe+Q60mKKA8mx 8iKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=OKSzg/f6eHOmdODkxYMEvV+hPMZ8vAIn4Jf/uax+k6Y=; b=qsldaW3CWYPkV8hSI2KxwITDTHP9/H3XVaC+RHN37qXqkBC+u7LwRJe2QIQAdLsYKi R3u8Tbdj5vBOVC/63YSjvUUKR4OTJ7hO5mYmdhJE79AfkZx4RkJsOR1/ZjAZAZeEGPHA TvEt9uYSIUN1gZRhm+20hfH6Qz7b7z4hR+nuIcDpbGmn3rupxl0bhUgSFSfjPxHUwbVR If9opJczhAjbbOZ0TSHG0X+EopMTp9XFLsVIBEKgzND3Wov5Z2SHnzcEKvR33D38dGgs jERkxuoCZ3UhSIjuHJJb9nH1gRETnlXsyGBKG/NQBzAOdRHT9ZVVpbP48o5Ql3wNn3PR tolg== X-Gm-Message-State: APjAAAV1QcH+tIy+wFuaD3ri8pT1ylARrcCj/NDXcIgdkIgq7WGHxugw X6A7ufgmAjKLFDLT1Cwdy+5ys2PT X-Google-Smtp-Source: APXvYqz0iGm+HSTlyGl2UvaTnLGZTEK7Zdlg1JNaPkYizEZJepqkZyQiY5uPfQT0v50NKDqUgey1YA== X-Received: by 2002:ae9:d8c7:: with SMTP id u190mr16232451qkf.461.1566836324132; Mon, 26 Aug 2019 09:18:44 -0700 (PDT) Received: from localhost.localdomain ([181.23.84.150]) by smtp.gmail.com with ESMTPSA id b1sm5149118qkk.8.2019.08.26.09.18.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Aug 2019 09:18:43 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Aug 2019 13:17:25 -0300 Message-Id: <20190826161727.1255-1-jamrial@gmail.com> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3][RFC] avutil/frame: add AV_FRAME_FLAG_DISPOSABLE X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" Used to signal frames that can be safely discarded without losing any picture data, side data, or metadata other than timing info. Signed-off-by: James Almer --- This implements the "disposable frame" solution to allow library users to drop duplicate frames before further processing if desired, instead of forcing decoders to output vfr content when cfr is coded in the bitstream. doc/APIchanges | 3 +++ libavutil/frame.h | 5 +++++ libavutil/version.h | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 682b67aa25..b28d702bae 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,9 @@ libavutil: 2017-10-21 API changes, most recent first: +2019-08-xx - xxxxxxxxxx - lavu 58.34.100 - avframe.h + Add AV_FRAME_FLAG_DISPOSABLE + 2019-08-xx - xxxxxxxxxx - lavf 58.31.101 - avio.h 4K limit removed from avio_printf. diff --git a/libavutil/frame.h b/libavutil/frame.h index 5d3231e7bb..e1bf8795d2 100644 --- a/libavutil/frame.h +++ b/libavutil/frame.h @@ -522,6 +522,11 @@ typedef struct AVFrame { * A flag to mark the frames which need to be decoded, but shouldn't be output. */ #define AV_FRAME_FLAG_DISCARD (1 << 2) +/** + * A flag to indicate frames that can be discarded by the encoder. I.e. frames + * that are an exact duplicate of the previous one. + */ +#define AV_FRAME_FLAG_DISPOSABLE (1 << 3) /** * @} */ diff --git a/libavutil/version.h b/libavutil/version.h index ecc6a7c9e2..658a508284 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 56 -#define LIBAVUTIL_VERSION_MINOR 33 +#define LIBAVUTIL_VERSION_MINOR 34 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \