* [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