From patchwork Mon Feb 10 18:26:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 17750 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 68BA544A353 for ; Mon, 10 Feb 2020 20:36:09 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4637A68B00B; Mon, 10 Feb 2020 20:36:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B42FF68AF0D for ; Mon, 10 Feb 2020 20:36:02 +0200 (EET) Received: by mail-qk1-f193.google.com with SMTP id b7so7521441qkl.7 for ; Mon, 10 Feb 2020 10:36:02 -0800 (PST) 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=asjZAScYNAbvI7Z9XjhsFqVDwALXLvsa7oGCTwk4fMU=; b=nIo1UQKOzNezqnbecOrRjNgKW1OYOM7D9qWmnvgZu6A6Ct04Z7BlqRU8u9apik4gIM GZ/5rbt8QZ5QNDtKULTjGWwwctYI+OjMfVbOBu7fTqPhvSWad8+wHXCHbHMJHZrY9Qzq zk7JQ36UES8I04yq2XoqGG92dm8m4SeYRV9s6nMdM/6lEwoXmA79S4gMfHy/JgdiGOGI +0y9zPZVEcztn6v1gYNnvBz8/MBFL3XFqebbz2P1BVFbVpU1D9HLJnyqiuyBuj0g1TsS Z09Q9i7DQQnHMZ5auKWNGvI7R640yozE/iSPVhIQ6PGC21htKS2f0vVpBqfIIJs1Jac4 rq9A== 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=asjZAScYNAbvI7Z9XjhsFqVDwALXLvsa7oGCTwk4fMU=; b=n6r0BX9J3rves5Jk+sy9ZJdQakW6Mb2WQUcqP3XD20rtrcA7gpxxHyet5GclX/SDQN pPbvMRg2zOuXVx5j/sGLIIuXOWfMFcunTT7ncqvteek9YwYVsyogN0Qb/D54iPr0mAQP R1Li1rd1eFQ4tmdwVSrRo0x++9tqfT5VBtIWx37rfkfDUGVmo7ltwBFIXpBDqDUagDHo xJYX7kfKGuPIWK0QHnO5Gnv3JRS/2wFuNJfaTa6UIKyWQ4qp0Or1WvdK0AnduGIjNFwc U9yfwfb1xZMZjtfTW4JqA1ig56cel9vHkdPqlhTY+87oGfzDIPr2knY/iX/JghmHuH/w /SwA== X-Gm-Message-State: APjAAAWF7RK/sIHKwpQqxwfEEU81IJdZf68BiOGI40NX6cuylsntIxrw /HkNDhtVWtd63RAGzkINcKhDszZ0kI8= X-Google-Smtp-Source: APXvYqxogvJd4iUhz6p5pdlhflYAXcT/VxwMxsriRlPnh9QE2c10caw4/tqVyq9XFpwqcK8OMKVnPA== X-Received: by 2002:a37:c07:: with SMTP id 7mr2660006qkm.414.1581359273584; Mon, 10 Feb 2020 10:27:53 -0800 (PST) Received: from localhost.localdomain ([191.83.217.165]) by smtp.gmail.com with ESMTPSA id w131sm118926qkb.18.2020.02.10.10.27.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2020 10:27:53 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Feb 2020 15:26:44 -0300 Message-Id: <20200210182646.17593-1-jamrial@gmail.com> X-Mailer: git-send-email 2.25.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3 v2] avcodec: add an AVCodecContext field to signal types of packet, frame, and coded stream side data to export 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" Add an initial mvs flag to is, analog to the export_mvs flags2 one. Signed-off-by: James Almer --- libavcodec/avcodec.h | 18 ++++++++++++++++++ libavcodec/mpegpicture.c | 2 +- libavcodec/mpegutils.c | 2 +- libavcodec/options_table.h | 2 ++ libavcodec/snowdec.c | 2 +- libavcodec/utils.c | 3 +++ tests/ref/fate/api-mjpeg-codec-param | 2 ++ tests/ref/fate/api-png-codec-param | 2 ++ 8 files changed, 30 insertions(+), 3 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 77eb890549..1280a7ffe2 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1099,6 +1099,14 @@ typedef struct RcOverride{ */ #define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE (1 << 20) +/* Exported side data. + These flags can be passed in AVCodecContext.export_side_data before initialization. +*/ +/** + * Export motion vectors through frame side data + */ +#define AV_CODEC_EXPORT_DATA_MVS (1 << 0) + /** * Pan Scan area. * This specifies the area which should be displayed. @@ -3396,6 +3404,16 @@ typedef struct AVCodecContext { * - encoding: set by user */ int64_t max_samples; + + /** + * Bit set of AV_CODEC_EXPORT_DATA_* flags, which affects the kind of + * metadata exported in frame, packet, or coded stream side data by + * decoders and encoders. + * + * - decoding: set by user + * - encoding: set by user + */ + int export_side_data; } AVCodecContext; #if FF_API_CODEC_GET_SET diff --git a/libavcodec/mpegpicture.c b/libavcodec/mpegpicture.c index ecbd77d50e..5fce25ec6e 100644 --- a/libavcodec/mpegpicture.c +++ b/libavcodec/mpegpicture.c @@ -211,7 +211,7 @@ static int alloc_picture_tables(AVCodecContext *avctx, Picture *pic, int encodin #if FF_API_DEBUG_MV avctx->debug_mv || #endif - (avctx->flags2 & AV_CODEC_FLAG2_EXPORT_MVS)) { + (avctx->export_side_data & AV_CODEC_EXPORT_DATA_MVS)) { int mv_size = 2 * (b8_array_size + 4) * sizeof(int16_t); int ref_index_size = 4 * mb_array_size; diff --git a/libavcodec/mpegutils.c b/libavcodec/mpegutils.c index 3f94540616..c0ee3aae85 100644 --- a/libavcodec/mpegutils.c +++ b/libavcodec/mpegutils.c @@ -105,7 +105,7 @@ void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, uint8_t *mbskip_ int *low_delay, int mb_width, int mb_height, int mb_stride, int quarter_sample) { - if ((avctx->flags2 & AV_CODEC_FLAG2_EXPORT_MVS) && mbtype_table && motion_val[0]) { + if ((avctx->export_side_data & AV_CODEC_EXPORT_DATA_MVS) && mbtype_table && motion_val[0]) { const int shift = 1 + quarter_sample; const int scale = 1 << shift; const int mv_sample_log2 = avctx->codec_id == AV_CODEC_ID_H264 || avctx->codec_id == AV_CODEC_ID_SVQ3 ? 2 : 1; diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h index d4c0cdeb48..3f278d5c68 100644 --- a/libavcodec/options_table.h +++ b/libavcodec/options_table.h @@ -78,6 +78,8 @@ static const AVOption avcodec_options[] = { {"export_mvs", "export motion vectors through frame side data", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_EXPORT_MVS}, INT_MIN, INT_MAX, V|D, "flags2"}, {"skip_manual", "do not skip samples and export skip information as frame side data", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_SKIP_MANUAL}, INT_MIN, INT_MAX, A|D, "flags2"}, {"ass_ro_flush_noop", "do not reset ASS ReadOrder field on flush", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_RO_FLUSH_NOOP}, INT_MIN, INT_MAX, S|D, "flags2"}, +{"export_side_data", "Export metadata as side data", OFFSET(export_side_data), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT}, 0, UINT_MAX, A|V|S|D|E, "export_side_data"}, +{"mvs", "export motion vectors through frame side data", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_EXPORT_DATA_MVS}, INT_MIN, INT_MAX, V|D, "export_side_data"}, {"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, INT_MAX}, {"g", "set the group of picture (GOP) size", OFFSET(gop_size), AV_OPT_TYPE_INT, {.i64 = 12 }, INT_MIN, INT_MAX, V|E}, {"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|D|E}, diff --git a/libavcodec/snowdec.c b/libavcodec/snowdec.c index 59bd24e881..519e377a11 100644 --- a/libavcodec/snowdec.c +++ b/libavcodec/snowdec.c @@ -502,7 +502,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, ); av_assert0(!s->avmv); - if (s->avctx->flags2 & AV_CODEC_FLAG2_EXPORT_MVS) { + if (s->avctx->export_side_data & AV_CODEC_EXPORT_DATA_MVS) { s->avmv = av_malloc_array(s->b_width * s->b_height, sizeof(AVMotionVector) << (s->block_max_depth*2)); } s->avmv_index = 0; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index c685b9c9d7..66041151fa 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -947,6 +947,9 @@ FF_ENABLE_DEPRECATION_WARNINGS && avctx->codec_descriptor->type == AVMEDIA_TYPE_VIDEO) av_log(avctx, AV_LOG_WARNING, "gray decoding requested but not enabled at configuration time\n"); + if (avctx->flags2 & AV_CODEC_FLAG2_EXPORT_MVS) { + avctx->export_side_data |= AV_CODEC_EXPORT_DATA_MVS; + } if ( avctx->codec->init && (!(avctx->active_thread_type&FF_THREAD_FRAME) || avci->frame_thread_encoder)) { diff --git a/tests/ref/fate/api-mjpeg-codec-param b/tests/ref/fate/api-mjpeg-codec-param index e55cef0eb9..82e3313aa9 100644 --- a/tests/ref/fate/api-mjpeg-codec-param +++ b/tests/ref/fate/api-mjpeg-codec-param @@ -4,6 +4,7 @@ stream=0, decode=0 bt=4000000 flags=0x00000000 flags2=0x00000000 + export_side_data=0x00000000 time_base=0/1 g=12 ar=0 @@ -146,6 +147,7 @@ stream=0, decode=1 bt=4000000 flags=0x00000000 flags2=0x00000000 + export_side_data=0x00000000 time_base=0/1 g=12 ar=0 diff --git a/tests/ref/fate/api-png-codec-param b/tests/ref/fate/api-png-codec-param index c04c8cc7c1..7adaa5260d 100644 --- a/tests/ref/fate/api-png-codec-param +++ b/tests/ref/fate/api-png-codec-param @@ -4,6 +4,7 @@ stream=0, decode=0 bt=4000000 flags=0x00000000 flags2=0x00000000 + export_side_data=0x00000000 time_base=0/1 g=12 ar=0 @@ -146,6 +147,7 @@ stream=0, decode=1 bt=4000000 flags=0x00000000 flags2=0x00000000 + export_side_data=0x00000000 time_base=0/1 g=12 ar=0 From patchwork Mon Feb 10 18:26:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 17752 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 5338244B4D1 for ; Mon, 10 Feb 2020 20:59:54 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 38249689E33; Mon, 10 Feb 2020 20:59:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BE6E2687FF5 for ; Mon, 10 Feb 2020 20:59:47 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id v25so5958315qto.7 for ; Mon, 10 Feb 2020 10:59:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=00uDQwDvCMpAjbMqC7deFe/K/gomz81Dgw4xmb5MGvI=; b=kY4aui6pdyOaBnJIYimuK1doPbIF0kkWj8evGFVgVyyjQeJdXamL1PBX62tJDZ45Ci tlP9XIz9puGeZLrccnhhxQPfNY3HhFr66kFriHXfUlrEnJbRYXPF3h5YLqVN6f+nG1Kg E9sEgCg1xFJ35+zBxT/yy5G6gNo4l7hT5KPNmbKTQ9HVaSt2C4z5c6DA6UdiK6exD3P7 8twBKjqdc2UyLWF2JZOHRLckfFXN0EHGT/bDDpRU24NNduf6/HKWVZ8fgBRyzLVeJTST MLa4YM6tf1QifcXa3Ei/HyTm+jQOkygu/rN6xe0u3/w0Y1PRw7fpazDNEyOfwfue2iWN CQvw== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=00uDQwDvCMpAjbMqC7deFe/K/gomz81Dgw4xmb5MGvI=; b=pcHNK2bKj4GTLgaZQoPizD3SaEX45r8CwivF+JxuRgp/cqmZRSRRf3ScL55mDkUbPQ IwmM4ouFgAhcPvF66oRlcsB5FSIEQhiF/Fpx2JDIY7n2a/1s4q1n7xR+ouPqDqWFZTlx b+YgLX03lo9MyfB6STIX12jo12BDR+zCc+xxDCMxdiS/I3CWLFI0+DNiDu/kNWEyuapW oeF3BlV/Lyies7ocvbsDn5zCuQ3OWAXAQuedB0lm1YgNozQlN1U8OtJfkJhfz9Xxl1qz sGh7bHJJXD008PCyAPLhZLj7DYeLlQKH9ZO0EB043gpFJJvfGNZQeGcDAzN8ZUWL2h9w GH/g== X-Gm-Message-State: APjAAAW64yW4nJryi9tJnNj90qrODjlaMNT0CxVfhVbbqugu9t4kKglH GHGp8G1Dl+kqdlY65AU2SNG9DYdYOX4= X-Google-Smtp-Source: APXvYqwlYoY9zZ7ycFP+C4ktCjqk3tQNH45PoRNEE+Wc94+jte4wjWXtk7xDHcfQqpic9NfvJBNJ9g== X-Received: by 2002:a05:620a:a46:: with SMTP id j6mr2765847qka.164.1581359274856; Mon, 10 Feb 2020 10:27:54 -0800 (PST) Received: from localhost.localdomain ([191.83.217.165]) by smtp.gmail.com with ESMTPSA id w131sm118926qkb.18.2020.02.10.10.27.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2020 10:27:54 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Feb 2020 15:26:45 -0300 Message-Id: <20200210182646.17593-2-jamrial@gmail.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200210182646.17593-1-jamrial@gmail.com> References: <20200210182646.17593-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3 v2] avcodec: add an AVCodecContext flag to export PRFT side data on demand 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" Signed-off-by: James Almer --- libavcodec/avcodec.h | 8 +++++++- libavcodec/options_table.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 1280a7ffe2..7a40fa12b5 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1106,6 +1106,10 @@ typedef struct RcOverride{ * Export motion vectors through frame side data */ #define AV_CODEC_EXPORT_DATA_MVS (1 << 0) +/** + * Export Producer Reference Time through packet side data + */ +#define AV_CODEC_EXPORT_DATA_PRFT (1 << 1) /** * Pan Scan area. @@ -1426,7 +1430,9 @@ enum AVPacketSideDataType { AV_PKT_DATA_AFD, /** - * Producer Reference Time data corresponding to the AVProducerReferenceTime struct. + * Producer Reference Time data corresponding to the AVProducerReferenceTime struct + * exported by some encoders (on demand through the prft flag set in the AVCodecContext + * export_side_data field). */ AV_PKT_DATA_PRFT, diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h index 3f278d5c68..3265889b8e 100644 --- a/libavcodec/options_table.h +++ b/libavcodec/options_table.h @@ -80,6 +80,7 @@ static const AVOption avcodec_options[] = { {"ass_ro_flush_noop", "do not reset ASS ReadOrder field on flush", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_RO_FLUSH_NOOP}, INT_MIN, INT_MAX, S|D, "flags2"}, {"export_side_data", "Export metadata as side data", OFFSET(export_side_data), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT}, 0, UINT_MAX, A|V|S|D|E, "export_side_data"}, {"mvs", "export motion vectors through frame side data", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_EXPORT_DATA_MVS}, INT_MIN, INT_MAX, V|D, "export_side_data"}, +{"prft", "export Producer Reference Time through packet side data", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_EXPORT_DATA_PRFT}, INT_MIN, INT_MAX, A|V|S|E, "export_side_data"}, {"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, INT_MAX}, {"g", "set the group of picture (GOP) size", OFFSET(gop_size), AV_OPT_TYPE_INT, {.i64 = 12 }, INT_MIN, INT_MAX, V|E}, {"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|D|E}, From patchwork Mon Feb 10 18:26:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 17751 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 C9EB744ADB0 for ; Mon, 10 Feb 2020 20:55:07 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AAB6C68AFEF; Mon, 10 Feb 2020 20:55:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vk1-f195.google.com (mail-vk1-f195.google.com [209.85.221.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AA92B68A9F3 for ; Mon, 10 Feb 2020 20:55:01 +0200 (EET) Received: by mail-vk1-f195.google.com with SMTP id i78so2096987vke.0 for ; Mon, 10 Feb 2020 10:55:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=OpHo8VspmvtAr5pgZh531oUAVNxl97miGYEgEWhM4jQ=; b=MHnp2bLnWbe3ZTw8piI5I3gZoKgcsHjjMupZ2CbzhhALfyqINv0tpS3LA6vn+1jh4e tvStd7pIr8dcOJFYA/jbhkWyKoEUQxIQu74JRUoVveY+6f+OJTUQQHixClhpfKUaUIki 3VVqx6ztRHYMKm6cxHXRChx97g9v+t9DuYSV+FdWii0g7bnF0Cq2POe1/1V3kegyc8gB +iHpCtTvyRDp9W3XT6XiE/uElVgP4M6cAeAOdTt4o0e4pnkwU09iwdpo6nBVaTZ1IJkm biNJKQX6gIFHXkRr2QLTIPRAnvX7GSuPiVv4HZQ2ECQtkvkI+LmN9dFrUXcPEb1Nyaol 0n/Q== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=OpHo8VspmvtAr5pgZh531oUAVNxl97miGYEgEWhM4jQ=; b=hVAFRaE3RRab5D3KXOQ/6gVRAyTtzg8Qr2uJnaSRglRDrET51zCLeuNsq90md6G7cc 06+pXdfIEQKEFCif+PwiF5rEmC+ewGSmplpHo9PjT+ariq7bpfD8gQSzL4inAOcp7D19 Fef8TXUIy5dFxnCHm+K55nCi7Lz8UYUzWRBEcMfTHIXNkYFx0y3/ggtMPgxhvYXtGAcE 45QrVZmcJUsUvWpgg7gBcy1jaMYKOMji+MUQxXllYRrHlZHSAio63HpTGd3VjHdu43H4 kQkWTosSbJKfZ/8h5YRWmEmhbv5YdfsWWishG0TIhcXb/7+pNlsaGUeKKq5132S//E9P WrGQ== X-Gm-Message-State: APjAAAXsPczrvmvOmnfFUoh6mHfbpLlmNVs+Wv3fr4+S2tVyoKNn+ADb 4+QAGzPZ5sEeVFEng4/mKTe/UVCePdc= X-Google-Smtp-Source: APXvYqwIbvuUuoR/381g6JpmrlczsGlLsVvX5H6bvXmOIck3NzqBrgKeUmqM6X9TzARzl5eizbhU5w== X-Received: by 2002:a0c:8605:: with SMTP id p5mr11184248qva.109.1581359275906; Mon, 10 Feb 2020 10:27:55 -0800 (PST) Received: from localhost.localdomain ([191.83.217.165]) by smtp.gmail.com with ESMTPSA id w131sm118926qkb.18.2020.02.10.10.27.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2020 10:27:55 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Feb 2020 15:26:46 -0300 Message-Id: <20200210182646.17593-3-jamrial@gmail.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200210182646.17593-1-jamrial@gmail.com> References: <20200210182646.17593-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/libx264: add a check for the prft AVCodecContext export_side_data flag 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" Signed-off-by: James Almer --- libavcodec/libx264.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index ca8f6c0873..a08fe0ce76 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -322,7 +322,9 @@ static int X264_frame(AVCodecContext *ctx, AVPacket *pkt, const AVFrame *frame, x4->pic.i_pts = frame->pts; x4->reordered_opaque[x4->next_reordered_opaque].reordered_opaque = frame->reordered_opaque; - x4->reordered_opaque[x4->next_reordered_opaque].wallclock = av_gettime(); + x4->reordered_opaque[x4->next_reordered_opaque].wallclock = wallclock; + if (ctx->export_side_data & AV_CODEC_EXPORT_DATA_PRFT) + x4->reordered_opaque[x4->next_reordered_opaque].wallclock = av_gettime(); x4->pic.opaque = &x4->reordered_opaque[x4->next_reordered_opaque]; x4->next_reordered_opaque++; x4->next_reordered_opaque %= x4->nb_reordered_opaque;