Commit dde4832b authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '27c8337e'

* commit '27c8337e':
  h264-mt: handle NAL_DPAs before calling ff_thread_finish_setup
  lavr: move AudioMix struct definition to audio_mix.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 1081d787 27c8337e
...@@ -3896,6 +3896,7 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size) ...@@ -3896,6 +3896,7 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
case NAL_PPS: case NAL_PPS:
nals_needed = nal_index; nals_needed = nal_index;
break; break;
case NAL_DPA:
case NAL_IDR_SLICE: case NAL_IDR_SLICE:
case NAL_SLICE: case NAL_SLICE:
init_get_bits(&hx->s.gb, ptr, bit_length); init_get_bits(&hx->s.gb, ptr, bit_length);
......
...@@ -30,6 +30,29 @@ ...@@ -30,6 +30,29 @@
static const char *coeff_type_names[] = { "q8", "q15", "flt" }; 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, void ff_audio_mix_set_func(AudioMix *am, enum AVSampleFormat fmt,
enum AVMixCoeffType coeff_type, int in_channels, enum AVMixCoeffType coeff_type, int in_channels,
int out_channels, int ptr_align, int samples_align, int out_channels, int ptr_align, int samples_align,
......
...@@ -30,28 +30,7 @@ ...@@ -30,28 +30,7 @@
typedef void (mix_func)(uint8_t **src, void **matrix, int len, int out_ch, typedef void (mix_func)(uint8_t **src, void **matrix, int len, int out_ch,
int in_ch); int in_ch);
typedef struct AudioMix { typedef struct AudioMix 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;
/** /**
* Set mixing function if the parameters match. * Set mixing function if the parameters match.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment