FFmpeg  4.0
Data Structures | Macros | Enumerations | Functions
Stereo3D types and functions

A stereoscopic video file consists in multiple views embedded in a single frame, usually describing two views of a scene. More...

Data Structures

struct  AVStereo3D
 Stereo 3D type: this structure describes how two videos are packed within a single video surface, with additional information as needed. More...
 

Macros

#define AV_STEREO3D_FLAG_INVERT   (1 << 0)
 Inverted views, Right/Bottom represents the left view. More...
 

Enumerations

enum  AVStereo3DType {
  AV_STEREO3D_2D, AV_STEREO3D_SIDEBYSIDE, AV_STEREO3D_TOPBOTTOM, AV_STEREO3D_FRAMESEQUENCE,
  AV_STEREO3D_CHECKERBOARD, AV_STEREO3D_SIDEBYSIDE_QUINCUNX, AV_STEREO3D_LINES, AV_STEREO3D_COLUMNS
}
 List of possible 3D Types. More...
 
enum  AVStereo3DView { AV_STEREO3D_VIEW_PACKED, AV_STEREO3D_VIEW_LEFT, AV_STEREO3D_VIEW_RIGHT }
 List of possible view types. More...
 

Functions

AVStereo3Dav_stereo3d_alloc (void)
 Allocate an AVStereo3D structure and set its fields to default values. More...
 
AVStereo3Dav_stereo3d_create_side_data (AVFrame *frame)
 Allocate a complete AVFrameSideData and add it to the frame. More...
 
const char * av_stereo3d_type_name (unsigned int type)
 Provide a human-readable name of a given stereo3d type. More...
 
int av_stereo3d_from_name (const char *name)
 Get the AVStereo3DType form a human-readable name. More...
 

Detailed Description

A stereoscopic video file consists in multiple views embedded in a single frame, usually describing two views of a scene.

This file describes all possible codec-independent view arrangements.

Macro Definition Documentation

◆ AV_STEREO3D_FLAG_INVERT

#define AV_STEREO3D_FLAG_INVERT   (1 << 0)

Enumeration Type Documentation

◆ AVStereo3DType

List of possible 3D Types.

Enumerator
AV_STEREO3D_2D 

Video is not stereoscopic (and metadata has to be there).

AV_STEREO3D_SIDEBYSIDE 

Views are next to each other.

LLLLRRRR
LLLLRRRR
LLLLRRRR
...
AV_STEREO3D_TOPBOTTOM 

Views are on top of each other.

LLLLLLLL
LLLLLLLL
RRRRRRRR
RRRRRRRR
AV_STEREO3D_FRAMESEQUENCE 

Views are alternated temporally.

frame0 frame1 frame2 ...
LLLLLLLL RRRRRRRR LLLLLLLL
LLLLLLLL RRRRRRRR LLLLLLLL
LLLLLLLL RRRRRRRR LLLLLLLL
... ... ...
AV_STEREO3D_CHECKERBOARD 

Views are packed in a checkerboard-like structure per pixel.

LRLRLRLR
RLRLRLRL
LRLRLRLR
...
AV_STEREO3D_SIDEBYSIDE_QUINCUNX 

Views are next to each other, but when upscaling apply a checkerboard pattern.

LLLLRRRR L L L L R R R R
LLLLRRRR => L L L L R R R R
LLLLRRRR L L L L R R R R
LLLLRRRR L L L L R R R R
AV_STEREO3D_LINES 

Views are packed per line, as if interlaced.

LLLLLLLL
RRRRRRRR
LLLLLLLL
...
AV_STEREO3D_COLUMNS 

Views are packed per column.

LRLRLRLR
LRLRLRLR
LRLRLRLR
...

Definition at line 51 of file stereo3d.h.

◆ AVStereo3DView

List of possible view types.

Enumerator
AV_STEREO3D_VIEW_PACKED 

Frame contains two packed views.

AV_STEREO3D_VIEW_LEFT 

Frame contains only the left view.

AV_STEREO3D_VIEW_RIGHT 

Frame contains only the right view.

Definition at line 147 of file stereo3d.h.

Function Documentation

◆ av_stereo3d_alloc()

AVStereo3D* av_stereo3d_alloc ( void  )

Allocate an AVStereo3D structure and set its fields to default values.

The resulting struct can be freed using av_freep().

Returns
An AVStereo3D filled with default values or NULL on failure.

Definition at line 28 of file stereo3d.c.

Referenced by ff_mkv_stereo3d_conv(), mjpeg_decode_app(), mov_parse_uuid_spherical(), and mov_read_st3d().

◆ av_stereo3d_create_side_data()

AVStereo3D* av_stereo3d_create_side_data ( AVFrame frame)

Allocate a complete AVFrameSideData and add it to the frame.

Parameters
frameThe frame which side data is added to.
Returns
The AVStereo3D structure to be filled by caller.

Definition at line 33 of file stereo3d.c.

Referenced by decode_frame_common(), ff_mjpeg_decode_frame(), h264_export_frame_props(), mpeg_field_start(), set_side_data(), and try_push_frame().

◆ av_stereo3d_type_name()

const char* av_stereo3d_type_name ( unsigned int  type)

Provide a human-readable name of a given stereo3d type.

Parameters
typeThe input stereo3d type value.
Returns
The name of the stereo3d value, or "unknown".

Definition at line 57 of file stereo3d.c.

Referenced by dump_stereo3d(), mov_write_st3d_tag(), and print_pkt_side_data().

◆ av_stereo3d_from_name()

int av_stereo3d_from_name ( const char *  name)

Get the AVStereo3DType form a human-readable name.

Parameters
nameThe input string.
Returns
The AVStereo3DType value, or -1 if not found.

Definition at line 65 of file stereo3d.c.