diff mbox series

[FFmpeg-devel,01/10,v4] avutil/stereo3d: add a Monoscopic view enum value

Message ID 20240622231520.7410-1-jamrial@gmail.com
State New
Headers show
Series [FFmpeg-devel,01/10,v4] avutil/stereo3d: add a Monoscopic view enum value | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

James Almer June 22, 2024, 11:15 p.m. UTC
We need a way to signal the frame has a single view that doesn't map to any
particular eye, and it should be the default one.

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavutil/stereo3d.c | 1 +
 libavutil/stereo3d.h | 5 +++++
 2 files changed, 6 insertions(+)

Comments

James Almer June 24, 2024, 12:58 p.m. UTC | #1
On 6/22/2024 8:15 PM, James Almer wrote:
> We need a way to signal the frame has a single view that doesn't map to any
> particular eye, and it should be the default one.
> 
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
>   libavutil/stereo3d.c | 1 +
>   libavutil/stereo3d.h | 5 +++++
>   2 files changed, 6 insertions(+)
> 
> diff --git a/libavutil/stereo3d.c b/libavutil/stereo3d.c
> index 19e81e4124..37cf093099 100644
> --- a/libavutil/stereo3d.c
> +++ b/libavutil/stereo3d.c
> @@ -71,6 +71,7 @@ static const char * const stereo3d_view_names[] = {
>       [AV_STEREO3D_VIEW_PACKED] = "packed",
>       [AV_STEREO3D_VIEW_LEFT]   = "left",
>       [AV_STEREO3D_VIEW_RIGHT]  = "right",
> +    [AV_STEREO3D_VIEW_MONO]   = "monoscopic",
>   };
>   
>   static const char * const stereo3d_primary_eye_names[] = {
> diff --git a/libavutil/stereo3d.h b/libavutil/stereo3d.h
> index 00a5c3900e..9a004d88a1 100644
> --- a/libavutil/stereo3d.h
> +++ b/libavutil/stereo3d.h
> @@ -156,6 +156,11 @@ enum AVStereo3DView {
>        * Frame contains only the right view.
>        */
>       AV_STEREO3D_VIEW_RIGHT,
> +
> +    /**
> +     * Frame is monoscopic.
> +     */
> +    AV_STEREO3D_VIEW_MONO,
>   };
>   
>   /**

Looking more into this, i don't know if this is a good idea, or even 
backwards compatible. AVStereo3DView is right now only ever looked at if 
type is not 2D, so adding a view that only applies to 2D seems 
pointless. And if we make it the default, users (wrongly) making the 
assumption packed view is the default will find themselves with a 3D 
type signaling a monoscopic view.

For now I'll apply patch 2 adding unspec type plus the patches that 
don't deal with the view added here, unless there are objections.
diff mbox series

Patch

diff --git a/libavutil/stereo3d.c b/libavutil/stereo3d.c
index 19e81e4124..37cf093099 100644
--- a/libavutil/stereo3d.c
+++ b/libavutil/stereo3d.c
@@ -71,6 +71,7 @@  static const char * const stereo3d_view_names[] = {
     [AV_STEREO3D_VIEW_PACKED] = "packed",
     [AV_STEREO3D_VIEW_LEFT]   = "left",
     [AV_STEREO3D_VIEW_RIGHT]  = "right",
+    [AV_STEREO3D_VIEW_MONO]   = "monoscopic",
 };
 
 static const char * const stereo3d_primary_eye_names[] = {
diff --git a/libavutil/stereo3d.h b/libavutil/stereo3d.h
index 00a5c3900e..9a004d88a1 100644
--- a/libavutil/stereo3d.h
+++ b/libavutil/stereo3d.h
@@ -156,6 +156,11 @@  enum AVStereo3DView {
      * Frame contains only the right view.
      */
     AV_STEREO3D_VIEW_RIGHT,
+
+    /**
+     * Frame is monoscopic.
+     */
+    AV_STEREO3D_VIEW_MONO,
 };
 
 /**