* [FFmpeg-devel] [PATCH v2] lavu/stereo3d: change the horizontal FOV field to a rational
@ 2024-06-23 14:14 Lynne via ffmpeg-devel
2024-06-24 0:13 ` James Almer
0 siblings, 1 reply; 4+ messages in thread
From: Lynne via ffmpeg-devel @ 2024-06-23 14:14 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Lynne
This avoids hardcoding any implementation-specific limitiations as
part of the API, and allows for future expandability.
This also allows API users to more conveniently convert the
values into floats without hardcoding specific conversion constants.
The API was committed 2 days ago, so changing this field now
is within the realms of acceptable.
---
fftools/ffprobe.c | 2 +-
libavformat/dump.c | 5 +++--
libavformat/mov.c | 3 ++-
libavutil/stereo3d.c | 1 +
libavutil/stereo3d.h | 4 ++--
tests/ref/fate/matroska-spherical-mono | 2 +-
tests/ref/fate/matroska-spherical-mono-remux | 4 ++--
tests/ref/fate/matroska-stereo_mode | 8 ++++----
tests/ref/fate/matroska-vp8-alpha-remux | 2 +-
tests/ref/fate/mov-spherical-mono | 2 +-
10 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index d7ba980ff9..b69a75ff9a 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -2548,7 +2548,7 @@ static void print_pkt_side_data(WriterContext *w,
print_str("primary_eye", av_stereo3d_primary_eye_name(stereo->primary_eye));
print_int("baseline", stereo->baseline);
print_q("horizontal_disparity_adjustment", stereo->horizontal_disparity_adjustment, '/');
- print_int("horizontal_field_of_view", stereo->horizontal_field_of_view);
+ print_q("horizontal_field_of_view", stereo->horizontal_field_of_view, '/');
} else if (sd->type == AV_PKT_DATA_SPHERICAL) {
const AVSphericalMapping *spherical = (AVSphericalMapping *)sd->data;
print_str("projection", av_spherical_projection_name(spherical->projection));
diff --git a/libavformat/dump.c b/libavformat/dump.c
index 61a2c6a29f..b71b5356dc 100644
--- a/libavformat/dump.c
+++ b/libavformat/dump.c
@@ -267,8 +267,9 @@ static void dump_stereo3d(void *ctx, const AVPacketSideData *sd, int log_level)
if (stereo->horizontal_disparity_adjustment.num && stereo->horizontal_disparity_adjustment.den)
av_log(ctx, log_level, ", horizontal_disparity_adjustment: %d/%d",
stereo->horizontal_disparity_adjustment.num, stereo->horizontal_disparity_adjustment.den);
- if (stereo->horizontal_field_of_view)
- av_log(ctx, log_level, ", horizontal_field_of_view: %"PRIu32"", stereo->horizontal_field_of_view);
+ if (stereo->horizontal_field_of_view.num && stereo->horizontal_field_of_view.den)
+ av_log(ctx, log_level, ", horizontal_field_of_view: %d/%d", stereo->horizontal_field_of_view.num,
+ stereo->horizontal_field_of_view.den);
if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
av_log(ctx, log_level, " (inverted)");
diff --git a/libavformat/mov.c b/libavformat/mov.c
index f08fec3fb6..fe8a963c6e 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -6782,7 +6782,8 @@ static int mov_read_hfov(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return AVERROR(ENOMEM);
}
- sc->stereo3d->horizontal_field_of_view = avio_rb32(pb);
+ sc->stereo3d->horizontal_field_of_view.num = avio_rb32(pb);
+ sc->stereo3d->horizontal_field_of_view.den = 1000; // thousands of a degree
return 0;
}
diff --git a/libavutil/stereo3d.c b/libavutil/stereo3d.c
index 19e81e4124..ad6064e5d9 100644
--- a/libavutil/stereo3d.c
+++ b/libavutil/stereo3d.c
@@ -29,6 +29,7 @@
static void get_defaults(AVStereo3D *stereo)
{
stereo->horizontal_disparity_adjustment = (AVRational) { 0, 1 };
+ stereo->horizontal_field_of_view = (AVRational) { 0, 1 };
}
AVStereo3D *av_stereo3d_alloc(void)
diff --git a/libavutil/stereo3d.h b/libavutil/stereo3d.h
index 00a5c3900e..d8b191118c 100644
--- a/libavutil/stereo3d.h
+++ b/libavutil/stereo3d.h
@@ -224,9 +224,9 @@ typedef struct AVStereo3D {
AVRational horizontal_disparity_adjustment;
/**
- * Horizontal field of view in thousanths of a degree. Zero if unset.
+ * Horizontal field of view, in degrees. Zero if unset.
*/
- uint32_t horizontal_field_of_view;
+ AVRational horizontal_field_of_view;
} AVStereo3D;
/**
diff --git a/tests/ref/fate/matroska-spherical-mono b/tests/ref/fate/matroska-spherical-mono
index b108596350..8b011e332f 100644
--- a/tests/ref/fate/matroska-spherical-mono
+++ b/tests/ref/fate/matroska-spherical-mono
@@ -7,7 +7,7 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/0
[/SIDE_DATA]
[SIDE_DATA]
side_data_type=Spherical Mapping
diff --git a/tests/ref/fate/matroska-spherical-mono-remux b/tests/ref/fate/matroska-spherical-mono-remux
index eec41b77f3..31dbf6cdd8 100644
--- a/tests/ref/fate/matroska-spherical-mono-remux
+++ b/tests/ref/fate/matroska-spherical-mono-remux
@@ -31,7 +31,7 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/0
[/SIDE_DATA]
[SIDE_DATA]
side_data_type=Spherical Mapping
@@ -60,7 +60,7 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/0
[/SIDE_DATA]
[SIDE_DATA]
side_data_type=Spherical Mapping
diff --git a/tests/ref/fate/matroska-stereo_mode b/tests/ref/fate/matroska-stereo_mode
index 26c325b20e..656a712e89 100644
--- a/tests/ref/fate/matroska-stereo_mode
+++ b/tests/ref/fate/matroska-stereo_mode
@@ -136,7 +136,7 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/0
[/SIDE_DATA]
[/STREAM]
[STREAM]
@@ -156,7 +156,7 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/0
[/SIDE_DATA]
[/STREAM]
[STREAM]
@@ -174,7 +174,7 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/0
[/SIDE_DATA]
[/STREAM]
[STREAM]
@@ -193,7 +193,7 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/0
[/SIDE_DATA]
[/STREAM]
[STREAM]
diff --git a/tests/ref/fate/matroska-vp8-alpha-remux b/tests/ref/fate/matroska-vp8-alpha-remux
index 06bcc4b4ba..bfc25fea7a 100644
--- a/tests/ref/fate/matroska-vp8-alpha-remux
+++ b/tests/ref/fate/matroska-vp8-alpha-remux
@@ -39,6 +39,6 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/0
[/SIDE_DATA]
[/STREAM]
diff --git a/tests/ref/fate/mov-spherical-mono b/tests/ref/fate/mov-spherical-mono
index b108596350..065b109a41 100644
--- a/tests/ref/fate/mov-spherical-mono
+++ b/tests/ref/fate/mov-spherical-mono
@@ -7,7 +7,7 @@ view=packed
primary_eye=none
baseline=0
horizontal_disparity_adjustment=0/1
-horizontal_field_of_view=0
+horizontal_field_of_view=0/1
[/SIDE_DATA]
[SIDE_DATA]
side_data_type=Spherical Mapping
--
2.45.1.288.g0e0cd299f1
_______________________________________________
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 v2] lavu/stereo3d: change the horizontal FOV field to a rational
2024-06-23 14:14 [FFmpeg-devel] [PATCH v2] lavu/stereo3d: change the horizontal FOV field to a rational Lynne via ffmpeg-devel
@ 2024-06-24 0:13 ` James Almer
2024-06-24 15:51 ` Derek Buitenhuis
0 siblings, 1 reply; 4+ messages in thread
From: James Almer @ 2024-06-24 0:13 UTC (permalink / raw)
To: ffmpeg-devel
On 6/23/2024 11:14 AM, Lynne via ffmpeg-devel wrote:
> This avoids hardcoding any implementation-specific limitiations as
> part of the API, and allows for future expandability.
>
> This also allows API users to more conveniently convert the
> values into floats without hardcoding specific conversion constants.
>
> The API was committed 2 days ago, so changing this field now
> is within the realms of acceptable.
Five days, soon to be six.
[...]
> diff --git a/tests/ref/fate/matroska-spherical-mono b/tests/ref/fate/matroska-spherical-mono
> index b108596350..8b011e332f 100644
> --- a/tests/ref/fate/matroska-spherical-mono
> +++ b/tests/ref/fate/matroska-spherical-mono
> @@ -7,7 +7,7 @@ view=packed
> primary_eye=none
> baseline=0
> horizontal_disparity_adjustment=0/1
> -horizontal_field_of_view=0
> +horizontal_field_of_view=0/0
Re-run fate. This and many other tests are not correct.
If Derek is also ok with this then LGTM.
_______________________________________________
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 v2] lavu/stereo3d: change the horizontal FOV field to a rational
2024-06-24 0:13 ` James Almer
@ 2024-06-24 15:51 ` Derek Buitenhuis
2024-06-24 21:54 ` Lynne via ffmpeg-devel
0 siblings, 1 reply; 4+ messages in thread
From: Derek Buitenhuis @ 2024-06-24 15:51 UTC (permalink / raw)
To: ffmpeg-devel
On 6/24/2024 1:13 AM, James Almer wrote:
> If Derek is also ok with this then LGTM.
I do not object.
- Derek
_______________________________________________
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 v2] lavu/stereo3d: change the horizontal FOV field to a rational
2024-06-24 15:51 ` Derek Buitenhuis
@ 2024-06-24 21:54 ` Lynne via ffmpeg-devel
0 siblings, 0 replies; 4+ messages in thread
From: Lynne via ffmpeg-devel @ 2024-06-24 21:54 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Lynne
[-- Attachment #1.1.1.1: Type: text/plain, Size: 509 bytes --]
On 24/06/2024 17:51, Derek Buitenhuis wrote:
> On 6/24/2024 1:13 AM, James Almer wrote:
>> If Derek is also ok with this then LGTM.
>
> I do not object.
>
> - Derek
> _______________________________________________
> 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".
Thanks for the reviews.
Pushed with the requested changes.
[-- Attachment #1.1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 637 bytes --]
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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:[~2024-06-24 21:54 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-23 14:14 [FFmpeg-devel] [PATCH v2] lavu/stereo3d: change the horizontal FOV field to a rational Lynne via ffmpeg-devel
2024-06-24 0:13 ` James Almer
2024-06-24 15:51 ` Derek Buitenhuis
2024-06-24 21:54 ` Lynne via ffmpeg-devel
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