Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
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
...
@@ -13,6 +13,10 @@ libavutil: 2013-12-xx
API changes, most recent first:
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
2014-02-04 - d9ae103 - lavf 55.11.0 - avformat.h
Add AVFormatContext.max_interleave_delta for controlling amount of buffering
Add AVFormatContext.max_interleave_delta for controlling amount of buffering
when interleaving.
when interleaving.
...
...
libavutil/Makefile
View file @
c98f3169
...
@@ -16,6 +16,7 @@ HEADERS = adler32.h \
...
@@ -16,6 +16,7 @@ HEADERS = adler32.h \
common.h
\
common.h
\
cpu.h
\
cpu.h
\
crc.h
\
crc.h
\
downmix_info.h
\
error.h
\
error.h
\
eval.h
\
eval.h
\
fifo.h
\
fifo.h
\
...
@@ -67,6 +68,7 @@ OBJS = adler32.o \
...
@@ -67,6 +68,7 @@ OBJS = adler32.o \
cpu.o
\
cpu.o
\
crc.o
\
crc.o
\
des.o
\
des.o
\
downmix_info.o
\
error.o
\
error.o
\
eval.o
\
eval.o
\
fifo.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 {
...
@@ -64,6 +64,11 @@ enum AVFrameSideDataType {
* The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.
* The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.
*/
*/
AV_FRAME_DATA_MATRIXENCODING
,
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
{
typedef
struct
AVFrameSideData
{
...
...
libavutil/version.h
View file @
c98f3169
...
@@ -54,7 +54,7 @@
...
@@ -54,7 +54,7 @@
*/
*/
#define LIBAVUTIL_VERSION_MAJOR 53
#define LIBAVUTIL_VERSION_MAJOR 53
#define LIBAVUTIL_VERSION_MINOR
2
#define LIBAVUTIL_VERSION_MINOR
3
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
#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