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/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior
@ 2024-05-06 15:27 James Almer
  2024-05-06 15:27 ` [FFmpeg-devel] [PATCH 2/3] avutil/opt: don't set a channel layout if the option is flagged as read only James Almer
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: James Almer @ 2024-05-06 15:27 UTC (permalink / raw)
  To: ffmpeg-devel

Based on the one for av_opt_set_dict_val().

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavutil/opt.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavutil/opt.h b/libavutil/opt.h
index 2d76ec6105..1b30a32317 100644
--- a/libavutil/opt.h
+++ b/libavutil/opt.h
@@ -797,6 +797,10 @@ int av_opt_set_image_size(void *obj, const char *name, int w, int h, int search_
 int av_opt_set_pixel_fmt (void *obj, const char *name, enum AVPixelFormat fmt, int search_flags);
 int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, int search_flags);
 int av_opt_set_video_rate(void *obj, const char *name, AVRational val, int search_flags);
+/**
+ * @note Any old chlayout present is discarded and replaced with a copy of the new one. The
+ * caller still owns layout is and responsible for uninitializing it.
+ */
 int av_opt_set_chlayout(void *obj, const char *name, const AVChannelLayout *layout, int search_flags);
 /**
  * @note Any old dictionary present is discarded and replaced with a copy of the new one. The
-- 
2.45.0

_______________________________________________
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] 5+ messages in thread

* [FFmpeg-devel] [PATCH 2/3] avutil/opt: don't set a channel layout if the option is flagged as read only
  2024-05-06 15:27 [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior James Almer
@ 2024-05-06 15:27 ` James Almer
  2024-05-06 15:27 ` [FFmpeg-devel] [PATCH 3/3] avutil/opt: propagate av_dict_copy() errors in av_opt_{get, set}_dict_val() James Almer
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: James Almer @ 2024-05-06 15:27 UTC (permalink / raw)
  To: ffmpeg-devel

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavutil/opt.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavutil/opt.c b/libavutil/opt.c
index a892e056cb..60b0c2a946 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -949,6 +949,8 @@ int av_opt_set_chlayout(void *obj, const char *name,
 
     if (!o || !target_obj)
         return AVERROR_OPTION_NOT_FOUND;
+    if (o->flags & AV_OPT_FLAG_READONLY)
+        return AVERROR(EINVAL);
 
     dst = (AVChannelLayout*)((uint8_t*)target_obj + o->offset);
 
-- 
2.45.0

_______________________________________________
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] 5+ messages in thread

* [FFmpeg-devel] [PATCH 3/3] avutil/opt: propagate av_dict_copy() errors in av_opt_{get, set}_dict_val()
  2024-05-06 15:27 [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior James Almer
  2024-05-06 15:27 ` [FFmpeg-devel] [PATCH 2/3] avutil/opt: don't set a channel layout if the option is flagged as read only James Almer
@ 2024-05-06 15:27 ` James Almer
  2024-05-06 15:40 ` [FFmpeg-devel] [PATCH 4/4] avutil/opt: free the temporary layout in av_opt_is_set_to_default() James Almer
  2024-05-06 15:43 ` [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior Andreas Rheinhardt
  3 siblings, 0 replies; 5+ messages in thread
From: James Almer @ 2024-05-06 15:27 UTC (permalink / raw)
  To: ffmpeg-devel

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavutil/opt.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/libavutil/opt.c b/libavutil/opt.c
index 60b0c2a946..23bc8c887c 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -934,9 +934,8 @@ int av_opt_set_dict_val(void *obj, const char *name, const AVDictionary *val,
 
     dst = (AVDictionary **)(((uint8_t *)target_obj) + o->offset);
     av_dict_free(dst);
-    av_dict_copy(dst, val, 0);
 
-    return 0;
+    return av_dict_copy(dst, val, 0);
 }
 
 int av_opt_set_chlayout(void *obj, const char *name,
@@ -1348,9 +1347,8 @@ int av_opt_get_dict_val(void *obj, const char *name, int search_flags, AVDiction
         return AVERROR(EINVAL);
 
     src = *(AVDictionary **)(((uint8_t *)target_obj) + o->offset);
-    av_dict_copy(out_val, src, 0);
 
-    return 0;
+    return av_dict_copy(out_val, src, 0);;
 }
 
 int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name)
-- 
2.45.0

_______________________________________________
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] 5+ messages in thread

* [FFmpeg-devel] [PATCH 4/4] avutil/opt: free the temporary layout in av_opt_is_set_to_default()
  2024-05-06 15:27 [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior James Almer
  2024-05-06 15:27 ` [FFmpeg-devel] [PATCH 2/3] avutil/opt: don't set a channel layout if the option is flagged as read only James Almer
  2024-05-06 15:27 ` [FFmpeg-devel] [PATCH 3/3] avutil/opt: propagate av_dict_copy() errors in av_opt_{get, set}_dict_val() James Almer
@ 2024-05-06 15:40 ` James Almer
  2024-05-06 15:43 ` [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior Andreas Rheinhardt
  3 siblings, 0 replies; 5+ messages in thread
From: James Almer @ 2024-05-06 15:40 UTC (permalink / raw)
  To: ffmpeg-devel

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavutil/opt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavutil/opt.c b/libavutil/opt.c
index 23bc8c887c..2c5f422bd6 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -2309,7 +2309,9 @@ int av_opt_is_set_to_default(void *obj, const AVOption *o)
             if ((ret = av_channel_layout_from_string(&ch_layout, o->default_val.str)) < 0)
                 return ret;
         }
-        return !av_channel_layout_compare((AVChannelLayout *)dst, &ch_layout);
+        ret = !av_channel_layout_compare((AVChannelLayout *)dst, &ch_layout);
+        av_channel_layout_uninit(&ch_layout);
+        return ret;
     }
     case AV_OPT_TYPE_STRING:
         str = *(char **)dst;
-- 
2.45.0

_______________________________________________
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] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior
  2024-05-06 15:27 [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior James Almer
                   ` (2 preceding siblings ...)
  2024-05-06 15:40 ` [FFmpeg-devel] [PATCH 4/4] avutil/opt: free the temporary layout in av_opt_is_set_to_default() James Almer
@ 2024-05-06 15:43 ` Andreas Rheinhardt
  3 siblings, 0 replies; 5+ messages in thread
From: Andreas Rheinhardt @ 2024-05-06 15:43 UTC (permalink / raw)
  To: ffmpeg-devel

James Almer:
> Based on the one for av_opt_set_dict_val().
> 
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
>  libavutil/opt.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/libavutil/opt.h b/libavutil/opt.h
> index 2d76ec6105..1b30a32317 100644
> --- a/libavutil/opt.h
> +++ b/libavutil/opt.h
> @@ -797,6 +797,10 @@ int av_opt_set_image_size(void *obj, const char *name, int w, int h, int search_
>  int av_opt_set_pixel_fmt (void *obj, const char *name, enum AVPixelFormat fmt, int search_flags);
>  int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, int search_flags);
>  int av_opt_set_video_rate(void *obj, const char *name, AVRational val, int search_flags);
> +/**
> + * @note Any old chlayout present is discarded and replaced with a copy of the new one. The
> + * caller still owns layout is and responsible for uninitializing it.

FFSWAP(is, and)

(Apart from this: The behaviour is clear from the fact that
av_opt_set_chlayout() accepts a pointer to const.)

> + */
>  int av_opt_set_chlayout(void *obj, const char *name, const AVChannelLayout *layout, int search_flags);
>  /**
>   * @note Any old dictionary present is discarded and replaced with a copy of the new one. The

_______________________________________________
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] 5+ messages in thread

end of thread, other threads:[~2024-05-06 15:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-06 15:27 [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior James Almer
2024-05-06 15:27 ` [FFmpeg-devel] [PATCH 2/3] avutil/opt: don't set a channel layout if the option is flagged as read only James Almer
2024-05-06 15:27 ` [FFmpeg-devel] [PATCH 3/3] avutil/opt: propagate av_dict_copy() errors in av_opt_{get, set}_dict_val() James Almer
2024-05-06 15:40 ` [FFmpeg-devel] [PATCH 4/4] avutil/opt: free the temporary layout in av_opt_is_set_to_default() James Almer
2024-05-06 15:43 ` [FFmpeg-devel] [PATCH 1/3] avutil/opt: add a note about the av_opt_set_chlayout() behavior Andreas Rheinhardt

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