Browse Source

Merge commit '27c8337e595a058347150269d5c2c48281e4285b'

* commit '27c8337e595a058347150269d5c2c48281e4285b':
  h264-mt: handle NAL_DPAs before calling ff_thread_finish_setup
  lavr: move AudioMix struct definition to audio_mix.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.1
Michael Niedermayer 13 years ago
parent
commit
dde4832b64
3 changed files with 25 additions and 22 deletions
  1. +1
    -0
      libavcodec/h264.c
  2. +23
    -0
      libavresample/audio_mix.c
  3. +1
    -22
      libavresample/audio_mix.h

+ 1
- 0
libavcodec/h264.c View File

@@ -3896,6 +3896,7 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
case NAL_PPS:
nals_needed = nal_index;
break;
case NAL_DPA:
case NAL_IDR_SLICE:
case NAL_SLICE:
init_get_bits(&hx->s.gb, ptr, bit_length);


+ 23
- 0
libavresample/audio_mix.c View File

@@ -30,6 +30,29 @@

static const char *coeff_type_names[] = { "q8", "q15", "flt" };

struct AudioMix {
AVAudioResampleContext *avr;
enum AVSampleFormat fmt;
enum AVMixCoeffType coeff_type;
uint64_t in_layout;
uint64_t out_layout;
int in_channels;
int out_channels;

int ptr_align;
int samples_align;
int has_optimized_func;
const char *func_descr;
const char *func_descr_generic;
mix_func *mix;
mix_func *mix_generic;

int16_t *matrix_q8[AVRESAMPLE_MAX_CHANNELS];
int32_t *matrix_q15[AVRESAMPLE_MAX_CHANNELS];
float *matrix_flt[AVRESAMPLE_MAX_CHANNELS];
void **matrix;
};

void ff_audio_mix_set_func(AudioMix *am, enum AVSampleFormat fmt,
enum AVMixCoeffType coeff_type, int in_channels,
int out_channels, int ptr_align, int samples_align,


+ 1
- 22
libavresample/audio_mix.h View File

@@ -30,28 +30,7 @@
typedef void (mix_func)(uint8_t **src, void **matrix, int len, int out_ch,
int in_ch);

typedef struct AudioMix {
AVAudioResampleContext *avr;
enum AVSampleFormat fmt;
enum AVMixCoeffType coeff_type;
uint64_t in_layout;
uint64_t out_layout;
int in_channels;
int out_channels;

int ptr_align;
int samples_align;
int has_optimized_func;
const char *func_descr;
const char *func_descr_generic;
mix_func *mix;
mix_func *mix_generic;

int16_t *matrix_q8[AVRESAMPLE_MAX_CHANNELS];
int32_t *matrix_q15[AVRESAMPLE_MAX_CHANNELS];
float *matrix_flt[AVRESAMPLE_MAX_CHANNELS];
void **matrix;
} AudioMix;
typedef struct AudioMix AudioMix;

/**
* Set mixing function if the parameters match.


Loading…
Cancel
Save