* [FFmpeg-devel] [PATCH 1/2] libavcodec/videotoolboxenc: use the correct types for options @ 2021-12-18 21:53 rcombs 2021-12-18 21:53 ` [FFmpeg-devel] [PATCH 2/2] lavc/videotoolboxenc: explicitly set realtime=false rcombs 2021-12-19 16:37 ` [FFmpeg-devel] [PATCH 1/2] libavcodec/videotoolboxenc: use the correct types for options Aman Karmani 0 siblings, 2 replies; 4+ messages in thread From: rcombs @ 2021-12-18 21:53 UTC (permalink / raw) To: ffmpeg-devel These are all set by AV_OPT_TYPE_INT or AV_OPT_TYPE_BOOL; the only reason they worked before was that this is only used on little-endian. --- libavcodec/videotoolboxenc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 8237bd0ec5..5f1e3a9b9c 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -227,14 +227,14 @@ typedef struct VTEncContext { int64_t dts_delta; int64_t profile; - int64_t level; - int64_t entropy; - int64_t realtime; - int64_t frames_before; - int64_t frames_after; - - int64_t allow_sw; - int64_t require_sw; + int level; + int entropy; + int realtime; + int frames_before; + int frames_after; + + int allow_sw; + int require_sw; double alpha_quality; bool flushing; -- 2.33.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 4+ messages in thread
* [FFmpeg-devel] [PATCH 2/2] lavc/videotoolboxenc: explicitly set realtime=false 2021-12-18 21:53 [FFmpeg-devel] [PATCH 1/2] libavcodec/videotoolboxenc: use the correct types for options rcombs @ 2021-12-18 21:53 ` rcombs 2021-12-19 16:37 ` Aman Karmani 2021-12-19 16:37 ` [FFmpeg-devel] [PATCH 1/2] libavcodec/videotoolboxenc: use the correct types for options Aman Karmani 1 sibling, 1 reply; 4+ messages in thread From: rcombs @ 2021-12-18 21:53 UTC (permalink / raw) To: ffmpeg-devel On some encoders, this defaults to true, which can result in encode speed being _limited_ to only slightly above realtime (as a power-saving measure), so we need a way to disable it. --- libavcodec/videotoolboxenc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 5f1e3a9b9c..3599d730d8 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -1391,10 +1391,10 @@ static int vtenc_create_encoder(AVCodecContext *avctx, } } - if (vtctx->realtime) { + if (vtctx->realtime >= 0) { status = VTSessionSetProperty(vtctx->session, compat_keys.kVTCompressionPropertyKey_RealTime, - kCFBooleanTrue); + vtctx->realtime ? kCFBooleanTrue : kCFBooleanFalse); if (status) { av_log(avctx, AV_LOG_ERROR, "Error setting realtime property: %d\n", status); @@ -2676,7 +2676,7 @@ static const enum AVPixelFormat prores_pix_fmts[] = { { "require_sw", "Require software encoding", OFFSET(require_sw), AV_OPT_TYPE_BOOL, \ { .i64 = 0 }, 0, 1, VE }, \ { "realtime", "Hint that encoding should happen in real-time if not faster (e.g. capturing from camera).", \ - OFFSET(realtime), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, \ + OFFSET(realtime), AV_OPT_TYPE_BOOL, { .i64 = 0 }, -1, 1, VE }, \ { "frames_before", "Other frames will come before the frames in this session. This helps smooth concatenation issues.", \ OFFSET(frames_before), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, \ { "frames_after", "Other frames will come after the frames in this session. This helps smooth concatenation issues.", \ -- 2.33.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/2] lavc/videotoolboxenc: explicitly set realtime=false 2021-12-18 21:53 ` [FFmpeg-devel] [PATCH 2/2] lavc/videotoolboxenc: explicitly set realtime=false rcombs @ 2021-12-19 16:37 ` Aman Karmani 0 siblings, 0 replies; 4+ messages in thread From: Aman Karmani @ 2021-12-19 16:37 UTC (permalink / raw) To: FFmpeg development discussions and patches On Sat, Dec 18, 2021 at 1:53 PM rcombs <rcombs@rcombs.me> wrote: > On some encoders, this defaults to true, which can result in encode speed > being _limited_ to only slightly above realtime (as a power-saving > measure), > so we need a way to disable it. > --- > libavcodec/videotoolboxenc.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c > index 5f1e3a9b9c..3599d730d8 100644 > --- a/libavcodec/videotoolboxenc.c > +++ b/libavcodec/videotoolboxenc.c > @@ -1391,10 +1391,10 @@ static int vtenc_create_encoder(AVCodecContext > *avctx, > } > } > > - if (vtctx->realtime) { > + if (vtctx->realtime >= 0) { > status = VTSessionSetProperty(vtctx->session, > > compat_keys.kVTCompressionPropertyKey_RealTime, > - kCFBooleanTrue); > + vtctx->realtime ? kCFBooleanTrue : > kCFBooleanFalse); LGTM > > if (status) { > av_log(avctx, AV_LOG_ERROR, "Error setting realtime property: > %d\n", status); > @@ -2676,7 +2676,7 @@ static const enum AVPixelFormat prores_pix_fmts[] = { > { "require_sw", "Require software encoding", OFFSET(require_sw), > AV_OPT_TYPE_BOOL, \ > { .i64 = 0 }, 0, 1, VE }, \ > { "realtime", "Hint that encoding should happen in real-time if not > faster (e.g. capturing from camera).", \ > - OFFSET(realtime), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, \ > + OFFSET(realtime), AV_OPT_TYPE_BOOL, { .i64 = 0 }, -1, 1, VE }, \ > { "frames_before", "Other frames will come before the frames in this > session. This helps smooth concatenation issues.", \ > OFFSET(frames_before), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE > }, \ > { "frames_after", "Other frames will come after the frames in this > session. This helps smooth concatenation issues.", \ > -- > 2.33.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/2] libavcodec/videotoolboxenc: use the correct types for options 2021-12-18 21:53 [FFmpeg-devel] [PATCH 1/2] libavcodec/videotoolboxenc: use the correct types for options rcombs 2021-12-18 21:53 ` [FFmpeg-devel] [PATCH 2/2] lavc/videotoolboxenc: explicitly set realtime=false rcombs @ 2021-12-19 16:37 ` Aman Karmani 1 sibling, 0 replies; 4+ messages in thread From: Aman Karmani @ 2021-12-19 16:37 UTC (permalink / raw) To: FFmpeg development discussions and patches On Sat, Dec 18, 2021 at 1:53 PM rcombs <rcombs@rcombs.me> wrote: > These are all set by AV_OPT_TYPE_INT or AV_OPT_TYPE_BOOL; the only reason > they worked before was that this is only used on little-endian. > --- > libavcodec/videotoolboxenc.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c > index 8237bd0ec5..5f1e3a9b9c 100644 > --- a/libavcodec/videotoolboxenc.c > +++ b/libavcodec/videotoolboxenc.c > @@ -227,14 +227,14 @@ typedef struct VTEncContext { > int64_t dts_delta; > > int64_t profile; > - int64_t level; > - int64_t entropy; > - int64_t realtime; > - int64_t frames_before; > - int64_t frames_after; > - > - int64_t allow_sw; > - int64_t require_sw; > + int level; > + int entropy; > + int realtime; > + int frames_before; > + int frames_after; > + > + int allow_sw; > + int require_sw; LGTM > double alpha_quality; > > bool flushing; > -- > 2.33.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-12-19 16:37 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-12-18 21:53 [FFmpeg-devel] [PATCH 1/2] libavcodec/videotoolboxenc: use the correct types for options rcombs 2021-12-18 21:53 ` [FFmpeg-devel] [PATCH 2/2] lavc/videotoolboxenc: explicitly set realtime=false rcombs 2021-12-19 16:37 ` Aman Karmani 2021-12-19 16:37 ` [FFmpeg-devel] [PATCH 1/2] libavcodec/videotoolboxenc: use the correct types for options Aman Karmani
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git