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
c98f3169
Commit
c98f3169
authored
Feb 15, 2014
by
Tim Walker
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavu: add AV_FRAME_DATA_DOWNMIX_INFO side data type.
parent
9c0e4b33
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
164 additions
and
1 deletion
+164
-1
APIchanges
doc/APIchanges
+4
-0
Makefile
libavutil/Makefile
+2
-0
downmix_info.c
libavutil/downmix_info.c
+38
-0
downmix_info.h
libavutil/downmix_info.h
+114
-0
frame.h
libavutil/frame.h
+5
-0
version.h
libavutil/version.h
+1
-1
No files found.
doc/APIchanges
View file @
c98f3169
...
...
@@ -13,6 +13,10 @@ libavutil: 2013-12-xx
API changes, most recent first:
2014-02-xx - xxxxxxx - lavu 53.3.0 - frame.h
Add AV_FRAME_DATA_DOWNMIX_INFO value to the AVFrameSideDataType enum and
downmix_info.h API, which identify downmix-related metadata.
2014-02-04 - d9ae103 - lavf 55.11.0 - avformat.h
Add AVFormatContext.max_interleave_delta for controlling amount of buffering
when interleaving.
...
...
libavutil/Makefile
View file @
c98f3169
...
...
@@ -16,6 +16,7 @@ HEADERS = adler32.h \
common.h
\
cpu.h
\
crc.h
\
downmix_info.h
\
error.h
\
eval.h
\
fifo.h
\
...
...
@@ -67,6 +68,7 @@ OBJS = adler32.o \
cpu.o
\
crc.o
\
des.o
\
downmix_info.o
\
error.o
\
eval.o
\
fifo.o
\
...
...
libavutil/downmix_info.c
0 → 100644
View file @
c98f3169
/*
* Copyright (c) 2014 Tim Walker <tdskywalker@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 "downmix_info.h"
#include "frame.h"
AVDownmixInfo
*
av_downmix_info_update_side_data
(
AVFrame
*
frame
)
{
AVFrameSideData
*
side_data
;
side_data
=
av_frame_get_side_data
(
frame
,
AV_FRAME_DATA_DOWNMIX_INFO
);
if
(
!
side_data
)
side_data
=
av_frame_new_side_data
(
frame
,
AV_FRAME_DATA_DOWNMIX_INFO
,
sizeof
(
AVDownmixInfo
));
if
(
!
side_data
)
return
NULL
;
return
(
AVDownmixInfo
*
)
side_data
->
data
;
}
libavutil/downmix_info.h
0 → 100644
View file @
c98f3169
/*
* Copyright (c) 2014 Tim Walker <tdskywalker@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
*/
#ifndef AVUTIL_DOWNMIX_INFO_H
#define AVUTIL_DOWNMIX_INFO_H
#include "frame.h"
/**
* @file
* audio downmix medatata
*/
/**
* @addtogroup lavu_audio
* @{
*/
/**
* @defgroup downmix_info Audio downmix metadata
* @{
*/
/**
* Possible downmix types.
*/
enum
AVDownmixType
{
AV_DOWNMIX_TYPE_UNKNOWN
,
/**< Not indicated. */
AV_DOWNMIX_TYPE_LORO
,
/**< Lo/Ro 2-channel downmix (Stereo). */
AV_DOWNMIX_TYPE_LTRT
,
/**< Lt/Rt 2-channel downmix, Dolby Surround compatible. */
AV_DOWNMIX_TYPE_DPLII
,
/**< Lt/Rt 2-channel downmix, Dolby Pro Logic II compatible. */
AV_DOWNMIX_TYPE_NB
/**< Number of downmix types. Not part of ABI. */
};
/**
* This structure describes optional metadata relevant to a downmix procedure.
*
* All fields are set by the decoder to the value indicated in the audio
* bitstream (if present), or to a "sane" default otherwise.
*/
typedef
struct
AVDownmixInfo
{
/**
* Type of downmix preferred by the mastering engineer.
*/
enum
AVDownmixType
preferred_downmix_type
;
/**
* Absolute scale factor representing the nominal level of the center
* channel during a regular downmix.
*/
double
center_mix_level
;
/**
* Absolute scale factor representing the nominal level of the center
* channel during an Lt/Rt compatible downmix.
*/
double
center_mix_level_ltrt
;
/**
* Absolute scale factor representing the nominal level of the surround
* channels during a regular downmix.
*/
double
surround_mix_level
;
/**
* Absolute scale factor representing the nominal level of the surround
* channels during an Lt/Rt compatible downmix.
*/
double
surround_mix_level_ltrt
;
/**
* Absolute scale factor representing the level at which the LFE data is
* mixed into L/R channels during downmixing.
*/
double
lfe_mix_level
;
}
AVDownmixInfo
;
/**
* Get a frame's AV_FRAME_DATA_DOWNMIX_INFO side data for editing.
*
* The side data is created and added to the frame if it's absent.
*
* @param frame the frame for which the side data is to be obtained.
*
* @return the AVDownmixInfo structure to be edited by the caller.
*/
AVDownmixInfo
*
av_downmix_info_update_side_data
(
AVFrame
*
frame
);
/**
* @}
*/
/**
* @}
*/
#endif
/* AVUTIL_DOWNMIX_INFO_H */
libavutil/frame.h
View file @
c98f3169
...
...
@@ -64,6 +64,11 @@ enum AVFrameSideDataType {
* The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.
*/
AV_FRAME_DATA_MATRIXENCODING
,
/**
* Metadata relevant to a downmix procedure.
* The data is the AVDownmixInfo struct defined in libavutil/downmix_info.h.
*/
AV_FRAME_DATA_DOWNMIX_INFO
,
};
typedef
struct
AVFrameSideData
{
...
...
libavutil/version.h
View file @
c98f3169
...
...
@@ -54,7 +54,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 53
#define LIBAVUTIL_VERSION_MINOR
2
#define LIBAVUTIL_VERSION_MINOR
3
#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