Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [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