Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
7e244c68
Commit
7e244c68
authored
Nov 28, 2013
by
Vittorio Giovara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avframe: add codec-independent stereoscopic metadata
parent
d64341e4
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
200 additions
and
1 deletion
+200
-1
Changelog
Changelog
+1
-0
APIchanges
doc/APIchanges
+4
-0
Makefile
libavutil/Makefile
+2
-0
frame.h
libavutil/frame.h
+5
-0
stereo3d.c
libavutil/stereo3d.c
+40
-0
stereo3d.h
libavutil/stereo3d.h
+147
-0
version.h
libavutil/version.h
+1
-1
No files found.
Changelog
View file @
7e244c68
...
...
@@ -50,6 +50,7 @@ version 10:
- VP9 decoder
- support for decoding through VDPAU in avconv (the -hwaccel option)
- remove mp3_header_(de)compress bitstream filters
- stereoscopic 3d metadata handling
version 9:
...
...
doc/APIchanges
View file @
7e244c68
...
...
@@ -13,6 +13,10 @@ libavutil: 2012-10-22
API changes, most recent first:
2013-11-xx - xxxxxxx- - lavu 52.20.0 - frame.h
Add AV_FRAME_DATA_STEREO3D value to the AVFrameSideDataType enum and
stereo3d.h API, that identify codec-independent stereo3d information.
2013-11-xx - xxxxxxx- - lavu 52.19.0 - frame.h
Add AV_FRAME_DATA_A53_CC value to the AVFrameSideDataType enum, which
identifies ATSC A53 Part 4 Closed Captions data.
...
...
libavutil/Makefile
View file @
7e244c68
...
...
@@ -41,6 +41,7 @@ HEADERS = adler32.h \
rational.h
\
samplefmt.h
\
sha.h
\
stereo3d.h
\
time.h
\
version.h
\
xtea.h
\
...
...
@@ -93,6 +94,7 @@ OBJS = adler32.o \
rc4.o
\
samplefmt.o
\
sha.o
\
stereo3d.o
\
time.o
\
tree.o
\
utils.o
\
...
...
libavutil/frame.h
View file @
7e244c68
...
...
@@ -41,6 +41,11 @@ enum AVFrameSideDataType {
* The number of bytes of CC data is AVFrameSideData.size.
*/
AV_FRAME_DATA_A53_CC
,
/**
* Stereoscopic 3d metadata.
* The data is the AVStereo3D struct defined in libavutil/stereo3d.h.
*/
AV_FRAME_DATA_STEREO3D
,
};
typedef
struct
AVFrameSideData
{
...
...
libavutil/stereo3d.c
0 → 100644
View file @
7e244c68
/*
* Copyright (c) 2013 Vittorio Giovara <vittorio.giovara@gmail.com>
*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdint.h>
#include "mem.h"
#include "stereo3d.h"
AVStereo3D
*
av_stereo3d_alloc
(
void
)
{
return
av_mallocz
(
sizeof
(
AVStereo3D
));
}
AVStereo3D
*
av_stereo3d_create_side_data
(
AVFrame
*
frame
)
{
AVFrameSideData
*
side_data
=
av_frame_new_side_data
(
frame
,
AV_FRAME_DATA_STEREO3D
,
sizeof
(
AVStereo3D
));
if
(
!
side_data
)
return
NULL
;
return
(
AVStereo3D
*
)
side_data
->
data
;
}
libavutil/stereo3d.h
0 → 100644
View file @
7e244c68
/*
* Copyright (c) 2013 Vittorio Giovara <vittorio.giovara@gmail.com>
*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdint.h>
#include "frame.h"
/**
* List of possible 3D Types
*/
enum
AVStereo3DType
{
/**
* Video is not stereoscopic (and metadata has to be there).
*/
AV_STEREO3D_2D
,
/**
* Views are next to each other.
*
* LLLLRRRR
* LLLLRRRR
* LLLLRRRR
* ...
*/
AV_STEREO3D_SIDEBYSIDE
,
/**
* Views are on top of each other.
*
* LLLLLLLL
* LLLLLLLL
* RRRRRRRR
* RRRRRRRR
*/
AV_STEREO3D_TOPBOTTOM
,
/**
* Views are alternated temporally.
*
* frame0 frame1 frame2 ...
* LLLLLLLL RRRRRRRR LLLLLLLL
* LLLLLLLL RRRRRRRR LLLLLLLL
* LLLLLLLL RRRRRRRR LLLLLLLL
* ... ... ...
*/
AV_STEREO3D_FRAMESEQUENCE
,
/**
* Views are packed in a checkerboard-like structure per pixel.
*
* LRLRLRLR
* RLRLRLRL
* LRLRLRLR
* ...
*/
AV_STEREO3D_CHECKERBOARD
,
/**
* 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_SIDEBYSIDE_QUINCUNX
,
/**
* Views are packed per line, as if interlaced.
*
* LLLLLLLL
* RRRRRRRR
* LLLLLLLL
* ...
*/
AV_STEREO3D_LINES
,
/**
* Views are packed per column.
*
* LRLRLRLR
* LRLRLRLR
* LRLRLRLR
* ...
*/
AV_STEREO3D_COLUMNS
,
};
/**
* Inverted views, Right/Bottom represents the left view.
*/
#define AV_STEREO3D_FLAG_INVERT (1 << 0)
/**
* Stereo 3D type: this structure describes how two videos are packed
* within a single video surface, with additional information as needed.
*
* @note The struct must be allocated with av_stereo3d_alloc() and
* its size is not a part of the public ABI.
*/
typedef
struct
AVStereo3D
{
/**
* How views are packed within the video.
*/
enum
AVStereo3DType
type
;
/**
* Additional information about the frame packing.
*/
int
flags
;
}
AVStereo3D
;
/**
* Allocate an AVStereo3D structure and set its fields to default values.
* The resulting struct can be freed using av_freep().
*
* @return An AVStereo3D filled with default values or NULL on failure.
*/
AVStereo3D
*
av_stereo3d_alloc
(
void
);
/**
* Allocate a complete AVFrameSideData and add it to the frame.
*
* @param The frame on which the side data is added to.
*
* @return The AVStereo3D structure to be filled by caller.
*/
AVStereo3D
*
av_stereo3d_create_side_data
(
AVFrame
*
frame
);
libavutil/version.h
View file @
7e244c68
...
...
@@ -37,7 +37,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 52
#define LIBAVUTIL_VERSION_MINOR
19
#define LIBAVUTIL_VERSION_MINOR
20
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment