ffmpeg | branch: master | James Almer <jamr...@gmail.com> | Tue Sep 26 15:58:40 2017 -0300| [318778de9ebec276cb9dfc65509231ca56590d13] | committer: James Almer
Merge commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3' * commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3': Mark some arrays that never change as const. Merged-by: James Almer <jamr...@gmail.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=318778de9ebec276cb9dfc65509231ca56590d13 --- configure | 2 +- libavcodec/aaccoder.c | 2 +- libavcodec/aacenc.h | 4 ++-- libavcodec/amrwbdata.h | 2 +- libavcodec/atrac3plus.c | 4 ++-- libavcodec/dfa.c | 2 +- libavcodec/g722dec.c | 4 ++-- libavcodec/on2avcdata.c | 16 ++++++++-------- libavcodec/on2avcdata.h | 20 ++++++++++---------- libavcodec/opus_silk.c | 6 +++--- libavcodec/qsvdec_h2645.c | 4 ++-- libavcodec/qsvenc_hevc.c | 4 ++-- libavcodec/tscc2data.h | 6 +++--- libavcodec/vaapi_encode.c | 2 +- libavcodec/vaapi_encode_mjpeg.c | 2 +- libavcodec/vp8.c | 8 ++++---- libavcodec/vp9block.c | 2 +- libavcodec/x86/mlpdsp_init.c | 12 ++++++------ libavformat/hls.c | 4 ++-- libavformat/id3v2.c | 2 +- libavformat/id3v2.h | 2 +- libavformat/mxfdec.c | 2 +- libavutil/hwcontext.c | 2 +- libavutil/hwcontext_vaapi.c | 2 +- libavutil/pixdesc.c | 10 +++++----- libavutil/stereo3d.c | 2 +- 26 files changed, 64 insertions(+), 64 deletions(-) diff --git a/configure b/configure index f0c114e9e3..70b7677983 100755 --- a/configure +++ b/configure @@ -7034,7 +7034,7 @@ print_enabled_components(){ struct_name=$2 name=$3 shift 3 - echo "static const $struct_name *$name[] = {" > $TMPH + echo "static const $struct_name * const $name[] = {" > $TMPH for c in $*; do enabled $c && printf " &ff_%s,\n" $c >> $TMPH done diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c index abd0b9c636..baa82489b1 100644 --- a/libavcodec/aaccoder.c +++ b/libavcodec/aaccoder.c @@ -894,7 +894,7 @@ static void search_for_ms(AACEncContext *s, ChannelElement *cpe) } } -AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = { +const AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = { [AAC_CODER_ANMR] = { search_for_quantizers_anmr, encode_window_bands_info, diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h index 9d244fd1f5..ea2d3b9628 100644 --- a/libavcodec/aacenc.h +++ b/libavcodec/aacenc.h @@ -78,7 +78,7 @@ typedef struct AACCoefficientsEncoder { void (*search_for_pred)(struct AACEncContext *s, SingleChannelElement *sce); } AACCoefficientsEncoder; -extern AACCoefficientsEncoder ff_aac_coders[]; +extern const AACCoefficientsEncoder ff_aac_coders[]; typedef struct AACQuantizeBandCostCacheEntry { float rd; @@ -110,7 +110,7 @@ typedef struct AACEncContext { ChannelElement *cpe; ///< channel elements FFPsyContext psy; struct FFPsyPreprocessContext* psypp; - AACCoefficientsEncoder *coder; + const AACCoefficientsEncoder *coder; int cur_channel; ///< current channel for coder context int random_state; float lambda; diff --git a/libavcodec/amrwbdata.h b/libavcodec/amrwbdata.h index e0152a651e..8a8cbfdddf 100644 --- a/libavcodec/amrwbdata.h +++ b/libavcodec/amrwbdata.h @@ -673,7 +673,7 @@ static const uint16_t order_MODE_23k85[] = { }; /** Reordering array addresses for each mode */ -static const uint16_t* amr_bit_orderings_by_mode[] = { +static const uint16_t * const amr_bit_orderings_by_mode[] = { order_MODE_6k60, order_MODE_8k85, order_MODE_12k65, diff --git a/libavcodec/atrac3plus.c b/libavcodec/atrac3plus.c index 46e0beafc2..3e3bba801b 100644 --- a/libavcodec/atrac3plus.c +++ b/libavcodec/atrac3plus.c @@ -109,8 +109,8 @@ av_cold void ff_atrac3p_init_vlcs(void) NULL, NULL, atrac3p_ct_huff_xlat1, NULL }; - static const int sf_nb_bits[8] = { 9, 9, 9, 9, 6, 6, 7, 7 }; - static const int sf_nb_codes[8] = { 64, 64, 64, 64, 16, 16, 16, 16 }; + static const int sf_nb_bits[8] = { 9, 9, 9, 9, 6, 6, 7, 7 }; + static const int sf_nb_codes[8] = { 64, 64, 64, 64, 16, 16, 16, 16 }; static const uint8_t * const sf_bits[8] = { atrac3p_sf_huff_bits1, atrac3p_sf_huff_bits1, atrac3p_sf_huff_bits2, atrac3p_sf_huff_bits3, atrac3p_sf_huff_bits4, atrac3p_sf_huff_bits4, diff --git a/libavcodec/dfa.c b/libavcodec/dfa.c index 8067ac94e5..43dba2c8e9 100644 --- a/libavcodec/dfa.c +++ b/libavcodec/dfa.c @@ -330,7 +330,7 @@ static const chunk_decoder decoder[8] = { decode_tdlt, decode_dsw1, decode_blck, decode_dds1, }; -static const char* chunk_name[8] = { +static const char * const chunk_name[8] = { "COPY", "TSW1", "BDLT", "WDLT", "TDLT", "DSW1", "BLCK", "DDS1" }; diff --git a/libavcodec/g722dec.c b/libavcodec/g722dec.c index 0bfa82a394..000b591fe6 100644 --- a/libavcodec/g722dec.c +++ b/libavcodec/g722dec.c @@ -80,8 +80,8 @@ static const int16_t low_inv_quant5[32] = { }; static const int16_t * const low_inv_quants[3] = { ff_g722_low_inv_quant6, - low_inv_quant5, - ff_g722_low_inv_quant4 }; + low_inv_quant5, + ff_g722_low_inv_quant4 }; static int g722_decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt) diff --git a/libavcodec/on2avcdata.c b/libavcodec/on2avcdata.c index abe598350b..ec983572e6 100644 --- a/libavcodec/on2avcdata.c +++ b/libavcodec/on2avcdata.c @@ -7724,12 +7724,12 @@ static const double tabs_9_20[9 * 2][20] = { 0.22783, 0.058894795, -0.61350902, 0.69559873, -0.27013783, } }; -const double* const ff_on2avc_tabs_9_20_1[9] = { +const double * const ff_on2avc_tabs_9_20_1[9] = { tabs_9_20[0], tabs_9_20[1], tabs_9_20[2], tabs_9_20[3], tabs_9_20[4], tabs_9_20[5], tabs_9_20[6], tabs_9_20[7], tabs_9_20[8] }; -const double* const ff_on2avc_tabs_9_20_2[9] = { +const double * const ff_on2avc_tabs_9_20_2[9] = { tabs_9_20[ 9], tabs_9_20[10], tabs_9_20[11], tabs_9_20[12], tabs_9_20[13], tabs_9_20[14], tabs_9_20[15], tabs_9_20[16], tabs_9_20[17] }; @@ -7927,7 +7927,7 @@ static const double tabs_19_40[19 * 2][40] = { 0.019871848, -0.11989559, 0.036659135, 0.26632201, -0.3057397, -0.23220335, 0.68741352, -0.54024027, } }; -const double* const ff_on2avc_tabs_19_40_1[19] = { +const double * const ff_on2avc_tabs_19_40_1[19] = { tabs_19_40[ 0], tabs_19_40[ 1], tabs_19_40[ 2], tabs_19_40[ 3], tabs_19_40[ 4], tabs_19_40[ 5], tabs_19_40[ 6], tabs_19_40[ 7], tabs_19_40[ 8], tabs_19_40[ 9], tabs_19_40[10], tabs_19_40[11], @@ -7935,7 +7935,7 @@ const double* const ff_on2avc_tabs_19_40_1[19] = { tabs_19_40[16], tabs_19_40[17], tabs_19_40[18], }; -const double* const ff_on2avc_tabs_19_40_2[19] = { +const double * const ff_on2avc_tabs_19_40_2[19] = { tabs_19_40[19], tabs_19_40[20], tabs_19_40[21], tabs_19_40[22], tabs_19_40[23], tabs_19_40[24], tabs_19_40[25], tabs_19_40[26], tabs_19_40[27], tabs_19_40[28], tabs_19_40[29], tabs_19_40[30], @@ -8826,7 +8826,7 @@ static const double tabs_20_84[20 * 4][84] = { 0.51434408, -0.41486443, 0.27672635, -0.10432054, }, }; -const double* const ff_on2avc_tabs_20_84_1[20] = { +const double * const ff_on2avc_tabs_20_84_1[20] = { tabs_20_84[ 0], tabs_20_84[ 1], tabs_20_84[ 2], tabs_20_84[ 3], tabs_20_84[ 4], tabs_20_84[ 5], tabs_20_84[ 6], tabs_20_84[ 7], tabs_20_84[ 8], tabs_20_84[ 9], tabs_20_84[10], tabs_20_84[11], @@ -8834,7 +8834,7 @@ const double* const ff_on2avc_tabs_20_84_1[20] = { tabs_20_84[16], tabs_20_84[17], tabs_20_84[18], tabs_20_84[19] }; -const double* const ff_on2avc_tabs_20_84_2[20] = { +const double * const ff_on2avc_tabs_20_84_2[20] = { tabs_20_84[20], tabs_20_84[21], tabs_20_84[22], tabs_20_84[23], tabs_20_84[24], tabs_20_84[25], tabs_20_84[26], tabs_20_84[27], tabs_20_84[28], tabs_20_84[29], tabs_20_84[30], tabs_20_84[31], @@ -8842,7 +8842,7 @@ const double* const ff_on2avc_tabs_20_84_2[20] = { tabs_20_84[36], tabs_20_84[37], tabs_20_84[38], tabs_20_84[39] }; -const double* const ff_on2avc_tabs_20_84_3[20] = { +const double * const ff_on2avc_tabs_20_84_3[20] = { tabs_20_84[40], tabs_20_84[41], tabs_20_84[42], tabs_20_84[43], tabs_20_84[44], tabs_20_84[45], tabs_20_84[46], tabs_20_84[47], tabs_20_84[48], tabs_20_84[49], tabs_20_84[50], tabs_20_84[51], @@ -8850,7 +8850,7 @@ const double* const ff_on2avc_tabs_20_84_3[20] = { tabs_20_84[56], tabs_20_84[57], tabs_20_84[58], tabs_20_84[59] }; -const double* const ff_on2avc_tabs_20_84_4[20] = { +const double * const ff_on2avc_tabs_20_84_4[20] = { tabs_20_84[60], tabs_20_84[61], tabs_20_84[62], tabs_20_84[63], tabs_20_84[64], tabs_20_84[65], tabs_20_84[66], tabs_20_84[67], tabs_20_84[68], tabs_20_84[69], tabs_20_84[70], tabs_20_84[71], diff --git a/libavcodec/on2avcdata.h b/libavcodec/on2avcdata.h index 95d88e0252..dc7833feff 100644 --- a/libavcodec/on2avcdata.h +++ b/libavcodec/on2avcdata.h @@ -64,16 +64,16 @@ extern const double ff_on2avc_tab_84_1[]; extern const double ff_on2avc_tab_84_2[]; extern const double ff_on2avc_tab_84_3[]; extern const double ff_on2avc_tab_84_4[]; -extern const double* const ff_on2avc_tabs_4_10_1[4]; -extern const double* const ff_on2avc_tabs_4_10_2[4]; -extern const double* const ff_on2avc_tabs_9_20_1[9]; -extern const double* const ff_on2avc_tabs_9_20_2[9]; -extern const double* const ff_on2avc_tabs_19_40_1[19]; -extern const double* const ff_on2avc_tabs_19_40_2[19]; -extern const double* const ff_on2avc_tabs_20_84_1[20]; -extern const double* const ff_on2avc_tabs_20_84_2[20]; -extern const double* const ff_on2avc_tabs_20_84_3[20]; -extern const double* const ff_on2avc_tabs_20_84_4[20]; +extern const double * const ff_on2avc_tabs_4_10_1[4]; +extern const double * const ff_on2avc_tabs_4_10_2[4]; +extern const double * const ff_on2avc_tabs_9_20_1[9]; +extern const double * const ff_on2avc_tabs_9_20_2[9]; +extern const double * const ff_on2avc_tabs_19_40_1[19]; +extern const double * const ff_on2avc_tabs_19_40_2[19]; +extern const double * const ff_on2avc_tabs_20_84_1[20]; +extern const double * const ff_on2avc_tabs_20_84_2[20]; +extern const double * const ff_on2avc_tabs_20_84_3[20]; +extern const double * const ff_on2avc_tabs_20_84_4[20]; extern const float ff_on2avc_ctab_1[2048]; extern const float ff_on2avc_ctab_2[2048]; extern const float ff_on2avc_ctab_3[2048]; diff --git a/libavcodec/opus_silk.c b/libavcodec/opus_silk.c index dbf6756864..3c9c849c21 100644 --- a/libavcodec/opus_silk.c +++ b/libavcodec/opus_silk.c @@ -599,7 +599,7 @@ static void silk_decode_frame(SilkContext *s, OpusRangeCoder *rc, if (lag_absolute) { /* primary lag is coded absolute */ int highbits, lowbits; - static const uint16_t *model[] = { + static const uint16_t * const model[] = { ff_silk_model_pitch_lowbits_nb, ff_silk_model_pitch_lowbits_mb, ff_silk_model_pitch_lowbits_wb }; @@ -633,11 +633,11 @@ static void silk_decode_frame(SilkContext *s, OpusRangeCoder *rc, ltpfilter = ff_opus_rc_dec_cdf(rc, ff_silk_model_ltp_filter); for (i = 0; i < s->subframes; i++) { int index, j; - static const uint16_t *filter_sel[] = { + static const uint16_t * const filter_sel[] = { ff_silk_model_ltp_filter0_sel, ff_silk_model_ltp_filter1_sel, ff_silk_model_ltp_filter2_sel }; - static const int8_t (*filter_taps[])[5] = { + static const int8_t (* const filter_taps[])[5] = { ff_silk_ltp_filter0_taps, ff_silk_ltp_filter1_taps, ff_silk_ltp_filter2_taps }; index = ff_opus_rc_dec_cdf(rc, filter_sel[ltpfilter]); diff --git a/libavcodec/qsvdec_h2645.c b/libavcodec/qsvdec_h2645.c index 276cdf884d..a6b53cce8d 100644 --- a/libavcodec/qsvdec_h2645.c +++ b/libavcodec/qsvdec_h2645.c @@ -84,8 +84,8 @@ static av_cold int qsv_decode_init(AVCodecContext *avctx) int ret; if (avctx->codec_id == AV_CODEC_ID_HEVC && s->load_plugin != LOAD_PLUGIN_NONE) { - static const char *uid_hevcdec_sw = "15dd936825ad475ea34e35f3f54217a6"; - static const char *uid_hevcdec_hw = "33a61c0b4c27454ca8d85dde757c6f8e"; + static const char * const uid_hevcdec_sw = "15dd936825ad475ea34e35f3f54217a6"; + static const char * const uid_hevcdec_hw = "33a61c0b4c27454ca8d85dde757c6f8e"; if (s->qsv.load_plugins[0]) { av_log(avctx, AV_LOG_WARNING, diff --git a/libavcodec/qsvenc_hevc.c b/libavcodec/qsvenc_hevc.c index 7d4d55bb61..b0e5ace7c7 100644 --- a/libavcodec/qsvenc_hevc.c +++ b/libavcodec/qsvenc_hevc.c @@ -161,8 +161,8 @@ static av_cold int qsv_enc_init(AVCodecContext *avctx) int ret; if (q->load_plugin != LOAD_PLUGIN_NONE) { - static const char *uid_hevcenc_sw = "2fca99749fdb49aeb121a5b63ef568f7"; - static const char *uid_hevcenc_hw = "6fadc791a0c2eb479ab6dcd5ea9da347"; + static const char * const uid_hevcenc_sw = "2fca99749fdb49aeb121a5b63ef568f7"; + static const char * const uid_hevcenc_hw = "6fadc791a0c2eb479ab6dcd5ea9da347"; if (q->qsv.load_plugins[0]) { av_log(avctx, AV_LOG_WARNING, diff --git a/libavcodec/tscc2data.h b/libavcodec/tscc2data.h index 7cd6f5216e..5e8d18b3f5 100644 --- a/libavcodec/tscc2data.h +++ b/libavcodec/tscc2data.h @@ -903,14 +903,14 @@ static const int tscc2_ac_vlc_sizes[NUM_VLC_SETS] = { 172, 169, 165, 162, 131, 132, 130, 125, 121, 114, 110, 101, 96 }; -static const uint16_t *tscc2_ac_vlc_syms[NUM_VLC_SETS] = { +static const uint16_t * const tscc2_ac_vlc_syms[NUM_VLC_SETS] = { ac_vlc_desc0_syms, ac_vlc_desc1_syms, ac_vlc_desc2_syms, ac_vlc_desc3_syms, ac_vlc_desc4_syms, ac_vlc_desc5_syms, ac_vlc_desc6_syms, ac_vlc_desc7_syms, ac_vlc_desc8_syms, ac_vlc_desc9_syms, ac_vlc_descA_syms, ac_vlc_descB_syms, ac_vlc_descC_syms, }; -static const uint16_t *tscc2_ac_vlc_codes[NUM_VLC_SETS] = { +static const uint16_t * const tscc2_ac_vlc_codes[NUM_VLC_SETS] = { ac_vlc_desc0_codes, ac_vlc_desc1_codes, ac_vlc_desc2_codes, ac_vlc_desc3_codes, ac_vlc_desc4_codes, ac_vlc_desc5_codes, ac_vlc_desc6_codes, ac_vlc_desc7_codes, ac_vlc_desc8_codes, @@ -918,7 +918,7 @@ static const uint16_t *tscc2_ac_vlc_codes[NUM_VLC_SETS] = { ac_vlc_descC_codes, }; -static const uint8_t *tscc2_ac_vlc_bits[NUM_VLC_SETS] = { +static const uint8_t * const tscc2_ac_vlc_bits[NUM_VLC_SETS] = { ac_vlc_desc0_bits, ac_vlc_desc1_bits, ac_vlc_desc2_bits, ac_vlc_desc3_bits, ac_vlc_desc4_bits, ac_vlc_desc5_bits, ac_vlc_desc6_bits, ac_vlc_desc7_bits, ac_vlc_desc8_bits, ac_vlc_desc9_bits, ac_vlc_descA_bits, ac_vlc_descB_bits, diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 4d7683f146..e13e99587d 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -27,7 +27,7 @@ #include "vaapi_encode.h" #include "avcodec.h" -static const char *picture_type_name[] = { "IDR", "I", "P", "B" }; +static const char * const picture_type_name[] = { "IDR", "I", "P", "B" }; static int vaapi_encode_make_packed_header(AVCodecContext *avctx, VAAPIEncodePicture *pic, diff --git a/libavcodec/vaapi_encode_mjpeg.c b/libavcodec/vaapi_encode_mjpeg.c index 3afce28a10..2cbf7925f2 100644 --- a/libavcodec/vaapi_encode_mjpeg.c +++ b/libavcodec/vaapi_encode_mjpeg.c @@ -361,7 +361,7 @@ static av_cold int vaapi_encode_mjpeg_configure(AVCodecContext *avctx) return 0; } -static VAAPIEncodeType vaapi_encode_type_mjpeg = { +static const VAAPIEncodeType vaapi_encode_type_mjpeg = { .priv_data_size = sizeof(VAAPIEncodeMJPEGContext), .configure = &vaapi_encode_mjpeg_configure, diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c index 5bf601a8ef..7841a9d964 100644 --- a/libavcodec/vp8.c +++ b/libavcodec/vp8.c @@ -1171,10 +1171,10 @@ void decode_mb_mode(VP8Context *s, VP8mvbounds *mv_bounds, uint8_t *segment, uint8_t *ref, int layout, int is_vp7) { VP56RangeCoder *c = &s->c; - static const char *vp7_feature_name[] = { "q-index", - "lf-delta", - "partial-golden-update", - "blit-pitch" }; + static const char * const vp7_feature_name[] = { "q-index", + "lf-delta", + "partial-golden-update", + "blit-pitch" }; if (is_vp7) { int i; *segment = 0; diff --git a/libavcodec/vp9block.c b/libavcodec/vp9block.c index d4ace149a5..1c3f7a7225 100644 --- a/libavcodec/vp9block.c +++ b/libavcodec/vp9block.c @@ -976,7 +976,7 @@ static av_always_inline int decode_coeffs(VP9TileData *td, int is8bitsperpixel) int16_t (*qmul)[2] = s->s.h.segmentation.feat[b->seg_id].qmul; int tx = 4 * s->s.h.lossless + b->tx; const int16_t * const *yscans = ff_vp9_scans[tx]; - const int16_t (* const *ynbs)[2] = ff_vp9_scans_nb[tx]; + const int16_t (* const * ynbs)[2] = ff_vp9_scans_nb[tx]; const int16_t *uvscan = ff_vp9_scans[b->uvtx][DCT_DCT]; const int16_t (*uvnb)[2] = ff_vp9_scans_nb[b->uvtx][DCT_DCT]; uint8_t *a = &s->above_y_nnz_ctx[col * 2]; diff --git a/libavcodec/x86/mlpdsp_init.c b/libavcodec/x86/mlpdsp_init.c index 7f5e6b11d5..cb90ca24f0 100644 --- a/libavcodec/x86/mlpdsp_init.c +++ b/libavcodec/x86/mlpdsp_init.c @@ -61,13 +61,13 @@ extern char ff_mlp_iirorder_1; extern char ff_mlp_iirorder_0; static const void * const firtable[9] = { &ff_mlp_firorder_0, &ff_mlp_firorder_1, - &ff_mlp_firorder_2, &ff_mlp_firorder_3, - &ff_mlp_firorder_4, &ff_mlp_firorder_5, - &ff_mlp_firorder_6, &ff_mlp_firorder_7, - &ff_mlp_firorder_8 }; + &ff_mlp_firorder_2, &ff_mlp_firorder_3, + &ff_mlp_firorder_4, &ff_mlp_firorder_5, + &ff_mlp_firorder_6, &ff_mlp_firorder_7, + &ff_mlp_firorder_8 }; static const void * const iirtable[5] = { &ff_mlp_iirorder_0, &ff_mlp_iirorder_1, - &ff_mlp_iirorder_2, &ff_mlp_iirorder_3, - &ff_mlp_iirorder_4 }; + &ff_mlp_iirorder_2, &ff_mlp_iirorder_3, + &ff_mlp_iirorder_4 }; #if ARCH_X86_64 diff --git a/libavformat/hls.c b/libavformat/hls.c index 0995345bbf..786934af03 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -1498,9 +1498,9 @@ static int select_cur_seq_no(HLSContext *c, struct playlist *pls) static int save_avio_options(AVFormatContext *s) { HLSContext *c = s->priv_data; - static const char *opts[] = { + static const char * const opts[] = { "headers", "http_proxy", "user_agent", "user-agent", "cookies", NULL }; - const char **opt = opts; + const char * const * opt = opts; uint8_t *buf; int ret = 0; diff --git a/libavformat/id3v2.c b/libavformat/id3v2.c index 05346350ad..f15cefee47 100644 --- a/libavformat/id3v2.c +++ b/libavformat/id3v2.c @@ -102,7 +102,7 @@ const char ff_id3v2_3_tags[][4] = { { 0 }, }; -const char *ff_id3v2_picture_types[21] = { +const char * const ff_id3v2_picture_types[21] = { "Other", "32x32 pixels 'file icon'", "Other file icon", diff --git a/libavformat/id3v2.h b/libavformat/id3v2.h index 9d7bf1c03c..6e7a8c9abf 100644 --- a/libavformat/id3v2.h +++ b/libavformat/id3v2.h @@ -180,6 +180,6 @@ extern const char ff_id3v2_3_tags[][4]; extern const CodecMime ff_id3v2_mime_tags[]; -extern const char *ff_id3v2_picture_types[21]; +extern const char * const ff_id3v2_picture_types[21]; #endif /* AVFORMAT_ID3V2_H */ diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index 476d284c96..1855f95d79 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -1204,7 +1204,7 @@ static const MXFCodecUL mxf_data_essence_container_uls[] = { { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE }, }; -static const char* const mxf_data_essence_descriptor[] = { +static const char * const mxf_data_essence_descriptor[] = { "vbi_vanc_smpte_436M", }; diff --git a/libavutil/hwcontext.c b/libavutil/hwcontext.c index aa6b3ad176..2f4ee9661e 100644 --- a/libavutil/hwcontext.c +++ b/libavutil/hwcontext.c @@ -28,7 +28,7 @@ #include "pixdesc.h" #include "pixfmt.h" -static const HWContextType *const hw_table[] = { +static const HWContextType * const hw_table[] = { #if CONFIG_CUDA &ff_hwcontext_type_cuda, #endif diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c index c4473a229f..9214dc6e50 100644 --- a/libavutil/hwcontext_vaapi.c +++ b/libavutil/hwcontext_vaapi.c @@ -93,7 +93,7 @@ typedef struct VAAPIMapping { } // The map fourcc <-> pix_fmt isn't bijective because of the annoying U/V // plane swap cases. The frame handling below tries to hide these. -static struct { +static const struct { unsigned int fourcc; unsigned int rt_format; enum AVPixelFormat pix_fmt; diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index b39afe3758..2cfab89c03 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -2246,13 +2246,13 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { FF_ENABLE_DEPRECATION_WARNINGS #endif -static const char *color_range_names[] = { +static const char * const color_range_names[] = { [AVCOL_RANGE_UNSPECIFIED] = "unknown", [AVCOL_RANGE_MPEG] = "tv", [AVCOL_RANGE_JPEG] = "pc", }; -static const char *color_primaries_names[AVCOL_PRI_NB] = { +static const char * const color_primaries_names[AVCOL_PRI_NB] = { [AVCOL_PRI_RESERVED0] = "reserved", [AVCOL_PRI_BT709] = "bt709", [AVCOL_PRI_UNSPECIFIED] = "unknown", @@ -2269,7 +2269,7 @@ static const char *color_primaries_names[AVCOL_PRI_NB] = { [AVCOL_PRI_JEDEC_P22] = "jedec-p22", }; -static const char *color_transfer_names[] = { +static const char * const color_transfer_names[] = { [AVCOL_TRC_RESERVED0] = "reserved", [AVCOL_TRC_BT709] = "bt709", [AVCOL_TRC_UNSPECIFIED] = "unknown", @@ -2291,7 +2291,7 @@ static const char *color_transfer_names[] = { [AVCOL_TRC_ARIB_STD_B67] = "arib-std-b67", }; -static const char *color_space_names[] = { +static const char * const color_space_names[] = { [AVCOL_SPC_RGB] = "gbr", [AVCOL_SPC_BT709] = "bt709", [AVCOL_SPC_UNSPECIFIED] = "unknown", @@ -2309,7 +2309,7 @@ static const char *color_space_names[] = { [AVCOL_SPC_ICTCP] = "ictcp", }; -static const char *chroma_location_names[] = { +static const char * const chroma_location_names[] = { [AVCHROMA_LOC_UNSPECIFIED] = "unspecified", [AVCHROMA_LOC_LEFT] = "left", [AVCHROMA_LOC_CENTER] = "center", diff --git a/libavutil/stereo3d.c b/libavutil/stereo3d.c index a53836424d..6edcdb1796 100644 --- a/libavutil/stereo3d.c +++ b/libavutil/stereo3d.c @@ -43,7 +43,7 @@ AVStereo3D *av_stereo3d_create_side_data(AVFrame *frame) return (AVStereo3D *)side_data->data; } -static const char *stereo3d_type_names[] = { +static const char * const stereo3d_type_names[] = { [AV_STEREO3D_2D] = "2D", [AV_STEREO3D_SIDEBYSIDE] = "side by side", [AV_STEREO3D_TOPBOTTOM] = "top and bottom", ====================================================================== diff --cc libavcodec/aaccoder.c index abd0b9c636,a654844cd0..baa82489b1 --- a/libavcodec/aaccoder.c +++ b/libavcodec/aaccoder.c @@@ -894,8 -1112,14 +894,8 @@@ static void search_for_ms(AACEncContex } } - AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = { -const AACCoefficientsEncoder ff_aac_coders[] = { - { - search_for_quantizers_faac, - encode_window_bands_info, - quantize_and_encode_band, - search_for_ms, - }, - { ++const AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = { + [AAC_CODER_ANMR] = { search_for_quantizers_anmr, encode_window_bands_info, quantize_and_encode_band, diff --cc libavcodec/aacenc.h index 9d244fd1f5,f77b2002e4..ea2d3b9628 --- a/libavcodec/aacenc.h +++ b/libavcodec/aacenc.h @@@ -57,38 -41,13 +57,38 @@@ typedef struct AACCoefficientsEncoder SingleChannelElement *sce, const float lambda); void (*encode_window_bands_info)(struct AACEncContext *s, SingleChannelElement *sce, int win, int group_len, const float lambda); - void (*quantize_and_encode_band)(struct AACEncContext *s, PutBitContext *pb, const float *in, int size, - int scale_idx, int cb, const float lambda); - void (*search_for_ms)(struct AACEncContext *s, ChannelElement *cpe, const float lambda); + void (*quantize_and_encode_band)(struct AACEncContext *s, PutBitContext *pb, const float *in, float *out, int size, + int scale_idx, int cb, const float lambda, int rtz); + void (*encode_tns_info)(struct AACEncContext *s, SingleChannelElement *sce); + void (*encode_ltp_info)(struct AACEncContext *s, SingleChannelElement *sce, int common_window); + void (*encode_main_pred)(struct AACEncContext *s, SingleChannelElement *sce); + void (*adjust_common_pred)(struct AACEncContext *s, ChannelElement *cpe); + void (*adjust_common_ltp)(struct AACEncContext *s, ChannelElement *cpe); + void (*apply_main_pred)(struct AACEncContext *s, SingleChannelElement *sce); + void (*apply_tns_filt)(struct AACEncContext *s, SingleChannelElement *sce); + void (*update_ltp)(struct AACEncContext *s, SingleChannelElement *sce); + void (*ltp_insert_new_frame)(struct AACEncContext *s); + void (*set_special_band_scalefactors)(struct AACEncContext *s, SingleChannelElement *sce); + void (*search_for_pns)(struct AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce); + void (*mark_pns)(struct AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce); + void (*search_for_tns)(struct AACEncContext *s, SingleChannelElement *sce); + void (*search_for_ltp)(struct AACEncContext *s, SingleChannelElement *sce, int common_window); + void (*search_for_ms)(struct AACEncContext *s, ChannelElement *cpe); + void (*search_for_is)(struct AACEncContext *s, AVCodecContext *avctx, ChannelElement *cpe); + void (*search_for_pred)(struct AACEncContext *s, SingleChannelElement *sce); } AACCoefficientsEncoder; - extern AACCoefficientsEncoder ff_aac_coders[]; + extern const AACCoefficientsEncoder ff_aac_coders[]; +typedef struct AACQuantizeBandCostCacheEntry { + float rd; + float energy; + int bits; + char cb; + char rtz; + uint16_t generation; +} AACQuantizeBandCostCacheEntry; + /** * AAC encoder context */ @@@ -110,15 -67,10 +110,15 @@@ typedef struct AACEncContext ChannelElement *cpe; ///< channel elements FFPsyContext psy; struct FFPsyPreprocessContext* psypp; - AACCoefficientsEncoder *coder; + const AACCoefficientsEncoder *coder; - int cur_channel; - int last_frame; + int cur_channel; ///< current channel for coder context + int random_state; float lambda; + int last_frame_pb_count; ///< number of bits for the previous frame + float lambda_sum; ///< sum(lambda), for Qvg reporting + int lambda_count; ///< count(lambda), for Qvg reporting + enum RawDataBlockType cur_type; ///< channel group type cur_channel belongs to + AudioFrameQueue afq; DECLARE_ALIGNED(16, int, qcoefs)[96]; ///< quantized coefficients DECLARE_ALIGNED(32, float, scoefs)[1024]; ///< scaled coefficients diff --cc libavcodec/opus_silk.c index dbf6756864,e5d1a9923d..3c9c849c21 --- a/libavcodec/opus_silk.c +++ b/libavcodec/opus_silk.c @@@ -599,15 -1323,15 +599,15 @@@ static void silk_decode_frame(SilkConte if (lag_absolute) { /* primary lag is coded absolute */ int highbits, lowbits; - static const uint16_t *model[] = { + static const uint16_t * const model[] = { - silk_model_pitch_lowbits_nb, silk_model_pitch_lowbits_mb, - silk_model_pitch_lowbits_wb + ff_silk_model_pitch_lowbits_nb, ff_silk_model_pitch_lowbits_mb, + ff_silk_model_pitch_lowbits_wb }; - highbits = opus_rc_getsymbol(rc, silk_model_pitch_highbits); - lowbits = opus_rc_getsymbol(rc, model[s->bandwidth]); + highbits = ff_opus_rc_dec_cdf(rc, ff_silk_model_pitch_highbits); + lowbits = ff_opus_rc_dec_cdf(rc, model[s->bandwidth]); - primarylag = silk_pitch_min_lag[s->bandwidth] + - highbits*silk_pitch_scale[s->bandwidth] + lowbits; + primarylag = ff_silk_pitch_min_lag[s->bandwidth] + + highbits*ff_silk_pitch_scale[s->bandwidth] + lowbits; } frame->primarylag = primarylag; @@@ -626,21 -1350,21 +626,21 @@@ for (i = 0; i < s->subframes; i++) sf[i].pitchlag = av_clip(primarylag + offsets[i], - silk_pitch_min_lag[s->bandwidth], - silk_pitch_max_lag[s->bandwidth]); + ff_silk_pitch_min_lag[s->bandwidth], + ff_silk_pitch_max_lag[s->bandwidth]); /* obtain LTP filter coefficients */ - ltpfilter = opus_rc_getsymbol(rc, silk_model_ltp_filter); + ltpfilter = ff_opus_rc_dec_cdf(rc, ff_silk_model_ltp_filter); for (i = 0; i < s->subframes; i++) { int index, j; - static const uint16_t *filter_sel[] = { + static const uint16_t * const filter_sel[] = { - silk_model_ltp_filter0_sel, silk_model_ltp_filter1_sel, - silk_model_ltp_filter2_sel + ff_silk_model_ltp_filter0_sel, ff_silk_model_ltp_filter1_sel, + ff_silk_model_ltp_filter2_sel }; - static const int8_t (*filter_taps[])[5] = { + static const int8_t (* const filter_taps[])[5] = { - silk_ltp_filter0_taps, silk_ltp_filter1_taps, silk_ltp_filter2_taps + ff_silk_ltp_filter0_taps, ff_silk_ltp_filter1_taps, ff_silk_ltp_filter2_taps }; - index = opus_rc_getsymbol(rc, filter_sel[ltpfilter]); + index = ff_opus_rc_dec_cdf(rc, filter_sel[ltpfilter]); for (j = 0; j < 5; j++) sf[i].ltptaps[j] = filter_taps[ltpfilter][index][j] / 128.0f; } diff --cc libavcodec/vp9block.c index d4ace149a5,35c9c27c53..1c3f7a7225 --- a/libavcodec/vp9block.c +++ b/libavcodec/vp9block.c @@@ -921,62 -827,23 +921,62 @@@ skip_eob return i; } -static int decode_coeffs(AVCodecContext *avctx) +static int decode_coeffs_b_8bpp(VP9TileData *td, int16_t *coef, int n_coeffs, + unsigned (*cnt)[6][3], unsigned (*eob)[6][2], + uint8_t (*p)[6][11], int nnz, const int16_t *scan, + const int16_t (*nb)[2], const int16_t *band_counts, + int16_t *qmul) +{ + return decode_coeffs_b_generic(td->c, coef, n_coeffs, 0, 1, 8, cnt, eob, p, + nnz, scan, nb, band_counts, qmul); +} + +static int decode_coeffs_b32_8bpp(VP9TileData *td, int16_t *coef, int n_coeffs, + unsigned (*cnt)[6][3], unsigned (*eob)[6][2], + uint8_t (*p)[6][11], int nnz, const int16_t *scan, + const int16_t (*nb)[2], const int16_t *band_counts, + int16_t *qmul) +{ + return decode_coeffs_b_generic(td->c, coef, n_coeffs, 1, 1, 8, cnt, eob, p, + nnz, scan, nb, band_counts, qmul); +} + +static int decode_coeffs_b_16bpp(VP9TileData *td, int16_t *coef, int n_coeffs, + unsigned (*cnt)[6][3], unsigned (*eob)[6][2], + uint8_t (*p)[6][11], int nnz, const int16_t *scan, + const int16_t (*nb)[2], const int16_t *band_counts, + int16_t *qmul) +{ + return decode_coeffs_b_generic(td->c, coef, n_coeffs, 0, 0, td->s->s.h.bpp, cnt, eob, p, + nnz, scan, nb, band_counts, qmul); +} + +static int decode_coeffs_b32_16bpp(VP9TileData *td, int16_t *coef, int n_coeffs, + unsigned (*cnt)[6][3], unsigned (*eob)[6][2], + uint8_t (*p)[6][11], int nnz, const int16_t *scan, + const int16_t (*nb)[2], const int16_t *band_counts, + int16_t *qmul) { - VP9Context *s = avctx->priv_data; - VP9Block *b = s->b; - int row = b->row, col = b->col; + return decode_coeffs_b_generic(td->c, coef, n_coeffs, 1, 0, td->s->s.h.bpp, cnt, eob, p, + nnz, scan, nb, band_counts, qmul); +} + +static av_always_inline int decode_coeffs(VP9TileData *td, int is8bitsperpixel) +{ + VP9Context *s = td->s; + VP9Block *b = td->b; + int row = td->row, col = td->col; uint8_t (*p)[6][11] = s->prob.coef[b->tx][0 /* y */][!b->intra]; - unsigned (*c)[6][3] = s->counts.coef[b->tx][0 /* y */][!b->intra]; - unsigned (*e)[6][2] = s->counts.eob[b->tx][0 /* y */][!b->intra]; - int w4 = bwh_tab[1][b->bs][0] << 1, h4 = bwh_tab[1][b->bs][1] << 1; + unsigned (*c)[6][3] = td->counts.coef[b->tx][0 /* y */][!b->intra]; + unsigned (*e)[6][2] = td->counts.eob[b->tx][0 /* y */][!b->intra]; + int w4 = ff_vp9_bwh_tab[1][b->bs][0] << 1, h4 = ff_vp9_bwh_tab[1][b->bs][1] << 1; int end_x = FFMIN(2 * (s->cols - col), w4); int end_y = FFMIN(2 * (s->rows - row), h4); - int n, pl, x, y, step1d = 1 << b->tx, step = 1 << (b->tx * 2); - int uvstep1d = 1 << b->uvtx, uvstep = 1 << (b->uvtx * 2), ret; - int16_t (*qmul)[2] = s->segmentation.feat[b->seg_id].qmul; - int tx = 4 * s->lossless + b->tx; + int n, pl, x, y, ret; + int16_t (*qmul)[2] = s->s.h.segmentation.feat[b->seg_id].qmul; + int tx = 4 * s->s.h.lossless + b->tx; const int16_t * const *yscans = ff_vp9_scans[tx]; - const int16_t (* const *ynbs)[2] = ff_vp9_scans_nb[tx]; + const int16_t (* const * ynbs)[2] = ff_vp9_scans_nb[tx]; const int16_t *uvscan = ff_vp9_scans[b->uvtx][DCT_DCT]; const int16_t (*uvnb)[2] = ff_vp9_scans_nb[b->uvtx][DCT_DCT]; uint8_t *a = &s->above_y_nnz_ctx[col * 2]; diff --cc libavcodec/x86/mlpdsp_init.c index 7f5e6b11d5,0000000000..cb90ca24f0 mode 100644,000000..100644 --- a/libavcodec/x86/mlpdsp_init.c +++ b/libavcodec/x86/mlpdsp_init.c @@@ -1,204 -1,0 +1,204 @@@ +/* + * MLP DSP functions x86-optimized + * Copyright (c) 2009 Ramiro Polla + * + * 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 "libavutil/attributes.h" +#include "libavutil/cpu.h" +#include "libavutil/x86/asm.h" +#include "libavutil/x86/cpu.h" +#include "libavcodec/mlpdsp.h" +#include "libavcodec/mlp.h" + +#define REMATRIX_CHANNEL_FUNC(opt) \ +void ff_mlp_rematrix_channel_##opt(int32_t *samples, \ + const int32_t *coeffs, \ + const uint8_t *bypassed_lsbs, \ + const int8_t *noise_buffer, \ + int index, \ + unsigned int dest_ch, \ + uint16_t blockpos, \ + unsigned int maxchan, \ + int matrix_noise_shift, \ + int access_unit_size_pow2, \ + int32_t mask); + +REMATRIX_CHANNEL_FUNC(sse4) +REMATRIX_CHANNEL_FUNC(avx2_bmi2) + +#if HAVE_7REGS && HAVE_INLINE_ASM && HAVE_INLINE_ASM_NONLOCAL_LABELS + +extern char ff_mlp_firorder_8; +extern char ff_mlp_firorder_7; +extern char ff_mlp_firorder_6; +extern char ff_mlp_firorder_5; +extern char ff_mlp_firorder_4; +extern char ff_mlp_firorder_3; +extern char ff_mlp_firorder_2; +extern char ff_mlp_firorder_1; +extern char ff_mlp_firorder_0; + +extern char ff_mlp_iirorder_4; +extern char ff_mlp_iirorder_3; +extern char ff_mlp_iirorder_2; +extern char ff_mlp_iirorder_1; +extern char ff_mlp_iirorder_0; + +static const void * const firtable[9] = { &ff_mlp_firorder_0, &ff_mlp_firorder_1, - &ff_mlp_firorder_2, &ff_mlp_firorder_3, - &ff_mlp_firorder_4, &ff_mlp_firorder_5, - &ff_mlp_firorder_6, &ff_mlp_firorder_7, - &ff_mlp_firorder_8 }; ++ &ff_mlp_firorder_2, &ff_mlp_firorder_3, ++ &ff_mlp_firorder_4, &ff_mlp_firorder_5, ++ &ff_mlp_firorder_6, &ff_mlp_firorder_7, ++ &ff_mlp_firorder_8 }; +static const void * const iirtable[5] = { &ff_mlp_iirorder_0, &ff_mlp_iirorder_1, - &ff_mlp_iirorder_2, &ff_mlp_iirorder_3, - &ff_mlp_iirorder_4 }; ++ &ff_mlp_iirorder_2, &ff_mlp_iirorder_3, ++ &ff_mlp_iirorder_4 }; + +#if ARCH_X86_64 + +#define MLPMUL(label, offset, offs, offc) \ + LABEL_MANGLE(label)": \n\t" \ + "movslq "offset"+"offs"(%0), %%rax\n\t" \ + "movslq "offset"+"offc"(%1), %%rdx\n\t" \ + "imul %%rdx, %%rax\n\t" \ + "add %%rax, %%rsi\n\t" + +#define FIRMULREG(label, offset, firc)\ + LABEL_MANGLE(label)": \n\t" \ + "movslq "#offset"(%0), %%rax\n\t" \ + "imul %"#firc", %%rax\n\t" \ + "add %%rax, %%rsi\n\t" + +#define CLEAR_ACCUM \ + "xor %%rsi, %%rsi\n\t" + +#define SHIFT_ACCUM \ + "shr %%cl, %%rsi\n\t" + +#define ACCUM "%%rdx" +#define RESULT "%%rsi" +#define RESULT32 "%%esi" + +#else /* if ARCH_X86_32 */ + +#define MLPMUL(label, offset, offs, offc) \ + LABEL_MANGLE(label)": \n\t" \ + "mov "offset"+"offs"(%0), %%eax\n\t" \ + "imull "offset"+"offc"(%1) \n\t" \ + "add %%eax , %%esi\n\t" \ + "adc %%edx , %%ecx\n\t" + +#define FIRMULREG(label, offset, firc) \ + MLPMUL(label, #offset, "0", "0") + +#define CLEAR_ACCUM \ + "xor %%esi, %%esi\n\t" \ + "xor %%ecx, %%ecx\n\t" + +#define SHIFT_ACCUM \ + "mov %%ecx, %%edx\n\t" \ + "mov %%esi, %%eax\n\t" \ + "movzbl %7 , %%ecx\n\t" \ + "shrd %%cl, %%edx, %%eax\n\t" \ + +#define ACCUM "%%edx" +#define RESULT "%%eax" +#define RESULT32 "%%eax" + +#endif /* !ARCH_X86_64 */ + +#define BINC AV_STRINGIFY(4* MAX_CHANNELS) +#define IOFFS AV_STRINGIFY(4*(MAX_FIR_ORDER + MAX_BLOCKSIZE)) +#define IOFFC AV_STRINGIFY(4* MAX_FIR_ORDER) + +#define FIRMUL(label, offset) MLPMUL(label, #offset, "0", "0") +#define IIRMUL(label, offset) MLPMUL(label, #offset, IOFFS, IOFFC) + +static void mlp_filter_channel_x86(int32_t *state, const int32_t *coeff, + int firorder, int iirorder, + unsigned int filter_shift, int32_t mask, + int blocksize, int32_t *sample_buffer) +{ + const void *firjump = firtable[firorder]; + const void *iirjump = iirtable[iirorder]; + + blocksize = -blocksize; + + __asm__ volatile( + "1: \n\t" + CLEAR_ACCUM + "jmp *%5 \n\t" + FIRMUL (ff_mlp_firorder_8, 0x1c ) + FIRMUL (ff_mlp_firorder_7, 0x18 ) + FIRMUL (ff_mlp_firorder_6, 0x14 ) + FIRMUL (ff_mlp_firorder_5, 0x10 ) + FIRMUL (ff_mlp_firorder_4, 0x0c ) + FIRMUL (ff_mlp_firorder_3, 0x08 ) + FIRMUL (ff_mlp_firorder_2, 0x04 ) + FIRMULREG(ff_mlp_firorder_1, 0x00, 8) + LABEL_MANGLE(ff_mlp_firorder_0)":\n\t" + "jmp *%6 \n\t" + IIRMUL (ff_mlp_iirorder_4, 0x0c ) + IIRMUL (ff_mlp_iirorder_3, 0x08 ) + IIRMUL (ff_mlp_iirorder_2, 0x04 ) + IIRMUL (ff_mlp_iirorder_1, 0x00 ) + LABEL_MANGLE(ff_mlp_iirorder_0)":\n\t" + SHIFT_ACCUM + "mov "RESULT" ,"ACCUM" \n\t" + "add (%2) ,"RESULT" \n\t" + "and %4 ,"RESULT" \n\t" + "sub $4 , %0 \n\t" + "mov "RESULT32", (%0) \n\t" + "mov "RESULT32", (%2) \n\t" + "add $"BINC" , %2 \n\t" + "sub "ACCUM" ,"RESULT" \n\t" + "mov "RESULT32","IOFFS"(%0) \n\t" + "incl %3 \n\t" + "js 1b \n\t" + : /* 0*/"+r"(state), + /* 1*/"+r"(coeff), + /* 2*/"+r"(sample_buffer), +#if ARCH_X86_64 + /* 3*/"+r"(blocksize) + : /* 4*/"r"((x86_reg)mask), /* 5*/"r"(firjump), + /* 6*/"r"(iirjump) , /* 7*/"c"(filter_shift) + , /* 8*/"r"((int64_t)coeff[0]) + : "rax", "rdx", "rsi" +#else /* ARCH_X86_32 */ + /* 3*/"+m"(blocksize) + : /* 4*/"m"( mask), /* 5*/"m"(firjump), + /* 6*/"m"(iirjump) , /* 7*/"m"(filter_shift) + : "eax", "edx", "esi", "ecx" +#endif /* !ARCH_X86_64 */ + ); +} + +#endif /* HAVE_7REGS && HAVE_INLINE_ASM */ + +av_cold void ff_mlpdsp_init_x86(MLPDSPContext *c) +{ + int cpu_flags = av_get_cpu_flags(); +#if HAVE_7REGS && HAVE_INLINE_ASM && HAVE_INLINE_ASM_NONLOCAL_LABELS + if (INLINE_MMX(cpu_flags)) + c->mlp_filter_channel = mlp_filter_channel_x86; +#endif + if (ARCH_X86_64 && EXTERNAL_SSE4(cpu_flags)) + c->mlp_rematrix_channel = ff_mlp_rematrix_channel_sse4; + if (ARCH_X86_64 && EXTERNAL_AVX2_FAST(cpu_flags) && cpu_flags & AV_CPU_FLAG_BMI2) + c->mlp_rematrix_channel = ff_mlp_rematrix_channel_avx2_bmi2; +} diff --cc libavformat/hls.c index 0995345bbf,c9da4e30ec..786934af03 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@@ -1498,9 -477,8 +1498,9 @@@ static int select_cur_seq_no(HLSContex static int save_avio_options(AVFormatContext *s) { HLSContext *c = s->priv_data; - static const char *opts[] = { - static const char * const opts[] = { "headers", "user_agent", NULL }; - const char * const *opt = opts; ++ static const char * const opts[] = { + "headers", "http_proxy", "user_agent", "user-agent", "cookies", NULL }; - const char **opt = opts; ++ const char * const * opt = opts; uint8_t *buf; int ret = 0; diff --cc libavformat/mxfdec.c index 476d284c96,cf4931e731..1855f95d79 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@@ -1201,10 -978,10 +1201,10 @@@ static const MXFCodecUL mxf_sound_essen static const MXFCodecUL mxf_data_essence_container_uls[] = { { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, 0 }, - { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, AV_CODEC_ID_NONE }, + { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE }, }; - static const char* const mxf_data_essence_descriptor[] = { + static const char * const mxf_data_essence_descriptor[] = { "vbi_vanc_smpte_436M", }; diff --cc libavutil/pixdesc.c index b39afe3758,d69eeea9de..2cfab89c03 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@@ -2252,7 -1770,7 +2252,7 @@@ static const char * const color_range_n [AVCOL_RANGE_JPEG] = "pc", }; - static const char *color_primaries_names[AVCOL_PRI_NB] = { -static const char * const color_primaries_names[] = { ++static const char * const color_primaries_names[AVCOL_PRI_NB] = { [AVCOL_PRI_RESERVED0] = "reserved", [AVCOL_PRI_BT709] = "bt709", [AVCOL_PRI_UNSPECIFIED] = "unknown", @@@ -2304,12 -1822,9 +2304,12 @@@ static const char * const color_space_n [AVCOL_SPC_BT2020_NCL] = "bt2020nc", [AVCOL_SPC_BT2020_CL] = "bt2020c", [AVCOL_SPC_SMPTE2085] = "smpte2085", + [AVCOL_SPC_CHROMA_DERIVED_NCL] = "chroma-derived-nc", + [AVCOL_SPC_CHROMA_DERIVED_CL] = "chroma-derived-c", + [AVCOL_SPC_ICTCP] = "ictcp", }; - static const char *chroma_location_names[] = { + static const char * const chroma_location_names[] = { [AVCHROMA_LOC_UNSPECIFIED] = "unspecified", [AVCHROMA_LOC_LEFT] = "left", [AVCHROMA_LOC_CENTER] = "center", _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog