| @@ -479,7 +479,7 @@ version 0.5: | |||||
| - MXF demuxer | - MXF demuxer | ||||
| - VC-1/WMV3/WMV9 video decoder | - VC-1/WMV3/WMV9 video decoder | ||||
| - MacIntel support | - MacIntel support | ||||
| - AVISynth support | |||||
| - AviSynth support | |||||
| - VMware video decoder | - VMware video decoder | ||||
| - VP5 video decoder | - VP5 video decoder | ||||
| - VP6 video decoder | - VP6 video decoder | ||||
| @@ -847,7 +847,8 @@ static void video_audio_display(VideoState *s) | |||||
| } | } | ||||
| av_rdft_calc(s->rdft, data[ch]); | av_rdft_calc(s->rdft, data[ch]); | ||||
| } | } | ||||
| // least efficient way to do this, we should of course directly access it but its more than fast enough | |||||
| /* Least efficient way to do this, we should of course | |||||
| * directly access it but it is more than fast enough. */ | |||||
| for (y = 0; y < s->height; y++) { | for (y = 0; y < s->height; y++) { | ||||
| double w = 1 / sqrt(nb_freq); | double w = 1 / sqrt(nb_freq); | ||||
| int a = sqrt(w * sqrt(data[0][2 * y + 0] * data[0][2 * y + 0] + data[0][2 * y + 1] * data[0][2 * y + 1])); | int a = sqrt(w * sqrt(data[0][2 * y + 0] * data[0][2 * y + 0] + data[0][2 * y + 1] * data[0][2 * y + 1])); | ||||
| @@ -173,7 +173,7 @@ Individual component options: | |||||
| --disable-filters disable all filters | --disable-filters disable all filters | ||||
| External library support: | External library support: | ||||
| --enable-avisynth enable reading of AVISynth script files [no] | |||||
| --enable-avisynth enable reading of AviSynth script files [no] | |||||
| --enable-bzlib enable bzlib [autodetect] | --enable-bzlib enable bzlib [autodetect] | ||||
| --enable-frei0r enable frei0r video filtering | --enable-frei0r enable frei0r video filtering | ||||
| --enable-gnutls enable gnutls [no] | --enable-gnutls enable gnutls [no] | ||||
| @@ -202,8 +202,8 @@ Just create an "input.avs" text file with this single line ... | |||||
| avconv -i input.avs | avconv -i input.avs | ||||
| @end example | @end example | ||||
| For ANY other help on Avisynth, please visit the | |||||
| @uref{http://www.avisynth.org/, Avisynth homepage}. | |||||
| For ANY other help on AviSynth, please visit the | |||||
| @uref{http://www.avisynth.org/, AviSynth homepage}. | |||||
| @section How can I join video files? | @section How can I join video files? | ||||
| @@ -157,7 +157,7 @@ typedef struct LongTermPrediction { | |||||
| typedef struct IndividualChannelStream { | typedef struct IndividualChannelStream { | ||||
| uint8_t max_sfb; ///< number of scalefactor bands per group | uint8_t max_sfb; ///< number of scalefactor bands per group | ||||
| enum WindowSequence window_sequence[2]; | enum WindowSequence window_sequence[2]; | ||||
| uint8_t use_kb_window[2]; ///< If set, use Kaiser-Bessel window, otherwise use a sinus window. | |||||
| uint8_t use_kb_window[2]; ///< If set, use Kaiser-Bessel window, otherwise use a sine window. | |||||
| int num_window_groups; | int num_window_groups; | ||||
| uint8_t group_len[8]; | uint8_t group_len[8]; | ||||
| LongTermPrediction ltp; | LongTermPrediction ltp; | ||||
| @@ -230,7 +230,7 @@ static void memset_float(float *buf, float val, int size) | |||||
| * Evaluate a single LPC amplitude spectrum envelope coefficient from the line | * Evaluate a single LPC amplitude spectrum envelope coefficient from the line | ||||
| * spectrum pairs. | * spectrum pairs. | ||||
| * | * | ||||
| * @param lsp a vector of the cosinus of the LSP values | |||||
| * @param lsp a vector of the cosine of the LSP values | |||||
| * @param cos_val cos(PI*i/N) where i is the index of the LPC amplitude | * @param cos_val cos(PI*i/N) where i is the index of the LPC amplitude | ||||
| * @param order the order of the LSP (and the size of the *lsp buffer). Must | * @param order the order of the LSP (and the size of the *lsp buffer). Must | ||||
| * be a multiple of four. | * be a multiple of four. | ||||
| @@ -302,9 +302,9 @@ static inline float get_cos(int idx, int part, const float *cos_tab, int size) | |||||
| * unexplained condition. | * unexplained condition. | ||||
| * | * | ||||
| * @param step the size of a block "siiiibiiii" | * @param step the size of a block "siiiibiiii" | ||||
| * @param in the cosinus of the LSP data | |||||
| * @param part is 0 for 0...PI (positive cossinus values) and 1 for PI...2PI | |||||
| * (negative cossinus values) | |||||
| * @param in the cosine of the LSP data | |||||
| * @param part is 0 for 0...PI (positive cosine values) and 1 for PI...2PI | |||||
| * (negative cosine values) | |||||
| * @param size the size of the whole output | * @param size the size of the whole output | ||||
| */ | */ | ||||
| static inline void eval_lpcenv_or_interp(TwinContext *tctx, | static inline void eval_lpcenv_or_interp(TwinContext *tctx, | ||||
| @@ -304,7 +304,7 @@ av_cold int ff_wma_init(AVCodecContext *avctx, int flags2) | |||||
| } | } | ||||
| #endif | #endif | ||||
| /* init MDCT windows : simple sinus window */ | |||||
| /* init MDCT windows : simple sine window */ | |||||
| for (i = 0; i < s->nb_block_sizes; i++) { | for (i = 0; i < s->nb_block_sizes; i++) { | ||||
| ff_init_ff_sine_windows(s->frame_len_bits - i); | ff_init_ff_sine_windows(s->frame_len_bits - i); | ||||
| s->windows[i] = ff_sine_windows[s->frame_len_bits - i]; | s->windows[i] = ff_sine_windows[s->frame_len_bits - i]; | ||||
| @@ -125,7 +125,7 @@ static VLC vec4_vlc; ///< 4 coefficients per symbol | |||||
| static VLC vec2_vlc; ///< 2 coefficients per symbol | static VLC vec2_vlc; ///< 2 coefficients per symbol | ||||
| static VLC vec1_vlc; ///< 1 coefficient per symbol | static VLC vec1_vlc; ///< 1 coefficient per symbol | ||||
| static VLC coef_vlc[2]; ///< coefficient run length vlc codes | static VLC coef_vlc[2]; ///< coefficient run length vlc codes | ||||
| static float sin64[33]; ///< sinus table for decorrelation | |||||
| static float sin64[33]; ///< sine table for decorrelation | |||||
| /** | /** | ||||
| * @brief frame specific decoder context for a single channel | * @brief frame specific decoder context for a single channel | ||||
| @@ -449,7 +449,7 @@ static av_cold int decode_init(AVCodecContext *avctx) | |||||
| 1.0 / (1 << (WMAPRO_BLOCK_MIN_BITS + i - 1)) | 1.0 / (1 << (WMAPRO_BLOCK_MIN_BITS + i - 1)) | ||||
| / (1 << (s->bits_per_sample - 1))); | / (1 << (s->bits_per_sample - 1))); | ||||
| /** init MDCT windows: simple sinus window */ | |||||
| /** init MDCT windows: simple sine window */ | |||||
| for (i = 0; i < WMAPRO_BLOCK_SIZES; i++) { | for (i = 0; i < WMAPRO_BLOCK_SIZES; i++) { | ||||
| const int win_idx = WMAPRO_BLOCK_MAX_BITS - i; | const int win_idx = WMAPRO_BLOCK_MAX_BITS - i; | ||||
| ff_init_ff_sine_windows(win_idx); | ff_init_ff_sine_windows(win_idx); | ||||
| @@ -620,7 +620,7 @@ static void calc_input_response(WMAVoiceContext *s, float *lpcs, | |||||
| } | } | ||||
| /* calculate the Hilbert transform of the gains, which we do (since this | /* calculate the Hilbert transform of the gains, which we do (since this | ||||
| * is a sinus input) by doing a phase shift (in theory, H(sin())=cos()). | |||||
| * is a sine input) by doing a phase shift (in theory, H(sin())=cos()). | |||||
| * Hilbert_Transform(RDFT(x)) = Laplace_Transform(x), which calculates the | * Hilbert_Transform(RDFT(x)) = Laplace_Transform(x), which calculates the | ||||
| * "moment" of the LPCs in this filter. */ | * "moment" of the LPCs in this filter. */ | ||||
| s->dct.dct_calc(&s->dct, lpcs); | s->dct.dct_calc(&s->dct, lpcs); | ||||
| @@ -1,5 +1,5 @@ | |||||
| /* | /* | ||||
| * AVISynth support | |||||
| * AviSynth support | |||||
| * Copyright (c) 2006 DivX, Inc. | * Copyright (c) 2006 DivX, Inc. | ||||
| * | * | ||||
| * This file is part of Libav. | * This file is part of Libav. | ||||
| @@ -32,29 +32,29 @@ typedef struct { | |||||
| DWORD read; | DWORD read; | ||||
| LONG chunck_size; | LONG chunck_size; | ||||
| LONG chunck_samples; | LONG chunck_samples; | ||||
| } AVISynthStream; | |||||
| } AviSynthStream; | |||||
| typedef struct { | typedef struct { | ||||
| PAVIFILE file; | PAVIFILE file; | ||||
| AVISynthStream *streams; | AVISynthStream *streams; | ||||
| int nb_streams; | int nb_streams; | ||||
| int next_stream; | int next_stream; | ||||
| } AVISynthContext; | |||||
| } AviSynthContext; | |||||
| static int avisynth_read_header(AVFormatContext *s) | static int avisynth_read_header(AVFormatContext *s) | ||||
| { | { | ||||
| AVISynthContext *avs = s->priv_data; | |||||
| AviSynthContext *avs = s->priv_data; | |||||
| HRESULT res; | HRESULT res; | ||||
| AVIFILEINFO info; | AVIFILEINFO info; | ||||
| DWORD id; | DWORD id; | ||||
| AVStream *st; | AVStream *st; | ||||
| AVISynthStream *stream; | |||||
| AviSynthStream *stream; | |||||
| wchar_t filename_wchar[1024] = { 0 }; | wchar_t filename_wchar[1024] = { 0 }; | ||||
| char filename_char[1024] = { 0 }; | char filename_char[1024] = { 0 }; | ||||
| AVIFileInit(); | AVIFileInit(); | ||||
| /* avisynth can't accept UTF-8 filename */ | |||||
| /* AviSynth cannot accept UTF-8 file names. */ | |||||
| MultiByteToWideChar(CP_UTF8, 0, s->filename, -1, filename_wchar, 1024); | MultiByteToWideChar(CP_UTF8, 0, s->filename, -1, filename_wchar, 1024); | ||||
| WideCharToMultiByte(CP_THREAD_ACP, 0, filename_wchar, -1, filename_char, 1024, NULL, NULL); | WideCharToMultiByte(CP_THREAD_ACP, 0, filename_wchar, -1, filename_char, 1024, NULL, NULL); | ||||
| res = AVIFileOpen(&avs->file, filename_char, OF_READ|OF_SHARE_DENY_WRITE, NULL); | res = AVIFileOpen(&avs->file, filename_char, OF_READ|OF_SHARE_DENY_WRITE, NULL); | ||||
| @@ -73,7 +73,7 @@ static int avisynth_read_header(AVFormatContext *s) | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| avs->streams = av_mallocz(info.dwStreams * sizeof(AVISynthStream)); | |||||
| avs->streams = av_mallocz(info.dwStreams * sizeof(AviSynthStream)); | |||||
| for (id=0; id<info.dwStreams; id++) | for (id=0; id<info.dwStreams; id++) | ||||
| { | { | ||||
| @@ -154,9 +154,9 @@ static int avisynth_read_header(AVFormatContext *s) | |||||
| static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt) | static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt) | ||||
| { | { | ||||
| AVISynthContext *avs = s->priv_data; | |||||
| AviSynthContext *avs = s->priv_data; | |||||
| HRESULT res; | HRESULT res; | ||||
| AVISynthStream *stream; | |||||
| AviSynthStream *stream; | |||||
| int stream_id = avs->next_stream; | int stream_id = avs->next_stream; | ||||
| LONG read_size; | LONG read_size; | ||||
| @@ -188,7 +188,7 @@ static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
| static int avisynth_read_close(AVFormatContext *s) | static int avisynth_read_close(AVFormatContext *s) | ||||
| { | { | ||||
| AVISynthContext *avs = s->priv_data; | |||||
| AviSynthContext *avs = s->priv_data; | |||||
| int i; | int i; | ||||
| for (i=0;i<avs->nb_streams;i++) | for (i=0;i<avs->nb_streams;i++) | ||||
| @@ -204,7 +204,7 @@ static int avisynth_read_close(AVFormatContext *s) | |||||
| static int avisynth_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int flags) | static int avisynth_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int flags) | ||||
| { | { | ||||
| AVISynthContext *avs = s->priv_data; | |||||
| AviSynthContext *avs = s->priv_data; | |||||
| int stream_id; | int stream_id; | ||||
| for (stream_id = 0; stream_id < avs->nb_streams; stream_id++) | for (stream_id = 0; stream_id < avs->nb_streams; stream_id++) | ||||
| @@ -217,8 +217,8 @@ static int avisynth_read_seek(AVFormatContext *s, int stream_index, int64_t pts, | |||||
| AVInputFormat ff_avisynth_demuxer = { | AVInputFormat ff_avisynth_demuxer = { | ||||
| .name = "avisynth", | .name = "avisynth", | ||||
| .long_name = NULL_IF_CONFIG_SMALL("AVISynth"), | |||||
| .priv_data_size = sizeof(AVISynthContext), | |||||
| .long_name = NULL_IF_CONFIG_SMALL("AviSynth"), | |||||
| .priv_data_size = sizeof(AviSynthContext), | |||||
| .read_header = avisynth_read_header, | .read_header = avisynth_read_header, | ||||
| .read_packet = avisynth_read_packet, | .read_packet = avisynth_read_packet, | ||||
| .read_close = avisynth_read_close, | .read_close = avisynth_read_close, | ||||
| @@ -91,7 +91,7 @@ static void audiogen(AVLFG *rnd, void **data, enum AVSampleFormat sample_fmt, | |||||
| k = 0; | k = 0; | ||||
| /* 1 second of single freq sinus at 1000 Hz */ | |||||
| /* 1 second of single freq sine at 1000 Hz */ | |||||
| a = 0; | a = 0; | ||||
| for (i = 0; i < 1 * sample_rate && k < nb_samples; i++, k++) { | for (i = 0; i < 1 * sample_rate && k < nb_samples; i++, k++) { | ||||
| v = sin(a) * 0.30; | v = sin(a) * 0.30; | ||||
| @@ -48,7 +48,7 @@ static unsigned int myrnd(unsigned int *seed_ptr, int n) | |||||
| #define COS_TABLE_BITS 7 | #define COS_TABLE_BITS 7 | ||||
| /* integer cosinus */ | |||||
| /* integer cosine */ | |||||
| static const unsigned short cos_table[(1 << COS_TABLE_BITS) + 2] = { | static const unsigned short cos_table[(1 << COS_TABLE_BITS) + 2] = { | ||||
| 0x8000, 0x7ffe, 0x7ff6, 0x7fea, 0x7fd9, 0x7fc2, 0x7fa7, 0x7f87, | 0x8000, 0x7ffe, 0x7ff6, 0x7fea, 0x7fd9, 0x7fc2, 0x7fa7, 0x7f87, | ||||
| 0x7f62, 0x7f38, 0x7f0a, 0x7ed6, 0x7e9d, 0x7e60, 0x7e1e, 0x7dd6, | 0x7f62, 0x7f38, 0x7f0a, 0x7ed6, 0x7e9d, 0x7e60, 0x7e1e, 0x7dd6, | ||||
| @@ -180,7 +180,7 @@ int main(int argc, char **argv) | |||||
| if ((ext = strrchr(argv[1], '.')) != NULL && !strcmp(ext, ".wav")) | if ((ext = strrchr(argv[1], '.')) != NULL && !strcmp(ext, ".wav")) | ||||
| put_wav_header(sample_rate, nb_channels, 6 * sample_rate); | put_wav_header(sample_rate, nb_channels, 6 * sample_rate); | ||||
| /* 1 second of single freq sinus at 1000 Hz */ | |||||
| /* 1 second of single freq sine at 1000 Hz */ | |||||
| a = 0; | a = 0; | ||||
| for (i = 0; i < 1 * sample_rate; i++) { | for (i = 0; i < 1 * sample_rate; i++) { | ||||
| v = (int_cos(a) * 10000) >> FRAC_BITS; | v = (int_cos(a) * 10000) >> FRAC_BITS; | ||||