From patchwork Sat Apr 10 21:00:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26838 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 38BB344A1EF for ; Sun, 11 Apr 2021 00:00:46 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 144A0680C54; Sun, 11 Apr 2021 00:00:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 773A7680858 for ; Sun, 11 Apr 2021 00:00:39 +0300 (EEST) Received: by mail-qt1-f177.google.com with SMTP id j7so6993102qtx.5 for ; Sat, 10 Apr 2021 14:00:39 -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=WazHR/nkAqfJhDSRQye96XNhrySJ5tebjlc2qqrRjkg=; b=MW3krTliBu/PsU397u+35tcixYSZVY7pQD8o99oPmkELpaYTSL31y5ipxukTLuJTHC R9jDreqBoP/FfcODuv/Lgr1ebv5y9Baty1fpT2O7m21TIG0PqR69FCKM0WTCUT9Z6leS 4M85HADqM3pesqvwVEl8IZJLqkwcXTLxrm6rn76lmRxJinzTI3Zhn/RgFHwndEbcu2oq I6xvcIq8ZvHSMUASxHhgZRfKz3Kys/FhFmKwZlaoIqbUN0UyRvVVFOZHSqgde0vw8CI/ gEiuCxpjWV8VpZMpSaihUmE9h0xUZCHW384vGukXhBE8B7WGwNFhSJb2qaOsBnHhNyJA VFgQ== 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=WazHR/nkAqfJhDSRQye96XNhrySJ5tebjlc2qqrRjkg=; b=UmctuxlO27BKh8/kUlbS3UDglncFvqSchqjTPPMAnW2Gxulzo5o8P3Sl6mJpuGNVmV Aqfhey0McFARBOMI09Je+oPMsf9AyYW1ASEfCGcOaWcsQmT4RJ5XbmYvxCNMUrLG19Pl 7BItg0i1jCT3gT6+NQldGDKTvWbt8g5XFqlLAIArbcg1hSfx7/9T/PQSx7n3ZBANJJ1u xk2pZVUh9/Mc/S2B1I7ySC2VOMdmflVMNiQvEhBBREZALx5ir5Ens+gzaQSXv8n81yyc z680gCpflxwZugdDNz/DJ7Eq9whtMCKZHKH8ktD4DBswrFGebSuXNw6z3mx2OcVPus2a feuA== X-Gm-Message-State: AOAM531KAcO8uM3ieFNDmuMThIz3t/m7qxLcZywSJoxunTQe5P/x6n+R CfPom9/y3Y4C30IhwbHLn27ZVRlo2c0= X-Google-Smtp-Source: ABdhPJwR9v8gK5KATMZqckO0EFyRw+zCuVt9Xw51zZ2nJlYjAVIE8RMlISfB3OP2btL6w91/IGx5JA== X-Received: by 2002:ac8:6b83:: with SMTP id z3mr8503535qts.272.1618088437863; Sat, 10 Apr 2021 14:00:37 -0700 (PDT) Received: from localhost.localdomain ([191.83.208.158]) by smtp.gmail.com with ESMTPSA id 1sm4914759qtu.96.2021.04.10.14.00.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Apr 2021 14:00:37 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 10 Apr 2021 18:00:20 -0300 Message-Id: <20210410210023.27057-1-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] avcodec/h264dec: add missing flags to is_avc and nal_length_size AVOptions 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/h264dec.c | 5 +++-- tests/ref/fate/mov-zombie | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 47b9abbc5c..f44c8c8175 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -1027,9 +1027,10 @@ static int h264_decode_frame(AVCodecContext *avctx, void *data, #define OFFSET(x) offsetof(H264Context, x) #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM +#define VDE VD | AV_OPT_FLAG_EXPORT static const AVOption h264_options[] = { - { "is_avc", "is avc", OFFSET(is_avc), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0 }, - { "nal_length_size", "nal_length_size", OFFSET(nal_length_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, 0 }, + { "is_avc", "is avc", OFFSET(is_avc), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, VDE }, + { "nal_length_size", "nal_length_size", OFFSET(nal_length_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, VDE }, { "enable_er", "Enable error resilience on damaged frames (unsafe)", OFFSET(enable_er), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VD }, { "x264_build", "Assume this x264 version if no x264 version found in any SEI", OFFSET(x264_build), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, VD }, { NULL }, diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie index 7b417e59dd..1b54c58d04 100644 --- a/tests/ref/fate/mov-zombie +++ b/tests/ref/fate/mov-zombie @@ -194,5 +194,5 @@ frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=188623|pkt_pts_time=2. packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|size=580|pos=101820|flags=__ frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=191626|pkt_pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|pkt_duration=3003|pkt_duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleftside_data|side_data_type=H.26[45] User Data Unregistered SEI message -stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264 +stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|refs=2|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264 side_data|side_data_type=Display Matrix|displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|rotation=0 From patchwork Sat Apr 10 21:00:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26840 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 DD45244A5AD for ; Sun, 11 Apr 2021 00:06:58 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B7F7668799C; Sun, 11 Apr 2021 00:06:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DF159680A2C for ; Sun, 11 Apr 2021 00:06:51 +0300 (EEST) Received: by mail-qk1-f173.google.com with SMTP id b139so4087553qkc.10 for ; Sat, 10 Apr 2021 14:06:51 -0700 (PDT) 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=EmIPcUQCyANF59at9ep/8qNWiyTs8sZ+vCfMcKDbRuI=; b=A7KEnEtetdRkKytUzVsmHrOm7JQIJSUy7HzTRa9KdUN8f1oixtAkUWe2IdY7Fr+VD7 +tzKKSoRqiS1nHl/S8Axs1+BIJFOFAZLp5gPF0noCFmKx7jkAudTHBWVlPfmVVjG4sH1 Fl4pKBdB90PxJEJrQLYYXO6uG77CONu5CMk7NzgPMOheyUzvLQbSlSZQiOEClYszjCv6 f1nhWqV5WdSR0+1MRbq75kC+F9ZeIDjMdiW7rAxH66wdQUJOJtGkxmMwmS8m7Wikli3A goqdeERU2rSVw8d0QbHgZ0CcIgBh70qth+c0FQWK+aUHTW8i7/w2v65o6bxm7s2iCNvS LAmw== 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=EmIPcUQCyANF59at9ep/8qNWiyTs8sZ+vCfMcKDbRuI=; b=oce6o7s+u6IV4yyGyKZtM9fCIDecNvoU1JoRqu8xn39cyyRs5UZo/EkxeySrQGQIJp WkDlVC+vV685+9z369t/Nc9glpK7lGlkVD8aD1GvGGc0ny+0BgYS2cZCVS3wbegbCjq+ dDdjI9vxKyrMCj1nd8WFNwydvkOWWlF4pqfvqtcW+J6gJ+AROWHu7e9+Pg+vqdoLl/j6 AVd8ariN8K4zMF7EEWf7+4820OXtAJ2d0dXECq/p2CRMNvn45K40AJEAEiyosp6igq2E n+92Y0EqiXFA7D62VsZ5sAp3KT/eYp4kMJ/cPkOQnUoplt2Dy7b5d8sLTK2BpU7NndvG SalQ== X-Gm-Message-State: AOAM531vMexrk/go3g5OuVIVigdzH1hEHnFzf07nf54exvzw6woEWEdt uzSYC3r39X/RjOdgxNRMm97uq/DcWZE= X-Google-Smtp-Source: ABdhPJxIuUVbuLxYTvee93ZkXtuzEy1SsAlB312x8uN2zYP4l1wPIpSB9J+tIbY3NNxXdT1gXxptJQ== X-Received: by 2002:a05:620a:914:: with SMTP id v20mr20911286qkv.140.1618088438955; Sat, 10 Apr 2021 14:00:38 -0700 (PDT) Received: from localhost.localdomain ([191.83.208.158]) by smtp.gmail.com with ESMTPSA id 1sm4914759qtu.96.2021.04.10.14.00.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Apr 2021 14:00:38 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 10 Apr 2021 18:00:21 -0300 Message-Id: <20210410210023.27057-2-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210410210023.27057-1-jamrial@gmail.com> References: <20210410210023.27057-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4] ffprobe: only print exported private decoder options 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 --- fftools/ffprobe.c | 2 +- tests/ref/fate/mov-zombie | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 38462e1ff3..8c7b238adf 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2714,7 +2714,7 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id const AVOption *opt = NULL; while (opt = av_opt_next(dec_ctx->priv_data,opt)) { uint8_t *str; - if (opt->flags) continue; + if (!(opt->flags & AV_OPT_FLAG_EXPORT)) continue; if (av_opt_get(dec_ctx->priv_data, opt->name, 0, &str) >= 0) { print_str(opt->name, str); av_free(str); diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie index 1b54c58d04..7b417e59dd 100644 --- a/tests/ref/fate/mov-zombie +++ b/tests/ref/fate/mov-zombie @@ -194,5 +194,5 @@ frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=188623|pkt_pts_time=2. packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|size=580|pos=101820|flags=__ frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=191626|pkt_pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|pkt_duration=3003|pkt_duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleftside_data|side_data_type=H.26[45] User Data Unregistered SEI message -stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|refs=2|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264 +stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264 side_data|side_data_type=Display Matrix|displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|rotation=0 From patchwork Sat Apr 10 21:00:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26842 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 2A1BE44B7CA for ; Sun, 11 Apr 2021 00:08:55 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DD6BD68799C; Sun, 11 Apr 2021 00:08:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 635F8680A2C for ; Sun, 11 Apr 2021 00:08:48 +0300 (EEST) Received: by mail-qk1-f176.google.com with SMTP id q26so9474017qkm.6 for ; Sat, 10 Apr 2021 14:08:48 -0700 (PDT) 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=hiyz9gFFNvao0nracTC/1vnuC8QiM//wSjvUPDO8YPw=; b=FFEc7EXoTAMJZf5A5spelOVdsah4xopx3Z2ihTSz5Fue+qbge2uB1cbkNJjuZIJuy1 Grv1dAgmD/j5fRHO3bT9IqBBv979DuVENEQ8Z+t/zT71seGz+66bO2ofTCtcYdVrwQGJ iJYvwjXLeMYwVXXvPGk4gGSZ9qBMF/bChy37y2Nn9qgTGP3Qg9QOa60Bk7ndLtmDMKq1 aMhNcKA+Z3UMm0UDggRPaoAyN8w4P5WM6bfwCsYTEIfWsrdLSJbG2iJtRKSxcO+LD3Kb tyyPzlTwjYiXa35wPH6EWcAWP5sJNRM88S5rTw+3yccP05BZvfk7zIKj8YJBxosZ0/6y M0Nw== 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=hiyz9gFFNvao0nracTC/1vnuC8QiM//wSjvUPDO8YPw=; b=GaHdWunodlHijvuFek5HYZi0yJemrv5mOamI4bWfsiirQpA0U/UcKu0ISNgXRa1/hz WTDNWPUWbgGTfm8IBZTaD+vMx3TF0OJS1K937p1jkwp2Pq1UnNWKWq0mMJqmIEErM3df nCyyVO/13Ey6n1fgYttv26udrz4TKF7Hw8YaMYPYa2JdeN2Oo8cG6RvepAu5cpIHdDNl rRZ02gKFDWDZElpRt1lL9dvAqjzRA18zJJOKhD+tCCQ22WuQrsNIrGJDjdjc9fmMqIoj b1LXP1G3UvAPMY1AJAWuu/rzPIUET14dlYsNvRgHAAfIlkzhMhdXHs5z45Deabgpb8CZ Y/8w== X-Gm-Message-State: AOAM53255hU0Ug6oFBJ7MYdLDZFzpWZb1WbNsDnFv+/cugd48uUDqLpo VWbnAxXN6ZG7a5ilM65pwXr19l/lU2A= X-Google-Smtp-Source: ABdhPJwGkGB4gwhXmxDYc5tPmAzYJQ+c3K5yv9xS6qbqZHFzo3nqC0f86MhDuHka9AFqj9BX60f9Yw== X-Received: by 2002:a37:a390:: with SMTP id m138mr19462286qke.59.1618088440089; Sat, 10 Apr 2021 14:00:40 -0700 (PDT) Received: from localhost.localdomain ([191.83.208.158]) by smtp.gmail.com with ESMTPSA id 1sm4914759qtu.96.2021.04.10.14.00.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Apr 2021 14:00:39 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 10 Apr 2021 18:00:22 -0300 Message-Id: <20210410210023.27057-3-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210410210023.27057-1-jamrial@gmail.com> References: <20210410210023.27057-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] pthread_frame: introduce a codec callback to update the user-facing context 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" From: Hendrik Leppkes --- libavcodec/codec.h | 5 +++++ libavcodec/pthread_frame.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/libavcodec/codec.h b/libavcodec/codec.h index 50a22f6e3c..de050b2815 100644 --- a/libavcodec/codec.h +++ b/libavcodec/codec.h @@ -258,6 +258,11 @@ typedef struct AVCodec { * dst and src will (rarely) point to the same context, in which case memcpy should be skipped. */ int (*update_thread_context)(struct AVCodecContext *dst, const struct AVCodecContext *src); + + /** + * Copy variables back to the user-facing context + */ + int (*update_thread_context_for_user)(struct AVCodecContext *dst, const struct AVCodecContext *src); /** @} */ /** diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c index 9176027f15..ae5b000d97 100644 --- a/libavcodec/pthread_frame.c +++ b/libavcodec/pthread_frame.c @@ -326,6 +326,8 @@ FF_DISABLE_DEPRECATION_WARNINGS dst->coded_frame = src->coded_frame; FF_ENABLE_DEPRECATION_WARNINGS #endif + if (dst->codec->update_thread_context_for_user) + err = dst->codec->update_thread_context_for_user(dst, src); } else { if (dst->codec->update_thread_context) err = dst->codec->update_thread_context(dst, src); From patchwork Sat Apr 10 21:00:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26839 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 49EB944A1EF for ; Sun, 11 Apr 2021 00:00:49 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2A888687F4E; Sun, 11 Apr 2021 00:00:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7CB2E68799C for ; Sun, 11 Apr 2021 00:00:42 +0300 (EEST) Received: by mail-qv1-f46.google.com with SMTP id es6so4472258qvb.0 for ; Sat, 10 Apr 2021 14:00:42 -0700 (PDT) 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=MiPk7sbHkvB8S2464LOZV9136vSoKu088TJKW9F70/c=; b=Q+ut5z4c043alL9xzu4dZqG12lljUuwJPpQek/v2RcT96TmCC/AlPGQOQKTY2+eKPz Ae6zYpJ0N0YAVnlUUBM/rdiZ39OCmRH8/gdBHUIxDOjNZgBlfuInTdIC+D4roKji+9PN xMRtEInjs1SeXNfPCBbbtMO87qg8r56Up9MVCoNr6o4vpiHf2YhymN8/ElLZ7qIBFOK/ r0ie4Z+Kqn9RaABVoPdAGtf0Cg6SV70egGoWO5vBg939nmvhSwNVg7/pu+G1A47TIJf3 RKHpDgdr/hb7WblX/7sPp8e2KOy1X/9k++cyE853ViriVNmSmfD/00wIgqzSERUnowFZ sFdA== 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=MiPk7sbHkvB8S2464LOZV9136vSoKu088TJKW9F70/c=; b=fhGx7LtggWA0ws6j03y8PVzvJb3/DfAK+5sVN5jOttlT3FyQpG2hFtfebixtYlg1U4 Q3cTMRlSsVAybNjgxZ7xuvxTLWXBWdn0gaOJcpFsR5gSoOfqeEKlx/nKhnn9xjNYJD2A ZA0Dqz9/0k/m5YKQ2EdxVRsp1TBNfFfjfVOoHLgq3+aYzmFp/C0UUGvtAT6nBUq+AZ4I GQVXqmBnEM5u0mEqpiSsPePxIMG7Yl1sBXrPFUEGlFhh4Am7J5A5evrlgXnyrYgjdWRW eJRmxjO868xH6ya2jBr/wydCf7Fk1RYe+fGGuUx2DXU2o8I1QmGuPG8f7Xs64XlENnZ3 wDrg== X-Gm-Message-State: AOAM530rjKedCR70Is5jJ/RJ9+9st9XG95AYp2cEixIr1B4iE56dfCVM ZyaHcW6t52VpucvpfpE+6W9/OiuD85o= X-Google-Smtp-Source: ABdhPJzzsrI8JzK5Efm3uoM6yGKzMtSmM52L1G72dxWdeW0xuARlqP3no2oEmTTaF0nwxYkI9eWbBw== X-Received: by 2002:a0c:fc46:: with SMTP id w6mr3038054qvp.0.1618088441237; Sat, 10 Apr 2021 14:00:41 -0700 (PDT) Received: from localhost.localdomain ([191.83.208.158]) by smtp.gmail.com with ESMTPSA id 1sm4914759qtu.96.2021.04.10.14.00.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Apr 2021 14:00:40 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 10 Apr 2021 18:00:23 -0300 Message-Id: <20210410210023.27057-4-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210410210023.27057-1-jamrial@gmail.com> References: <20210410210023.27057-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] avcodec/h264dec: update exported AVOptions in the user-facing context 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" Based on a patch by Hendrik Leppkes. Fixes ticket #9176. Signed-off-by: James Almer --- libavcodec/h264_slice.c | 14 ++++++++++++++ libavcodec/h264dec.c | 1 + libavcodec/h264dec.h | 2 ++ 3 files changed, 17 insertions(+) diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 62f7a61aed..a6389a80f3 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -464,6 +464,20 @@ int ff_h264_update_thread_context(AVCodecContext *dst, return err; } +int ff_h264_update_thread_context_for_user(AVCodecContext *dst, + const AVCodecContext *src) +{ + H264Context *h = dst->priv_data, *h1 = src->priv_data; + + if (dst == src) + return 0; + + h->is_avc = h1->is_avc; + h->nal_length_size = h1->nal_length_size; + + return 0; +} + static int h264_frame_start(H264Context *h) { H264Picture *pic; diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index f44c8c8175..885c18667d 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -1083,6 +1083,7 @@ AVCodec ff_h264_decoder = { FF_CODEC_CAP_ALLOCATE_PROGRESS | FF_CODEC_CAP_INIT_CLEANUP, .flush = h264_decode_flush, .update_thread_context = ONLY_IF_THREADS_ENABLED(ff_h264_update_thread_context), + .update_thread_context_for_user = ONLY_IF_THREADS_ENABLED(ff_h264_update_thread_context_for_user), .profiles = NULL_IF_CONFIG_SMALL(ff_h264_profiles), .priv_class = &h264_class, }; diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h index b3677cdbb9..8954b74795 100644 --- a/libavcodec/h264dec.h +++ b/libavcodec/h264dec.h @@ -849,6 +849,8 @@ int ff_h264_queue_decode_slice(H264Context *h, const H2645NAL *nal); int ff_h264_execute_decode_slices(H264Context *h); int ff_h264_update_thread_context(AVCodecContext *dst, const AVCodecContext *src); +int ff_h264_update_thread_context_for_user(AVCodecContext *dst, + const AVCodecContext *src); void ff_h264_flush_change(H264Context *h); From patchwork Mon Apr 12 14:38:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26878 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 7C4EC44A135 for ; Mon, 12 Apr 2021 17:39:15 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5071268799C; Mon, 12 Apr 2021 17:39:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E7003680533 for ; Mon, 12 Apr 2021 17:39:08 +0300 (EEST) Received: by mail-qk1-f178.google.com with SMTP id d23so1820881qko.12 for ; Mon, 12 Apr 2021 07:39:08 -0700 (PDT) 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=CHWBMhSOnIsmr/NN7itRbji3/fx1dm0mnbA4sbzxbcc=; b=SqOEhV8YkVbMAbPHZdcA6xmEGvIsLrQ+FpNOjhUsVb6Ekpk5MMPHNBCxWghOeA8d7G 5YaKGOQDIZ7gMPf+p2yRCkNWhMtuPQdqa0I+QeSITmC+xEbU4E59DiekknH32ex8bEkO hFpZyzhtHN0JM7XUdP0O6ZosEo01bne5q+4WPuihQbwNzB0t/Bh1K2lT/RJrR/6z6t9X FZJC1WkdTqDVJWtq5qpop/tmqOjCUufOOmJOs0cBE47eYwr67tElEopMWlC4yeCYVkWt kziHdJlQovbv/PujZWb776F01RsKrK8REYYyXktwRfsCh/GjwmM45v16USPyLu3fsjyo AD8A== 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=CHWBMhSOnIsmr/NN7itRbji3/fx1dm0mnbA4sbzxbcc=; b=W6Wj0ShWfK7KJBlZxjft9b9vKjCye0xNQQjfQcGsrqGgYWVsb4HSbEe1BTFhXyDL2H vPk/JBdZJGMWbUYvAeISdjLAD1yIBK12iUeTHG/62hLO4U8VVV8xOVVbUupaPPkQsdZr KloZ5zw4airNBsn0wofTb1fEDpn568V5+2r1e2Xjg0xYkZg/jroRTzPiw70UyAULsAWE nig0pcni+RtDKAeI6oqJFEqJuwjuA4GC8egVT9oGPEebDmXVpTpR2ckkjOOEyauoLspU AIf4j/oVfyZPwAxIat1cW5aELb0CaXY6XSansfn6La/2b+d1MDtMdGz849fh8KPoQj/o F/Zw== X-Gm-Message-State: AOAM532Fa6d6b7Ir28V52T/DB98Pl6UO1S/kbqN7m5mZwA5IeyKYR6FX xrmuMpW/rYiQ46bwkb+McyB51ImPNoCdSQ== X-Google-Smtp-Source: ABdhPJw4by2NMF8B38pzzRlxXrVTXeDS8GEsiD+ZPDfnOTzeQAR2ngpaF11za1D++IUWC1rbqLeUBg== X-Received: by 2002:a37:e213:: with SMTP id g19mr704692qki.260.1618238347161; Mon, 12 Apr 2021 07:39:07 -0700 (PDT) Received: from localhost.localdomain ([191.84.237.33]) by smtp.gmail.com with ESMTPSA id a11sm6924777qkn.12.2021.04.12.07.39.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Apr 2021 07:39:06 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Apr 2021 11:38:02 -0300 Message-Id: <20210412143802.286-1-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210410210023.27057-1-jamrial@gmail.com> References: <20210410210023.27057-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] avcodec/mpeg4videodec: update exported AVOptions in the user-facing context 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" This prevents bogus values being reported on frame multithreaded decoding scenarios. Signed-off-by: James Almer --- libavcodec/mpeg4videodec.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 2c440a5026..de66fe8b83 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -3495,6 +3495,18 @@ static int mpeg4_update_thread_context(AVCodecContext *dst, return 0; } + +static int mpeg4_update_thread_context_for_user(AVCodecContext *dst, + const AVCodecContext *src) +{ + MpegEncContext *m = dst->priv_data; + const MpegEncContext *m1 = src->priv_data; + + m->quarter_sample = m1->quarter_sample; + m->divx_packed = m1->divx_packed; + + return 0; +} #endif static av_cold void mpeg4_init_static(void) @@ -3585,6 +3597,7 @@ AVCodec ff_mpeg4_decoder = { .pix_fmts = ff_h263_hwaccel_pixfmt_list_420, .profiles = NULL_IF_CONFIG_SMALL(ff_mpeg4_video_profiles), .update_thread_context = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context), + .update_thread_context_for_user = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context_for_user), .priv_class = &mpeg4_class, .hw_configs = (const AVCodecHWConfigInternal *const []) { #if CONFIG_MPEG4_NVDEC_HWACCEL