Projects
home:enzokiel
avidemux3
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 43
View file
avidemux3.changes
Changed
@@ -1,7 +1,7 @@ ------------------------------------------------------------------- -Thu Sep 24 18:37:16 UTC 2026 - enzokiel@kabelmail.de +Sun Oct 04 09:39:22 UTC 2026 - enzokiel@kabelmail.de -- Update to version 2.8.2.git20260922 +- Update to version 2.8.2.git20261002 - No changelog available -------------------------------------------------------------------
View file
avidemux3.spec
Changed
@@ -19,7 +19,7 @@ Name: avidemux3 Summary: Graphical video editing and transcoding tool License: GPL-2.0-only -Version: 2.8.2.git20260922 +Version: 2.8.2.git20261002 Release: 0 URL: https://github.com/mean00/avidemux2 ExclusiveArch: %ix86 x86_64
View file
avidemux2-2.8.2.git20260922.tar.xz/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp -> avidemux2-2.8.2.git20261002.tar.xz/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp
Changed
@@ -424,7 +424,7 @@ } else { int maxClockFreq = 0x7FFFFFFF; - usSecondsToFrac(info->frameIncrement, &(_context->framerate.num), &(_context->framerate.den), maxClockFreq); + usSecondsToFrac(info->frameIncrement, &(_context->framerate.den), &(_context->framerate.num), maxClockFreq); switch(codec->id) { case AV_CODEC_ID_MPEG4:
View file
avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.cpp -> avidemux2-2.8.2.git20261002.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.cpp
Changed
@@ -76,6 +76,33 @@ _context->gop_size = NvEncSettings.gopsize; _context->refs = NvEncSettings.refs; +#ifdef AV1_ENCODER + // Hierarchical wants the number of b-frames in form 2^n - 1 where n is 1...5 + if(NvEncSettings.b_ref_mode == NV_FF_BFRAME_REF_HIERARCHICAL && NvEncSettings.bframes > 0) + { + if((NvEncSettings.bframes & (NvEncSettings.bframes + 1)) != 0) + { + int bfvalid = 1; + for (int i = 1; i <= 5; i++) + { + int bfcandidate = (1u << i) - 1; + if (bfcandidate <= NvEncSettings.bframes) + bfvalid = bfcandidate; + else + break; + } + ADM_warning("Hierarchical must have bframes in form 2^n - 1 (got %u), setting to %u.\n", + NvEncSettings.bframes, bfvalid); + NvEncSettings.bframes = bfvalid; + } + } + else if(NvEncSettings.bframes > 7) + { + ADM_warning("b-frames limited to <=7 for non-hierarchical (got %u), setting to 7.\n", + NvEncSettings.bframes); + NvEncSettings.bframes = 7; + } +#endif _context->max_b_frames = #if defined(H265_ENCODER) || defined(AV1_ENCODER) NvEncSettings.bframes; @@ -95,6 +122,11 @@ case NV_FF_BFRAME_REF_MIDDLE: av_dict_set(&_options,"b_ref_mode","middle",0); break; +#ifdef AV1_ENCODER + case NV_FF_BFRAME_REF_HIERARCHICAL: + av_dict_set(&_options,"b_ref_mode","hierarchical",0); + break; +#endif default: ADM_warning("b_ref_mode %u is invalid, ignoring.\n",NvEncSettings.b_ref_mode); break; @@ -204,6 +236,41 @@ targetPixFrmt = ADM_PIXFRMT_NV12; #endif + // Set encoder delay + int mult = (_context->max_b_frames > 0) ? 2 : 0; + if (_context->max_b_frames > 1) + mult += 1; + encoderDelay = frameIncrement * mult; + ADM_info("Encoder delay set to %d frames = %" PRIu64" us.\n", mult, encoderDelay); + + // Print nvenc options + { + AVDictionaryEntry *t = NULL; + char buf1024 = ""; + while ((t = av_dict_get(_options, "", t, AV_DICT_IGNORE_SUFFIX))) { + if (strlen(buf) > 0) strncat(buf, ", ", sizeof(buf) - strlen(buf) - 1); + strncat(buf, t->key, sizeof(buf) - strlen(buf) - 1); + strncat(buf, "=", sizeof(buf) - strlen(buf) - 1); + strncat(buf, t->value, sizeof(buf) - strlen(buf) - 1); + } + ADM_info("ffNvEnc nvenc options: %s\n", buf); + } + + // Print ffmpeg options + { + char buf1024 = ""; + snprintf(buf, sizeof(buf), "bit_rate=%d rc_max_rate=%d gop_size=%d refs=%d max_b_frames=%d rc_buffer_size=%d", + _context->bit_rate, _context->rc_max_rate, _context->gop_size, + _context->refs, _context->max_b_frames, _context->rc_buffer_size); + ADM_info("ffNvEnc FFmpeg options: %s\n", buf); + } + + // Print timing info + ADM_info("ffNvEnc time_base=%d/%d framerate=%d/%d frameIncrement=%" PRIu64 " source->getInfo()->frameIncrement=%" PRIu64 "\n", + _context->time_base.num, _context->time_base.den, + _context->framerate.num, _context->framerate.den, + frameIncrement, source->getInfo()->frameIncrement); + return true; } @@ -233,17 +300,6 @@ } /** - \fn getEncoderDelay -*/ -uint64_t ADM_ffNvEncEncoder::getEncoderDelay(void) -{ - uint64_t delay=0; - if(NvEncSettings.bframes) - delay = frameIncrement * ((NvEncSettings.b_ref_mode == NV_FF_BFRAME_REF_DISABLED)? 2 : 3); // excessive? - return delay; -} - -/** \fn ~ADM_ffNvEncEncoder */ ADM_ffNvEncEncoder::~ADM_ffNvEncEncoder() @@ -366,6 +422,9 @@ {NV_FF_BFRAME_REF_DISABLED,QT_TRANSLATE_NOOP("ffnvenc","Disabled"),NULL}, {NV_FF_BFRAME_REF_EACH,QT_TRANSLATE_NOOP("ffnvenc","Each"),NULL}, {NV_FF_BFRAME_REF_MIDDLE,QT_TRANSLATE_NOOP("ffnvenc","Middle"),NULL} +#ifdef AV1_ENCODER + ,{NV_FF_BFRAME_REF_HIERARCHICAL,QT_TRANSLATE_NOOP("ffnvenc","Hierarchical"),NULL} +#endif }; ffnvenc_encoder *conf=&NvEncSettings;
View file
avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.h -> avidemux2-2.8.2.git20261002.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.h
Changed
@@ -68,7 +68,8 @@ { NV_FF_BFRAME_REF_DISABLED=0, NV_FF_BFRAME_REF_EACH=1, - NV_FF_BFRAME_REF_MIDDLE=2 + NV_FF_BFRAME_REF_MIDDLE=2, + NV_FF_BFRAME_REF_HIERARCHICAL=3 }; #ifdef H265_ENCODER @@ -149,6 +150,5 @@ virtual bool setup(void); virtual bool encode (ADMBitstream * out); virtual const char *getFourcc(void); -virtual uint64_t getEncoderDelay(void); };
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.