From 230acdde264e694086a05cd439dc02445b9ad26a Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Thu, 13 Dec 2012 21:18:15 -0500 Subject: [PATCH 1/2] lavr: move AudioMix struct definition to audio_mix.c --- libavresample/audio_mix.c | 23 +++++++++++++++++++++++ libavresample/audio_mix.h | 23 +---------------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/libavresample/audio_mix.c b/libavresample/audio_mix.c index 3b39ceeca5..62f8bd6c6d 100644 --- a/libavresample/audio_mix.c +++ b/libavresample/audio_mix.c @@ -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, diff --git a/libavresample/audio_mix.h b/libavresample/audio_mix.h index 22faea7c1b..4ccfc1fd28 100644 --- a/libavresample/audio_mix.h +++ b/libavresample/audio_mix.h @@ -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. From 27c8337e595a058347150269d5c2c48281e4285b Mon Sep 17 00:00:00 2001 From: Janne Grunau Date: Fri, 14 Dec 2012 23:22:55 +0100 Subject: [PATCH 2/2] h264-mt: handle NAL_DPAs before calling ff_thread_finish_setup Since a NAL_DPA can start a new frame it has to be handled before ff_thread_finish_setup is called. --- libavcodec/h264.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 12af8108fb..4146b6f052 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -3816,6 +3816,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);