You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Merge commit 'c98f3169bfb578c1a4e407b44524f0bfa3b4dc0c'
* commit 'c98f3169bfb578c1a4e407b44524f0bfa3b4dc0c': lavu: add AV_FRAME_DATA_DOWNMIX_INFO side data type. Conflicts: doc/APIchanges libavutil/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -15,6 +15,10 @@ libavutil:     2012-10-22 | ||||
|  | ||||
| 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-11 - 1b05ac2 - lavf 55.32.100 - avformat.h | ||||
|   Add av_write_uncoded_frame() and av_interleaved_write_uncoded_frame(). | ||||
|  | ||||
|   | ||||
| @@ -19,6 +19,7 @@ HEADERS = adler32.h                                                     \ | ||||
|           common.h                                                      \ | ||||
|           cpu.h                                                         \ | ||||
|           crc.h                                                         \ | ||||
|           downmix_info.h                                                \ | ||||
|           error.h                                                       \ | ||||
|           eval.h                                                        \ | ||||
|           fifo.h                                                        \ | ||||
| @@ -80,6 +81,7 @@ OBJS = adler32.o                                                        \ | ||||
|        cpu.o                                                            \ | ||||
|        crc.o                                                            \ | ||||
|        des.o                                                            \ | ||||
|        downmix_info.o                                                   \ | ||||
|        error.o                                                          \ | ||||
|        eval.o                                                           \ | ||||
|        fifo.o                                                           \ | ||||
|   | ||||
							
								
								
									
										38
									
								
								libavutil/downmix_info.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								libavutil/downmix_info.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| /* | ||||
|  * Copyright (c) 2014 Tim Walker <tdskywalker@gmail.com> | ||||
|  * | ||||
|  * This file is part of FFmpeg. | ||||
|  * | ||||
|  * FFmpeg 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. | ||||
|  * | ||||
|  * FFmpeg 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 FFmpeg; 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; | ||||
| } | ||||
							
								
								
									
										114
									
								
								libavutil/downmix_info.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								libavutil/downmix_info.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,114 @@ | ||||
| /* | ||||
|  * Copyright (c) 2014 Tim Walker <tdskywalker@gmail.com> | ||||
|  * | ||||
|  * This file is part of FFmpeg. | ||||
|  * | ||||
|  * FFmpeg 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. | ||||
|  * | ||||
|  * FFmpeg 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 FFmpeg; 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 */ | ||||
| @@ -87,6 +87,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 { | ||||
|   | ||||
| @@ -56,8 +56,8 @@ | ||||
|  */ | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_MAJOR  52 | ||||
| #define LIBAVUTIL_VERSION_MINOR  63 | ||||
| #define LIBAVUTIL_VERSION_MICRO 101 | ||||
| #define LIBAVUTIL_VERSION_MINOR  64 | ||||
| #define LIBAVUTIL_VERSION_MICRO 100 | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||
|                                                LIBAVUTIL_VERSION_MINOR, \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user