* qatar/master: aac_latm: reconfigure decoder on audio specific config changes latmdec: fix audio specific config parsing Add avcodec_decode_audio4(). avcodec: change number of plane pointers from 4 to 8 at next major bump. Update developers documentation with coding conventions. svq1dec: avoid undefined get_bits(0) call ARM: h264dsp_neon cosmetics ARM: make some NEON macros reusable Do not memcpy raw video frames when using null muxer fate: update asf seektest vp8: flush buffers on size changes. doc: improve general documentation for MacOSX asf: use packet dts as approximation of pts asf: do not call av_read_frame rtsp: Initialize the media_type_mask in the rtp guessing demuxer Cleaned up alacenc.c Conflicts: doc/APIchanges doc/developer.texi libavcodec/8svx.c libavcodec/aacdec.c libavcodec/ac3dec.c libavcodec/avcodec.h libavcodec/nellymoserdec.c libavcodec/tta.c libavcodec/utils.c libavcodec/version.h libavcodec/wmadec.c libavformat/asfdec.c tests/ref/seek/lavf_asf Merged-by: Michael Niedermayer <michaelni@gmx.at>
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Musepack decoder
 | |
|  * Copyright (c) 2006 Konstantin Shishkov
 | |
|  *
 | |
|  * 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
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * @file
 | |
|  * Musepack decoder
 | |
|  * MPEG Audio Layer 1/2 -like codec with frames of 1152 samples
 | |
|  * divided into 32 subbands.
 | |
|  */
 | |
| 
 | |
| #ifndef AVCODEC_MPC_H
 | |
| #define AVCODEC_MPC_H
 | |
| 
 | |
| #include "libavutil/lfg.h"
 | |
| #include "avcodec.h"
 | |
| #include "get_bits.h"
 | |
| #include "dsputil.h"
 | |
| #include "mpegaudio.h"
 | |
| #include "mpegaudiodsp.h"
 | |
| 
 | |
| #define BANDS            32
 | |
| #define SAMPLES_PER_BAND 36
 | |
| #define MPC_FRAME_SIZE   (BANDS * SAMPLES_PER_BAND)
 | |
| 
 | |
| /** Subband structure - hold all variables for each subband */
 | |
| typedef struct {
 | |
|     int msf; ///< mid-stereo flag
 | |
|     int res[2];
 | |
|     int scfi[2];
 | |
|     int scf_idx[2][3];
 | |
|     int Q[2];
 | |
| }Band;
 | |
| 
 | |
| typedef struct {
 | |
|     AVFrame frame;
 | |
|     DSPContext dsp;
 | |
|     MPADSPContext mpadsp;
 | |
|     GetBitContext gb;
 | |
|     int IS, MSS, gapless;
 | |
|     int lastframelen;
 | |
|     int maxbands, last_max_band;
 | |
|     int last_bits_used;
 | |
|     int oldDSCF[2][BANDS];
 | |
|     Band bands[BANDS];
 | |
|     int Q[2][MPC_FRAME_SIZE];
 | |
|     int cur_frame, frames;
 | |
|     uint8_t *bits;
 | |
|     int buf_size;
 | |
|     AVLFG rnd;
 | |
|     int frames_to_skip;
 | |
|     /* for synthesis */
 | |
|     DECLARE_ALIGNED(16, MPA_INT, synth_buf)[MPA_MAX_CHANNELS][512*2];
 | |
|     int synth_buf_offset[MPA_MAX_CHANNELS];
 | |
|     DECLARE_ALIGNED(16, int32_t, sb_samples)[MPA_MAX_CHANNELS][36][SBLIMIT];
 | |
| } MPCContext;
 | |
| 
 | |
| void ff_mpc_init(void);
 | |
| void ff_mpc_dequantize_and_synth(MPCContext *c, int maxband, void *dst, int channels);
 | |
| 
 | |
| #endif /* AVCODEC_MPC_H */
 |