Projects
home:enzokiel
avidemux3
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 44
View file
avidemux3.changes
Changed
@@ -1,7 +1,7 @@ ------------------------------------------------------------------- -Sun Oct 04 09:39:22 UTC 2026 - enzokiel@kabelmail.de +Tue Oct 06 10:35:47 UTC 2026 - enzokiel@kabelmail.de -- Update to version 2.8.2.git20261002 +- Update to version 2.8.2.git20261005 - 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.git20261002 +Version: 2.8.2.git20261005 Release: 0 URL: https://github.com/mean00/avidemux2 ExclusiveArch: %ix86 x86_64
View file
avidemux2-2.8.2.git20261002.tar.xz/avidemux_core/ADM_coreVideoEncoder/include/ADM_coreVideoEncoderFFmpeg.h -> avidemux2-2.8.2.git20261005.tar.xz/avidemux_core/ADM_coreVideoEncoder/include/ADM_coreVideoEncoderFFmpeg.h
Changed
@@ -55,8 +55,10 @@ bool _globalHeader; int timeScalerNum,timeScalerDen; bool _hasSettings; + bool _firstOut; int64_t lastLavPts; int64_t lavPtsFromPacket; + int64_t lavDtsFromPacket; ADM_encoderState encoderState; bool loadStatFile(const char *file);
View file
avidemux2-2.8.2.git20261002.tar.xz/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoder.cpp -> avidemux2-2.8.2.git20261005.tar.xz/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoder.cpp
Changed
@@ -163,6 +163,7 @@ if(mapperi.internalTS==val) { *pts=mapperi.realTS; + *pts += encoderDelay; mapper.erase(mapper.begin()+i); // Now get DTS, it is min (lastDTS+inc, PTS-delay) ADM_assert(queueOfDts.size());
View file
avidemux2-2.8.2.git20261002.tar.xz/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp -> avidemux2-2.8.2.git20261005.tar.xz/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp
Changed
@@ -78,12 +78,14 @@ timeScalerDen=0; uint64_t inc=source->getInfo()->frameIncrement; - if(_hasSettings && LAVS(max_b_frames)) + if(false /* _hasSettings && LAVS(max_b_frames) */) // let encoder figure out the required reorder delay encoderDelay=inc*2; else encoderDelay=0; ADM_info("Lavcodec Using a video encoder delay of %d ms\n",(int)(encoderDelay/1000)); lastLavPts = AV_NOPTS_VALUE; + lavPtsFromPacket = lavDtsFromPacket = AV_NOPTS_VALUE; + _firstOut = true; encoderState = ADM_ENCODER_STATE_FEEDING; } /** @@ -273,7 +275,7 @@ uint64_t p=image->Pts; queueOfDts.push_back(p); aprintf("Incoming frame PTS=%" PRIu64", delay=%" PRIu64"\n",p,getEncoderDelay()); - p+=getEncoderDelay(); + // p+=getEncoderDelay(); // will be added during conversion from lav to us later _frame->pts= timingToLav(p); // if(_frame->pts!=AV_NOPTS_VALUE && lastLavPts!=AV_NOPTS_VALUE && _frame->pts==lastLavPts) { @@ -360,6 +362,7 @@ ADM_assert(out->bufferSize >= _pkt->size); memcpy(out->data, _pkt->data, _pkt->size); lavPtsFromPacket = _pkt->pts; + lavDtsFromPacket = _pkt->dts; out->flags = (_pkt->flags & AV_PKT_FLAG_KEY)? AVI_KEY_FRAME : AVI_P_FRAME; out->out_quantizer = (int)floor(_frame->quality / (float) FF_QP2LAMBDA); // fallback @@ -597,6 +600,19 @@ return false; out->dts = queueOfDts0; + if (_firstOut) + { + if (lavDtsFromPacket != AV_NOPTS_VALUE && lavPtsFromPacket != AV_NOPTS_VALUE && lavDtsFromPacket < 0) + { + int64_t lavReorderDelay = lavPtsFromPacket - lavDtsFromPacket; + encoderDelay = lavToTiming(lavReorderDelay); + ADM_info("Updating encoderDelay based on negative lavc DTS %" PRId64" to %" PRIu64" us.\n", lavDtsFromPacket, encoderDelay); + } else + { + ADM_info("Leaving encoderDelay unchanged at %" PRIu64"\n", encoderDelay); + } + _firstOut = false; + } // Update PTS/Dts if(!_context->max_b_frames)
View file
avidemux2-2.8.2.git20261002.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.cpp -> avidemux2-2.8.2.git20261005.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.cpp
Changed
@@ -27,8 +27,6 @@ #define aprintf printf #endif -#define NV_MX_LOOKAHEAD 31 - extern "C" { #include "libavutil/opt.h" @@ -142,6 +140,13 @@ _context->bit_rate=NvEncSettings.bitrate*1000; break; case NV_FF_RC_CONSTQP: +#ifdef AV1_ENCODER + if(NvEncSettings.quality == 0) + { + ADM_warning("Lossless is not supported with AV1, bumping qp up to 1.\n"); + NvEncSettings.quality = 1; + } +#endif _context->qmin = _context->qmax = NvEncSettings.quality; av_dict_set(&_options,"rc","constqp",0); snprintf(buf, OPTION_BUFFER_SIZE, "%d", NvEncSettings.quality); @@ -187,25 +192,16 @@ #endif case NV_FF_TUNE_LL: av_dict_set(&_options, "tune", "ll", 0); break; case NV_FF_TUNE_ULL: av_dict_set(&_options, "tune", "ull", 0); break; +#if !defined(AV1_ENCODER) case NV_FF_TUNE_LOSSLESS: av_dict_set(&_options, "tune", "lossless", 0); break; +#endif default: break; }; - if(NvEncSettings.lookahead) + if(NvEncSettings.lookahead > 0) { - int range = NvEncSettings.lookahead; - const int maxr = (_context->gop_size > NV_MX_LOOKAHEAD - _context->max_b_frames)? - NV_MX_LOOKAHEAD - _context->max_b_frames : _context->gop_size; - if(range > maxr) - { - ADM_warning("Specified lookahead value %d exceeds maximum %d, clamping down.\n",range,maxr); - range = maxr; - } - snprintf(buf, OPTION_BUFFER_SIZE, "%d", range); + snprintf(buf, OPTION_BUFFER_SIZE, "%d", NvEncSettings.lookahead); av_dict_set(&_options,"rc-lookahead",buf,0); - // set sufficient delay else lavc will disable lookahead - snprintf(buf, OPTION_BUFFER_SIZE, "%d", range+5); - av_dict_set(&_options,"delay",buf,0); } if(NvEncSettings.spatial_aq) @@ -390,8 +386,10 @@ {NV_FF_TUNE_UHQ, QT_TRANSLATE_NOOP("ffnvenc","Ultra High Quality"),NULL}, #endif {NV_FF_TUNE_LL, QT_TRANSLATE_NOOP("ffnvenc","Low Latency"),NULL}, - {NV_FF_TUNE_ULL, QT_TRANSLATE_NOOP("ffnvenc","Ultra Low Latency"),NULL}, - {NV_FF_TUNE_LOSSLESS, QT_TRANSLATE_NOOP("ffnvenc","Lossless"),NULL} + {NV_FF_TUNE_ULL, QT_TRANSLATE_NOOP("ffnvenc","Ultra Low Latency"),NULL} +#if !defined(AV1_ENCODER) + ,{NV_FF_TUNE_LOSSLESS, QT_TRANSLATE_NOOP("ffnvenc","Lossless"),NULL} +#endif }; diaMenuEntry meProfile={ @@ -453,7 +451,7 @@ diaElemUInteger maxBframes(PX(bframes),QT_TRANSLATE_NOOP("ffnvenc","Maximum Consecutive B-Frames:"),0,5); #endif - diaElemUInteger lookAhead(PX(lookahead),QT_TRANSLATE_NOOP("ffnvenc","Lookahead:"),0,NV_MX_LOOKAHEAD); + diaElemUInteger lookAhead(PX(lookahead),QT_TRANSLATE_NOOP("ffnvenc","Lookahead:"),0,64); diaElemUInteger aqStrength(PX(aq_strength),QT_TRANSLATE_NOOP("ffnvenc","AQ Strength:"),1,15); diaElemToggle spatAq(PX(spatial_aq),QT_TRANSLATE_NOOP("ffnvenc","Spatial AQ"));
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
.