* qatar/master: (28 commits) mp3enc: write a xing frame containing number of frames in the file lavf: update AVStream.nb_frames when muxing. ffmpeg: remove unused variables from InputStream. doc: update ffmpeg -ar and -ac documentation to reflect reality. ffmpeg: remove pointless if (nb_input_files) ffmpeg: merge input_files_ts_offset into input_files. ffmpeg: merge input_codecs into input_streams. ffmpeg: drop AV prefixes from struct names. ffmpeg: deprecate loop_input and loop_output options gif: add loop private option. img2: add loop private option. AVOptions: in av_opt_find() don't return named constants unless unit is specified. x11grab: replace undocumented nomouse hackery with a private option. dict: extend documentation. lls: whitespace cosmetics docs: Use proper markup for a literal command line option docs: Remove a remark that isn't relevant any longer docs: Explain how to regenerate import libraries with MSVC tools docs: Mention that libraries for MSVC can be built with a cross compiler docs: Remove old docs that mention setting up a build environment with lib.exe ... Conflicts: doc/ffmpeg.texi doc/general.texi ffmpeg.c libavcodec/Makefile libavcodec/dnxhddata.c libavformat/mp3enc.c libavformat/utils.c libavutil/Makefile tests/copycooker.sh Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n0.9
| @@ -556,16 +556,19 @@ The timestamps must be specified in ascending order. | |||
| @item -aframes @var{number} | |||
| Set the number of audio frames to record. | |||
| @item -ar @var{freq} | |||
| Set the audio sampling frequency. there is no default for input streams, | |||
| for output streams it is set by default to the frequency of the input stream. | |||
| Set the audio sampling frequency. For output streams it is set by | |||
| default to the frequency of the corresponding input stream. For input | |||
| streams this option only makes sense for audio grabbing devices and raw | |||
| demuxers and is mapped to the corresponding demuxer options. | |||
| @item -ab @var{bitrate} | |||
| Set the audio bitrate in bit/s (default = 64k). | |||
| @item -aq @var{q} | |||
| Set the audio quality (codec-specific, VBR). | |||
| @item -ac @var{channels} | |||
| Set the number of audio channels. For input streams it is set by | |||
| default to 1, for output streams it is set by default to the same | |||
| number of audio channels in input. | |||
| Set the number of audio channels. For output streams it is set by | |||
| default to the number of input audio channels. For input streams | |||
| this option only makes sense for audio grabbing devices and raw demuxers | |||
| and is mapped to the corresponding demuxer options. | |||
| @item -an | |||
| Disable audio recording. | |||
| @item -acodec @var{codec} | |||
| @@ -733,9 +736,11 @@ Read input at native frame rate. Mainly used to simulate a grab device. | |||
| @item -loop_input | |||
| Loop over the input stream. Currently it works only for image | |||
| streams. This option is used for automatic FFserver testing. | |||
| This option is deprecated, use -loop. | |||
| @item -loop_output @var{number_of_times} | |||
| Repeatedly loop output for formats that support looping such as animated GIF | |||
| (0 will loop the output infinitely). | |||
| This option is deprecated, use -loop. | |||
| @item -threads @var{count} | |||
| Thread count. | |||
| @item -vsync @var{parameter} | |||
| @@ -970,7 +970,8 @@ make install | |||
| Your install path (@file{/usr/local/} by default) should now have the | |||
| necessary DLL and LIB files under the @file{bin} directory. | |||
| @end enumerate | |||
| Alternatively, build the libraries with a cross compiler, according to | |||
| the instructions below in @ref{Cross compilation for Windows with Linux}. | |||
| To use those files with MSVC++, do the same as you would do with | |||
| the static libraries, as described above. But in Step 4, | |||
| @@ -983,10 +984,7 @@ libraries (@file{libxxx.a} files) you should add the MSVC import libraries | |||
| libraries (@file{libxxx.dll.a} files), as these will give you undefined | |||
| reference errors. There should be no need for @file{libmingwex.a}, | |||
| @file{libgcc.a}, and @file{wsock32.lib}, nor any other external library | |||
| statically linked into the DLLs. The @file{bin} directory contains a bunch | |||
| of DLL files, but the ones that are actually used to run your application | |||
| are the ones with a major version number in their filenames | |||
| (i.e. @file{avcodec-51.dll}). | |||
| statically linked into the DLLs. | |||
| FFmpeg headers do not declare global data for Windows DLLs through the usual | |||
| dllexport/dllimport interface. Such data will be exported properly while | |||
| @@ -999,10 +997,41 @@ extern __declspec(dllimport) const AVPixFmtDescriptor av_pix_fmt_descriptors[]; | |||
| Note that using import libraries created by dlltool requires | |||
| the linker optimization option to be set to | |||
| "References: Keep Unreferenced Data (/OPT:NOREF)", otherwise | |||
| "References: Keep Unreferenced Data (@code{/OPT:NOREF})", otherwise | |||
| the resulting binaries will fail during runtime. This isn't | |||
| required when using import libraries generated by lib.exe. | |||
| This issue is reported upstream at | |||
| @url{http://sourceware.org/bugzilla/show_bug.cgi?id=12633}. | |||
| To create import libraries that work with the @code{/OPT:REF} option | |||
| (which is enabled by default in Release mode), follow these steps: | |||
| @enumerate | |||
| @item Open @file{Visual Studio 2005 Command Prompt}. | |||
| Alternatively, in a normal command line prompt, call @file{vcvars32.bat} | |||
| which sets up the environment variables for the Visual C++ tools | |||
| (the standard location for this file is | |||
| @file{C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat}). | |||
| @item Enter the @file{bin} directory where the created LIB and DLL files | |||
| are stored. | |||
| @item Generate new import libraries with @file{lib.exe}: | |||
| @example | |||
| lib /machine:i386 /def:..\lib\avcodec-53.def /out:avcodec.lib | |||
| lib /machine:i386 /def:..\lib\avdevice-53.def /out:avdevice.lib | |||
| lib /machine:i386 /def:..\lib\avfilter-2.def /out:avfilter.lib | |||
| lib /machine:i386 /def:..\lib\avformat-53.def /out:avformat.lib | |||
| lib /machine:i386 /def:..\lib\avutil-51.def /out:avutil.lib | |||
| lib /machine:i386 /def:..\lib\swscale-2.def /out:swscale.lib | |||
| @end example | |||
| @end enumerate | |||
| @anchor{Cross compilation for Windows with Linux} | |||
| @subsection Cross compilation for Windows with Linux | |||
| You must use the MinGW cross compilation tools available at | |||
| @@ -90,26 +90,26 @@ const char program_name[] = "ffmpeg"; | |||
| const int program_birth_year = 2000; | |||
| /* select an input stream for an output stream */ | |||
| typedef struct AVStreamMap { | |||
| typedef struct StreamMap { | |||
| int file_index; | |||
| int stream_index; | |||
| int sync_file_index; | |||
| int sync_stream_index; | |||
| } AVStreamMap; | |||
| } StreamMap; | |||
| /** | |||
| * select an input file for an output file | |||
| */ | |||
| typedef struct AVMetaDataMap { | |||
| typedef struct MetadataMap { | |||
| int file; //< file index | |||
| char type; //< type of metadata to copy -- (g)lobal, (s)tream, (c)hapter or (p)rogram | |||
| int index; //< stream/chapter/program number | |||
| } AVMetaDataMap; | |||
| } MetadataMap; | |||
| typedef struct AVChapterMap { | |||
| typedef struct ChapterMap { | |||
| int in_file; | |||
| int out_file; | |||
| } AVChapterMap; | |||
| } ChapterMap; | |||
| static const OptionDef options[]; | |||
| @@ -117,26 +117,23 @@ static const OptionDef options[]; | |||
| #define MAX_STREAMS 1024 /* arbitrary sanity check value */ | |||
| static const char *last_asked_format = NULL; | |||
| static int64_t input_files_ts_offset[MAX_FILES]; | |||
| static double *input_files_ts_scale[MAX_FILES] = {NULL}; | |||
| static AVCodec **input_codecs = NULL; | |||
| static int nb_input_codecs = 0; | |||
| static int nb_input_files_ts_scale[MAX_FILES] = {0}; | |||
| static AVFormatContext *output_files[MAX_FILES]; | |||
| static int nb_output_files = 0; | |||
| static AVStreamMap *stream_maps = NULL; | |||
| static StreamMap *stream_maps = NULL; | |||
| static int nb_stream_maps; | |||
| /* first item specifies output metadata, second is input */ | |||
| static AVMetaDataMap (*meta_data_maps)[2] = NULL; | |||
| static MetadataMap (*meta_data_maps)[2] = NULL; | |||
| static int nb_meta_data_maps; | |||
| static int metadata_global_autocopy = 1; | |||
| static int metadata_streams_autocopy = 1; | |||
| static int metadata_chapters_autocopy = 1; | |||
| static AVChapterMap *chapter_maps = NULL; | |||
| static ChapterMap *chapter_maps = NULL; | |||
| static int nb_chapter_maps; | |||
| /* indexed by output file stream index */ | |||
| @@ -261,19 +258,19 @@ static AVBitStreamFilterContext *subtitle_bitstream_filters=NULL; | |||
| #define DEFAULT_PASS_LOGFILENAME_PREFIX "ffmpeg2pass" | |||
| struct AVInputStream; | |||
| struct InputStream; | |||
| typedef struct AVOutputStream { | |||
| typedef struct OutputStream { | |||
| int file_index; /* file index */ | |||
| int index; /* stream index in the output file */ | |||
| int source_index; /* AVInputStream index */ | |||
| int source_index; /* InputStream index */ | |||
| AVStream *st; /* stream in the output file */ | |||
| int encoding_needed; /* true if encoding needed for this stream */ | |||
| int frame_number; | |||
| /* input pts and corresponding output pts | |||
| for A/V sync */ | |||
| //double sync_ipts; /* dts from the AVPacket of the demuxer in second units */ | |||
| struct AVInputStream *sync_ist; /* input stream to sync against */ | |||
| struct InputStream *sync_ist; /* input stream to sync against */ | |||
| int64_t sync_opts; /* output frame counter, could be changed to some true timestamp */ //FIXME look at frame_number | |||
| AVBitStreamFilterContext *bitstream_filters; | |||
| AVCodec *enc; | |||
| @@ -314,17 +311,17 @@ typedef struct AVOutputStream { | |||
| #endif | |||
| int sws_flags; | |||
| } AVOutputStream; | |||
| } OutputStream; | |||
| static AVOutputStream **output_streams_for_file[MAX_FILES] = { NULL }; | |||
| static OutputStream **output_streams_for_file[MAX_FILES] = { NULL }; | |||
| static int nb_output_streams_for_file[MAX_FILES] = { 0 }; | |||
| typedef struct AVInputStream { | |||
| typedef struct InputStream { | |||
| int file_index; | |||
| AVStream *st; | |||
| int discard; /* true if stream data should be discarded */ | |||
| int decoding_needed; /* true if the packets must be decoded in 'raw_fifo' */ | |||
| int64_t sample_index; /* current sample */ | |||
| AVCodec *dec; | |||
| int64_t start; /* time when read started */ | |||
| int64_t next_pts; /* synthetic pts for cases where pkt.pts | |||
| @@ -333,18 +330,15 @@ typedef struct AVInputStream { | |||
| int is_start; /* is 1 at the start and after a discontinuity */ | |||
| int showed_multi_packet_warning; | |||
| int is_past_recording_time; | |||
| #if CONFIG_AVFILTER | |||
| AVFrame *filter_frame; | |||
| int has_filter_frame; | |||
| #endif | |||
| } AVInputStream; | |||
| } InputStream; | |||
| typedef struct AVInputFile { | |||
| typedef struct InputFile { | |||
| AVFormatContext *ctx; | |||
| int eof_reached; /* true if eof reached */ | |||
| int ist_index; /* index of first stream in ist_table */ | |||
| int buffer_size; /* current total buffer size */ | |||
| } AVInputFile; | |||
| int64_t ts_offset; | |||
| } InputFile; | |||
| #if HAVE_TERMIOS_H | |||
| @@ -352,14 +346,14 @@ typedef struct AVInputFile { | |||
| static struct termios oldtty; | |||
| #endif | |||
| static AVInputStream *input_streams = NULL; | |||
| static InputStream *input_streams = NULL; | |||
| static int nb_input_streams = 0; | |||
| static AVInputFile *input_files = NULL; | |||
| static InputFile *input_files = NULL; | |||
| static int nb_input_files = 0; | |||
| #if CONFIG_AVFILTER | |||
| static int configure_video_filters(AVInputStream *ist, AVOutputStream *ost) | |||
| static int configure_video_filters(InputStream *ist, OutputStream *ost) | |||
| { | |||
| AVFilterContext *last_filter, *filter; | |||
| /** filter graph containing all filters including input & output */ | |||
| @@ -555,7 +549,6 @@ static int ffmpeg_exit(int ret) | |||
| av_free(vstats_filename); | |||
| av_free(streamid_map); | |||
| av_free(input_codecs); | |||
| av_free(stream_maps); | |||
| av_free(meta_data_maps); | |||
| @@ -678,10 +671,10 @@ static void choose_pixel_fmt(AVStream *st, AVCodec *codec) | |||
| } | |||
| } | |||
| static AVOutputStream *new_output_stream(AVFormatContext *oc, int file_idx) | |||
| static OutputStream *new_output_stream(AVFormatContext *oc, int file_idx) | |||
| { | |||
| int idx = oc->nb_streams - 1; | |||
| AVOutputStream *ost; | |||
| OutputStream *ost; | |||
| output_streams_for_file[file_idx] = | |||
| grow_array(output_streams_for_file[file_idx], | |||
| @@ -689,7 +682,7 @@ static AVOutputStream *new_output_stream(AVFormatContext *oc, int file_idx) | |||
| &nb_output_streams_for_file[file_idx], | |||
| oc->nb_streams); | |||
| ost = output_streams_for_file[file_idx][idx] = | |||
| av_mallocz(sizeof(AVOutputStream)); | |||
| av_mallocz(sizeof(OutputStream)); | |||
| if (!ost) { | |||
| fprintf(stderr, "Could not alloc output stream\n"); | |||
| ffmpeg_exit(1); | |||
| @@ -759,9 +752,9 @@ static int read_ffserver_streams(AVFormatContext *s, const char *filename) | |||
| } | |||
| static double | |||
| get_sync_ipts(const AVOutputStream *ost) | |||
| get_sync_ipts(const OutputStream *ost) | |||
| { | |||
| const AVInputStream *ist = ost->sync_ist; | |||
| const InputStream *ist = ost->sync_ist; | |||
| return (double)(ist->pts - start_time)/AV_TIME_BASE; | |||
| } | |||
| @@ -800,8 +793,8 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, AVCodecContext *avctx | |||
| #define MAX_AUDIO_PACKET_SIZE (128 * 1024) | |||
| static void do_audio_out(AVFormatContext *s, | |||
| AVOutputStream *ost, | |||
| AVInputStream *ist, | |||
| OutputStream *ost, | |||
| InputStream *ist, | |||
| unsigned char *buf, int size) | |||
| { | |||
| uint8_t *buftmp; | |||
| @@ -1043,7 +1036,7 @@ need_realloc: | |||
| } | |||
| } | |||
| static void pre_process_video_frame(AVInputStream *ist, AVPicture *picture, void **bufp) | |||
| static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void **bufp) | |||
| { | |||
| AVCodecContext *dec; | |||
| AVPicture *picture2; | |||
| @@ -1086,8 +1079,8 @@ static void pre_process_video_frame(AVInputStream *ist, AVPicture *picture, void | |||
| #define AV_DELAY_MAX 0.100 | |||
| static void do_subtitle_out(AVFormatContext *s, | |||
| AVOutputStream *ost, | |||
| AVInputStream *ist, | |||
| OutputStream *ost, | |||
| InputStream *ist, | |||
| AVSubtitle *sub, | |||
| int64_t pts) | |||
| { | |||
| @@ -1152,8 +1145,8 @@ static int bit_buffer_size= 1024*256; | |||
| static uint8_t *bit_buffer= NULL; | |||
| static void do_video_out(AVFormatContext *s, | |||
| AVOutputStream *ost, | |||
| AVInputStream *ist, | |||
| OutputStream *ost, | |||
| InputStream *ist, | |||
| AVFrame *in_picture, | |||
| int *frame_size, float quality) | |||
| { | |||
| @@ -1337,7 +1330,7 @@ static double psnr(double d){ | |||
| return -10.0*log(d)/log(10.0); | |||
| } | |||
| static void do_video_stats(AVFormatContext *os, AVOutputStream *ost, | |||
| static void do_video_stats(AVFormatContext *os, OutputStream *ost, | |||
| int frame_size) | |||
| { | |||
| AVCodecContext *enc; | |||
| @@ -1375,11 +1368,11 @@ static void do_video_stats(AVFormatContext *os, AVOutputStream *ost, | |||
| } | |||
| static void print_report(AVFormatContext **output_files, | |||
| AVOutputStream **ost_table, int nb_ostreams, | |||
| OutputStream **ost_table, int nb_ostreams, | |||
| int is_last_report) | |||
| { | |||
| char buf[1024]; | |||
| AVOutputStream *ost; | |||
| OutputStream *ost; | |||
| AVFormatContext *oc; | |||
| int64_t total_size; | |||
| AVCodecContext *enc; | |||
| @@ -1514,12 +1507,12 @@ static void generate_silence(uint8_t* buf, enum AVSampleFormat sample_fmt, size_ | |||
| } | |||
| /* pkt = NULL means EOF (needed to flush decoder buffers) */ | |||
| static int output_packet(AVInputStream *ist, int ist_index, | |||
| AVOutputStream **ost_table, int nb_ostreams, | |||
| static int output_packet(InputStream *ist, int ist_index, | |||
| OutputStream **ost_table, int nb_ostreams, | |||
| const AVPacket *pkt) | |||
| { | |||
| AVFormatContext *os; | |||
| AVOutputStream *ost; | |||
| OutputStream *ost; | |||
| int ret, i; | |||
| int got_output; | |||
| AVFrame picture; | |||
| @@ -1724,7 +1717,7 @@ static int output_packet(AVInputStream *ist, int ist_index, | |||
| os = output_files[ost->file_index]; | |||
| /* set the input output pts pairs */ | |||
| //ost->sync_ipts = (double)(ist->pts + input_files_ts_offset[ist->file_index] - start_time)/ AV_TIME_BASE; | |||
| //ost->sync_ipts = (double)(ist->pts + input_files[ist->file_index].ts_offset - start_time)/ AV_TIME_BASE; | |||
| if (ost->encoding_needed) { | |||
| av_assert0(ist->decoding_needed); | |||
| @@ -1942,7 +1935,7 @@ static int copy_chapters(int infile, int outfile) | |||
| for (i = 0; i < is->nb_chapters; i++) { | |||
| AVChapter *in_ch = is->chapters[i], *out_ch; | |||
| int64_t ts_off = av_rescale_q(start_time - input_files_ts_offset[infile], | |||
| int64_t ts_off = av_rescale_q(start_time - input_files[infile].ts_offset, | |||
| AV_TIME_BASE_Q, in_ch->time_base); | |||
| int64_t rt = (recording_time == INT64_MAX) ? INT64_MAX : | |||
| av_rescale_q(recording_time, AV_TIME_BASE_Q, in_ch->time_base); | |||
| @@ -1974,7 +1967,7 @@ static int copy_chapters(int infile, int outfile) | |||
| return 0; | |||
| } | |||
| static void parse_forced_key_frames(char *kf, AVOutputStream *ost, | |||
| static void parse_forced_key_frames(char *kf, OutputStream *ost, | |||
| AVCodecContext *avctx) | |||
| { | |||
| char *p; | |||
| @@ -2002,16 +1995,16 @@ static void parse_forced_key_frames(char *kf, AVOutputStream *ost, | |||
| */ | |||
| static int transcode(AVFormatContext **output_files, | |||
| int nb_output_files, | |||
| AVInputFile *input_files, | |||
| InputFile *input_files, | |||
| int nb_input_files, | |||
| AVStreamMap *stream_maps, int nb_stream_maps) | |||
| StreamMap *stream_maps, int nb_stream_maps) | |||
| { | |||
| int ret = 0, i, j, k, n, nb_ostreams = 0, step; | |||
| AVFormatContext *is, *os; | |||
| AVCodecContext *codec, *icodec; | |||
| AVOutputStream *ost, **ost_table = NULL; | |||
| AVInputStream *ist; | |||
| OutputStream *ost, **ost_table = NULL; | |||
| InputStream *ist; | |||
| char error[1024]; | |||
| int key; | |||
| int want_sdp = 1; | |||
| @@ -2063,7 +2056,7 @@ static int transcode(AVFormatContext **output_files, | |||
| } | |||
| } | |||
| ost_table = av_mallocz(sizeof(AVOutputStream *) * nb_ostreams); | |||
| ost_table = av_mallocz(sizeof(OutputStream *) * nb_ostreams); | |||
| if (!ost_table) | |||
| goto fail; | |||
| @@ -2430,7 +2423,7 @@ static int transcode(AVFormatContext **output_files, | |||
| for (i = 0; i < nb_input_streams; i++) { | |||
| ist = &input_streams[i]; | |||
| if (ist->decoding_needed) { | |||
| AVCodec *codec = i < nb_input_codecs ? input_codecs[i] : NULL; | |||
| AVCodec *codec = ist->dec; | |||
| if (!codec) | |||
| codec = avcodec_find_decoder(ist->st->codec->codec_id); | |||
| if (!codec) { | |||
| @@ -2485,7 +2478,7 @@ static int transcode(AVFormatContext **output_files, | |||
| files[1] = input_files[in_file_index].ctx; | |||
| for (j = 0; j < 2; j++) { | |||
| AVMetaDataMap *map = &meta_data_maps[i][j]; | |||
| MetadataMap *map = &meta_data_maps[i][j]; | |||
| switch (map->type) { | |||
| case 'g': | |||
| @@ -2741,9 +2734,9 @@ static int transcode(AVFormatContext **output_files, | |||
| goto discard_packet; | |||
| if (pkt.dts != AV_NOPTS_VALUE) | |||
| pkt.dts += av_rescale_q(input_files_ts_offset[ist->file_index], AV_TIME_BASE_Q, ist->st->time_base); | |||
| pkt.dts += av_rescale_q(input_files[ist->file_index].ts_offset, AV_TIME_BASE_Q, ist->st->time_base); | |||
| if (pkt.pts != AV_NOPTS_VALUE) | |||
| pkt.pts += av_rescale_q(input_files_ts_offset[ist->file_index], AV_TIME_BASE_Q, ist->st->time_base); | |||
| pkt.pts += av_rescale_q(input_files[ist->file_index].ts_offset, AV_TIME_BASE_Q, ist->st->time_base); | |||
| if (pkt.stream_index < nb_input_files_ts_scale[file_index] | |||
| && input_files_ts_scale[file_index][pkt.stream_index]){ | |||
| @@ -2753,15 +2746,16 @@ static int transcode(AVFormatContext **output_files, | |||
| pkt.dts *= input_files_ts_scale[file_index][pkt.stream_index]; | |||
| } | |||
| // fprintf(stderr, "next:%"PRId64" dts:%"PRId64" off:%"PRId64" %d\n", ist->next_pts, pkt.dts, input_files_ts_offset[ist->file_index], ist->st->codec->codec_type); | |||
| // fprintf(stderr, "next:%"PRId64" dts:%"PRId64" off:%"PRId64" %d\n", ist->next_pts, pkt.dts, input_files[ist->file_index].ts_offset, ist->st->codec->codec_type); | |||
| if (pkt.dts != AV_NOPTS_VALUE && ist->next_pts != AV_NOPTS_VALUE | |||
| && (is->iformat->flags & AVFMT_TS_DISCONT)) { | |||
| int64_t pkt_dts= av_rescale_q(pkt.dts, ist->st->time_base, AV_TIME_BASE_Q); | |||
| int64_t delta= pkt_dts - ist->next_pts; | |||
| if((FFABS(delta) > 1LL*dts_delta_threshold*AV_TIME_BASE || pkt_dts+1<ist->pts)&& !copy_ts){ | |||
| input_files_ts_offset[ist->file_index]-= delta; | |||
| input_files[ist->file_index].ts_offset -= delta; | |||
| if (verbose > 2) | |||
| fprintf(stderr, "timestamp discontinuity %"PRId64", new offset= %"PRId64"\n", delta, input_files_ts_offset[ist->file_index]); | |||
| fprintf(stderr, "timestamp discontinuity %"PRId64", new offset= %"PRId64"\n", | |||
| delta, input_files[ist->file_index].ts_offset); | |||
| pkt.dts-= av_rescale_q(delta, AV_TIME_BASE_Q, ist->st->time_base); | |||
| if(pkt.pts != AV_NOPTS_VALUE) | |||
| pkt.pts-= av_rescale_q(delta, AV_TIME_BASE_Q, ist->st->time_base); | |||
| @@ -3099,7 +3093,7 @@ static int opt_codec_tag(const char *opt, const char *arg) | |||
| static int opt_map(const char *opt, const char *arg) | |||
| { | |||
| AVStreamMap *m; | |||
| StreamMap *m; | |||
| char *p; | |||
| stream_maps = grow_array(stream_maps, sizeof(*stream_maps), &nb_stream_maps, nb_stream_maps + 1); | |||
| @@ -3146,7 +3140,7 @@ static void parse_meta_type(char *arg, char *type, int *index, char **endptr) | |||
| static int opt_map_metadata(const char *opt, const char *arg) | |||
| { | |||
| AVMetaDataMap *m, *m1; | |||
| MetadataMap *m, *m1; | |||
| char *p; | |||
| meta_data_maps = grow_array(meta_data_maps, sizeof(*meta_data_maps), | |||
| @@ -3181,7 +3175,7 @@ static int opt_map_meta_data(const char *opt, const char *arg) | |||
| static int opt_map_chapters(const char *opt, const char *arg) | |||
| { | |||
| AVChapterMap *c; | |||
| ChapterMap *c; | |||
| char *p; | |||
| chapter_maps = grow_array(chapter_maps, sizeof(*chapter_maps), &nb_chapter_maps, | |||
| @@ -3363,7 +3357,10 @@ static int opt_input_file(const char *opt, const char *filename) | |||
| opt_programid=0; | |||
| } | |||
| ic->loop_input = loop_input; | |||
| if (loop_input) { | |||
| av_log(NULL, AV_LOG_WARNING, "-loop_input is deprecated, use -loop 1\n"); | |||
| ic->loop_input = loop_input; | |||
| } | |||
| /* If not enough info to get the stream parameters, we decode the | |||
| first frames to get it. (used in mpeg case for example) */ | |||
| @@ -3394,10 +3391,9 @@ static int opt_input_file(const char *opt, const char *filename) | |||
| for(i=0;i<ic->nb_streams;i++) { | |||
| AVStream *st = ic->streams[i]; | |||
| AVCodecContext *dec = st->codec; | |||
| AVInputStream *ist; | |||
| InputStream *ist; | |||
| dec->thread_count = thread_count; | |||
| input_codecs = grow_array(input_codecs, sizeof(*input_codecs), &nb_input_codecs, nb_input_codecs + 1); | |||
| input_streams = grow_array(input_streams, sizeof(*input_streams), &nb_input_streams, nb_input_streams + 1); | |||
| ist = &input_streams[nb_input_streams - 1]; | |||
| @@ -3407,20 +3403,20 @@ static int opt_input_file(const char *opt, const char *filename) | |||
| switch (dec->codec_type) { | |||
| case AVMEDIA_TYPE_AUDIO: | |||
| input_codecs[nb_input_codecs-1] = avcodec_find_decoder_by_name(audio_codec_name); | |||
| if(!input_codecs[nb_input_codecs-1]) | |||
| input_codecs[nb_input_codecs-1] = avcodec_find_decoder(dec->codec_id); | |||
| set_context_opts(dec, avcodec_opts[AVMEDIA_TYPE_AUDIO], AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_DECODING_PARAM, input_codecs[nb_input_codecs-1]); | |||
| ist->dec = avcodec_find_decoder_by_name(audio_codec_name); | |||
| if(!ist->dec) | |||
| ist->dec = avcodec_find_decoder(dec->codec_id); | |||
| set_context_opts(dec, avcodec_opts[AVMEDIA_TYPE_AUDIO], AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_DECODING_PARAM, ist->dec); | |||
| channel_layout = dec->channel_layout; | |||
| audio_sample_fmt = dec->sample_fmt; | |||
| if(audio_disable) | |||
| st->discard= AVDISCARD_ALL; | |||
| break; | |||
| case AVMEDIA_TYPE_VIDEO: | |||
| input_codecs[nb_input_codecs-1] = avcodec_find_decoder_by_name(video_codec_name); | |||
| if(!input_codecs[nb_input_codecs-1]) | |||
| input_codecs[nb_input_codecs-1] = avcodec_find_decoder(dec->codec_id); | |||
| set_context_opts(dec, avcodec_opts[AVMEDIA_TYPE_VIDEO], AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM, input_codecs[nb_input_codecs-1]); | |||
| ist->dec= avcodec_find_decoder_by_name(video_codec_name); | |||
| if(!ist->dec) | |||
| ist->dec = avcodec_find_decoder(dec->codec_id); | |||
| set_context_opts(dec, avcodec_opts[AVMEDIA_TYPE_VIDEO], AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM, ist->dec); | |||
| rfps = ic->streams[i]->r_frame_rate.num; | |||
| rfps_base = ic->streams[i]->r_frame_rate.den; | |||
| if (dec->lowres) { | |||
| @@ -3448,9 +3444,9 @@ static int opt_input_file(const char *opt, const char *filename) | |||
| case AVMEDIA_TYPE_DATA: | |||
| break; | |||
| case AVMEDIA_TYPE_SUBTITLE: | |||
| input_codecs[nb_input_codecs-1] = avcodec_find_decoder_by_name(subtitle_codec_name); | |||
| if(!input_codecs[nb_input_codecs-1]) | |||
| input_codecs[nb_input_codecs-1] = avcodec_find_decoder(dec->codec_id); | |||
| ist->dec = avcodec_find_decoder_by_name(subtitle_codec_name); | |||
| if(!ist->dec) | |||
| ist->dec = avcodec_find_decoder(dec->codec_id); | |||
| if(subtitle_disable) | |||
| st->discard = AVDISCARD_ALL; | |||
| break; | |||
| @@ -3462,7 +3458,6 @@ static int opt_input_file(const char *opt, const char *filename) | |||
| } | |||
| } | |||
| input_files_ts_offset[nb_input_files] = input_ts_offset - (copy_ts ? 0 : timestamp); | |||
| /* dump the file content */ | |||
| if (verbose >= 0) | |||
| av_dump_format(ic, nb_input_files, filename, 0); | |||
| @@ -3470,6 +3465,7 @@ static int opt_input_file(const char *opt, const char *filename) | |||
| input_files = grow_array(input_files, sizeof(*input_files), &nb_input_files, nb_input_files + 1); | |||
| input_files[nb_input_files - 1].ctx = ic; | |||
| input_files[nb_input_files - 1].ist_index = nb_input_streams - ic->nb_streams; | |||
| input_files[nb_input_files - 1].ts_offset = input_ts_offset - (copy_ts ? 0 : timestamp); | |||
| top_field_first = -1; | |||
| video_channel = 0; | |||
| @@ -3534,7 +3530,7 @@ static void check_inputs(int *has_video_ptr, | |||
| static void new_video_stream(AVFormatContext *oc, int file_idx) | |||
| { | |||
| AVStream *st; | |||
| AVOutputStream *ost; | |||
| OutputStream *ost; | |||
| AVCodecContext *video_enc; | |||
| enum CodecID codec_id = CODEC_ID_NONE; | |||
| AVCodec *codec= NULL; | |||
| @@ -3673,7 +3669,7 @@ static void new_video_stream(AVFormatContext *oc, int file_idx) | |||
| static void new_audio_stream(AVFormatContext *oc, int file_idx) | |||
| { | |||
| AVStream *st; | |||
| AVOutputStream *ost; | |||
| OutputStream *ost; | |||
| AVCodec *codec= NULL; | |||
| AVCodecContext *audio_enc; | |||
| enum CodecID codec_id = CODEC_ID_NONE; | |||
| @@ -3783,7 +3779,7 @@ static void new_data_stream(AVFormatContext *oc, int file_idx) | |||
| static void new_subtitle_stream(AVFormatContext *oc, int file_idx) | |||
| { | |||
| AVStream *st; | |||
| AVOutputStream *ost; | |||
| OutputStream *ost; | |||
| AVCodec *codec=NULL; | |||
| AVCodecContext *subtitle_enc; | |||
| enum CodecID codec_id = CODEC_ID_NONE; | |||
| @@ -3916,23 +3912,20 @@ static int opt_output_file(const char *opt, const char *filename) | |||
| use_subtitle = file_oformat->subtitle_codec != CODEC_ID_NONE || subtitle_stream_copy || subtitle_codec_name; | |||
| use_data = data_stream_copy || data_codec_name; /* XXX once generic data codec will be available add a ->data_codec reference and use it here */ | |||
| /* disable if no corresponding type found and at least one | |||
| input file */ | |||
| if (nb_input_files > 0) { | |||
| check_inputs(&input_has_video, | |||
| &input_has_audio, | |||
| &input_has_subtitle, | |||
| &input_has_data); | |||
| if (!input_has_video) | |||
| use_video = 0; | |||
| if (!input_has_audio) | |||
| use_audio = 0; | |||
| if (!input_has_subtitle) | |||
| use_subtitle = 0; | |||
| if (!input_has_data) | |||
| use_data = 0; | |||
| } | |||
| /* disable if no corresponding type found */ | |||
| check_inputs(&input_has_video, | |||
| &input_has_audio, | |||
| &input_has_subtitle, | |||
| &input_has_data); | |||
| if (!input_has_video) | |||
| use_video = 0; | |||
| if (!input_has_audio) | |||
| use_audio = 0; | |||
| if (!input_has_subtitle) | |||
| use_subtitle = 0; | |||
| if (!input_has_data) | |||
| use_data = 0; | |||
| /* manual disable */ | |||
| if (audio_disable) use_audio = 0; | |||
| @@ -3999,9 +3992,13 @@ static int opt_output_file(const char *opt, const char *filename) | |||
| oc->preload= (int)(mux_preload*AV_TIME_BASE); | |||
| oc->max_delay= (int)(mux_max_delay*AV_TIME_BASE); | |||
| oc->loop_output = loop_output; | |||
| set_context_opts(oc, avformat_opts, AV_OPT_FLAG_ENCODING_PARAM, NULL); | |||
| if (loop_output >= 0) { | |||
| av_log(NULL, AV_LOG_WARNING, "-loop_output is deprecated, use -loop\n"); | |||
| oc->loop_output = loop_output; | |||
| } | |||
| oc->flags |= AVFMT_FLAG_NONBLOCK; | |||
| frame_rate = (AVRational){0, 0}; | |||
| frame_width = 0; | |||
| @@ -4417,8 +4414,8 @@ static const OptionDef options[] = { | |||
| { "hex", OPT_BOOL | OPT_EXPERT, {(void*)&do_hex_dump}, | |||
| "when dumping packets, also dump the payload" }, | |||
| { "re", OPT_BOOL | OPT_EXPERT, {(void*)&rate_emu}, "read input at native frame rate", "" }, | |||
| { "loop_input", OPT_BOOL | OPT_EXPERT, {(void*)&loop_input}, "loop (current only works with images)" }, | |||
| { "loop_output", HAS_ARG | OPT_INT | OPT_EXPERT, {(void*)&loop_output}, "number of times to loop output in formats that support looping (0 loops forever)", "" }, | |||
| { "loop_input", OPT_BOOL | OPT_EXPERT, {(void*)&loop_input}, "deprecated, use -loop" }, | |||
| { "loop_output", HAS_ARG | OPT_INT | OPT_EXPERT, {(void*)&loop_output}, "deprecated, use -loop", "" }, | |||
| { "v", HAS_ARG, {(void*)opt_verbose}, "set ffmpeg verbosity level", "number" }, | |||
| { "target", HAS_ARG, {(void*)opt_target}, "specify target file type (\"vcd\", \"svcd\", \"dvd\", \"dv\", \"dv50\", \"pal-vcd\", \"ntsc-svcd\", ...)", "type" }, | |||
| { "threads", HAS_ARG | OPT_EXPERT, {(void*)opt_thread_count}, "thread count", "count" }, | |||
| @@ -550,6 +550,7 @@ OBJS-$(CONFIG_MATROSKA_DEMUXER) += mpeg4audio.o mpegaudiodata.o | |||
| OBJS-$(CONFIG_MATROSKA_MUXER) += xiph.o mpeg4audio.o \ | |||
| flacdec.o flacdata.o flac.o \ | |||
| mpegaudiodata.o vorbis_data.o | |||
| OBJS-$(CONFIG_MP3_MUXER) += mpegaudiodata.o mpegaudiodecheader.o | |||
| OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o | |||
| OBJS-$(CONFIG_MOV_MUXER) += mpeg4audio.o mpegaudiodata.o | |||
| OBJS-$(CONFIG_MPEGTS_MUXER) += mpegvideo.o mpeg4audio.o | |||
| @@ -108,7 +108,7 @@ static const uint8_t dnxhd_1242_chroma_weight[] = { | |||
| 48, 49, 51, 51, 52, 52, 54, 54, | |||
| 49, 49, 52, 53, 54, 54, 53, 53, | |||
| 55, 59, 63, 62, 60, 60, 60, 60, | |||
| }; | |||
| }; | |||
| static const uint8_t dnxhd_1243_luma_weight[] = { | |||
| 0, 32, 32, 33, 33, 35, 35, 35, | |||
| @@ -184,35 +184,144 @@ static const uint8_t dnxhd_1237_dc_bits[12] = { | |||
| }; | |||
| static const uint16_t dnxhd_1237_ac_codes[257] = { | |||
| 0, 1, 4, 5, 12, 26, 27, 56, 57, 58, 59, 120, 121, 244, 245, 246, 247, 248, 498, 499, 500, 501, 502, 1006, 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681, 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374, 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, | |||
| 0, 1, 4, 5, 12, 26, 27, 56, | |||
| 57, 58, 59, 120, 121, 244, 245, 246, | |||
| 247, 248, 498, 499, 500, 501, 502, 1006, | |||
| 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026, | |||
| 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066, | |||
| 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148, | |||
| 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, | |||
| 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323, | |||
| 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, | |||
| 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673, | |||
| 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681, | |||
| 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374, | |||
| 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382, | |||
| 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, | |||
| 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, | |||
| 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, | |||
| 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, | |||
| 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, | |||
| 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, | |||
| 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, | |||
| 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, | |||
| 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, | |||
| 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, | |||
| 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, | |||
| 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, | |||
| 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, | |||
| 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, | |||
| 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, | |||
| 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, | |||
| 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, | |||
| 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, | |||
| 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, | |||
| 65535, | |||
| }; | |||
| static const uint8_t dnxhd_1237_ac_bits[257] = { | |||
| 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8, | |||
| 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, | |||
| 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, | |||
| 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, | |||
| 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, | |||
| 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, | |||
| }; | |||
| static const uint8_t dnxhd_1237_ac_level[257] = { | |||
| 1, 1, 2, 0, 3, 4, 2, 5, 6, 7, 3, 8, 9, 10, 11, 12, 4, 5, 13, 14, 15, 16, 6, 17, 18, 19, 20, 21, 7, 22, 23, 24, 25, 26, 27, 8, 9, 28, 29, 30, 31, 32, 33, 34, 10, 11, 12, 35, 36, 37, 38, 39, 40, 41, 13, 14, 15, 16, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 17, 18, 19, 20, 21, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 1, 22, 23, 24, 25, 26, 27, 62, 63, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | |||
| 1, 1, 2, 0, 3, 4, 2, 5, 6, 7, 3, 8, 9, 10, 11, 12, | |||
| 4, 5, 13, 14, 15, 16, 6, 17, 18, 19, 20, 21, 7, 22, 23, 24, | |||
| 25, 26, 27, 8, 9, 28, 29, 30, 31, 32, 33, 34, 10, 11, 12, 35, | |||
| 36, 37, 38, 39, 40, 41, 13, 14, 15, 16, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 17, 18, 19, 20, 21, 53, 54, 55, 56, 57, 58, | |||
| 59, 60, 61, 64, 1, 22, 23, 24, 25, 26, 27, 62, 63, 2, 3, 4, | |||
| 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, | |||
| 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, | |||
| 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, | |||
| 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, | |||
| }; | |||
| static const uint8_t dnxhd_1237_ac_run_flag[257] = { | |||
| 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, | |||
| 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, | |||
| 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, | |||
| 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint8_t dnxhd_1237_ac_index_flag[257] = { | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint16_t dnxhd_1237_run_codes[62] = { | |||
| 0, 4, 10, 11, 24, 25, 26, 54, 55, 56, 57, 58, 118, 119, 240, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, | |||
| 0, 4, 10, 11, 24, 25, 26, 54, | |||
| 55, 56, 57, 58, 118, 119, 240, 482, | |||
| 483, 484, 485, 486, 487, 488, 489, 490, | |||
| 491, 492, 493, 494, 990, 991, 992, 993, | |||
| 994, 995, 996, 997, 998, 999, 1000, 1001, | |||
| 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, | |||
| 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, | |||
| 1018, 1019, 1020, 1021, 1022, 1023, | |||
| }; | |||
| static const uint8_t dnxhd_1237_run_bits[62] = { | |||
| 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9, | |||
| 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| }; | |||
| static const uint8_t dnxhd_1237_run[62] = { | |||
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, | |||
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |||
| 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25, | |||
| 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, | |||
| 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, | |||
| }; | |||
| static const uint8_t dnxhd_1238_dc_codes[12] = { | |||
| @@ -224,35 +333,144 @@ static const uint8_t dnxhd_1238_dc_bits[12] = { | |||
| }; | |||
| static const uint16_t dnxhd_1238_ac_codes[257] = { | |||
| 0, 1, 4, 10, 11, 24, 25, 26, 54, 55, 56, 57, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 492, 493, 494, 495, 496, 497, 498, 499, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, | |||
| 0, 1, 4, 10, 11, 24, 25, 26, | |||
| 54, 55, 56, 57, 116, 117, 118, 119, | |||
| 240, 241, 242, 243, 244, 245, 492, 493, | |||
| 494, 495, 496, 497, 498, 499, 1000, 1001, | |||
| 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018, | |||
| 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, | |||
| 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062, | |||
| 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140, | |||
| 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, | |||
| 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, | |||
| 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, | |||
| 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, | |||
| 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, | |||
| 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684, | |||
| 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, | |||
| 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700, | |||
| 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414, | |||
| 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, | |||
| 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, | |||
| 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, | |||
| 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, | |||
| 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, | |||
| 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, | |||
| 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, | |||
| 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, | |||
| 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, | |||
| 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, | |||
| 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, | |||
| 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, | |||
| 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, | |||
| 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, | |||
| 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, | |||
| 65535, | |||
| }; | |||
| static const uint8_t dnxhd_1238_ac_bits[257] = { | |||
| 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, | |||
| 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, | |||
| 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, | |||
| 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |||
| 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, | |||
| 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, | |||
| 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, | |||
| 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, | |||
| }; | |||
| static const uint8_t dnxhd_1238_ac_level[257] = { | |||
| 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 7, 23, 24, 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 10, 11, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 12, 13, 14, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 15, 16, 17, 18, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 25, 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | |||
| 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, | |||
| 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 7, 23, 24, | |||
| 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 10, | |||
| 11, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 12, 13, 14, 49, | |||
| 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 15, 16, 17, 18, | |||
| 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, | |||
| 14, 15, 16, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23, | |||
| 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 25, | |||
| 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |||
| 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, | |||
| }; /* 0 is EOB */ | |||
| static const uint8_t dnxhd_1238_ac_run_flag[257] = { | |||
| 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, | |||
| 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, | |||
| 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, | |||
| 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, | |||
| 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint8_t dnxhd_1238_ac_index_flag[257] = { | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, | |||
| 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint16_t dnxhd_1235_1238_1241_run_codes[62] = { | |||
| 0, 4, 10, 11, 24, 25, 26, 27, 56, 57, 58, 59, 120, 242, 486, 487, 488, 489, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, | |||
| 0, 4, 10, 11, 24, 25, 26, 27, | |||
| 56, 57, 58, 59, 120, 242, 486, 487, | |||
| 488, 489, 980, 981, 982, 983, 984, 985, | |||
| 986, 987, 988, 989, 990, 991, 992, 993, | |||
| 994, 995, 996, 997, 998, 999, 1000, 1001, | |||
| 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, | |||
| 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, | |||
| 1018, 1019, 1020, 1021, 1022, 1023, | |||
| }; | |||
| static const uint8_t dnxhd_1235_1238_1241_run_bits[62] = { | |||
| 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9, | |||
| 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| }; | |||
| static const uint8_t dnxhd_1238_run[62] = { | |||
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, | |||
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |||
| 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, | |||
| 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, | |||
| 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, | |||
| }; | |||
| static const uint8_t dnxhd_1235_1241_dc_codes[14] = { | |||
| @@ -262,81 +480,401 @@ static const uint8_t dnxhd_1235_1241_dc_codes[14] = { | |||
| static const uint8_t dnxhd_1235_1241_dc_bits[14] = { | |||
| 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7, | |||
| }; | |||
| static const uint16_t dnxhd_1235_1241_ac_codes[257] = { | |||
| 0, 1, 4, 10, 11, 24, 25, 26, 54, 55, 56, 57, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 492, 493, 494, 495, 496, 497, 498, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, | |||
| 0, 1, 4, 10, 11, 24, 25, 26, | |||
| 54, 55, 56, 57, 116, 117, 118, 119, | |||
| 240, 241, 242, 243, 244, 245, 492, 493, | |||
| 494, 495, 496, 497, 498, 998, 999, 1000, | |||
| 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016, | |||
| 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, | |||
| 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059, | |||
| 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, | |||
| 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145, | |||
| 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, | |||
| 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319, | |||
| 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, | |||
| 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, | |||
| 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681, | |||
| 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, | |||
| 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697, | |||
| 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705, | |||
| 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422, | |||
| 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, | |||
| 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, | |||
| 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, | |||
| 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, | |||
| 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, | |||
| 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, | |||
| 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, | |||
| 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, | |||
| 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, | |||
| 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, | |||
| 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, | |||
| 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, | |||
| 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, | |||
| 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, | |||
| 65535, | |||
| }; | |||
| static const uint8_t dnxhd_1235_1241_ac_bits[257] = { | |||
| 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, | |||
| 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, | |||
| 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, | |||
| 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |||
| 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, | |||
| 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, | |||
| 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, | |||
| 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, | |||
| }; | |||
| static const uint8_t dnxhd_1235_1241_ac_level[257] = { | |||
| 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 7, 22, 23, 24, 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 38, 10, 11, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 12, 13, 14, 15, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1, 16, 17, 18, 19, 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 25, 26, 27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | |||
| 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, | |||
| 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 7, 22, 23, 24, | |||
| 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 38, | |||
| 10, 11, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 12, 13, | |||
| 14, 15, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1, | |||
| 16, 17, 18, 19, 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, | |||
| 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23, | |||
| 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |||
| 40, 41, 42, 25, 26, 27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, | |||
| }; | |||
| static const uint8_t dnxhd_1235_1241_ac_run_flag[257] = { | |||
| 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, | |||
| 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, | |||
| 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint8_t dnxhd_1235_1241_ac_index_flag[257] = { | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, | |||
| 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint8_t dnxhd_1235_1241_run[62] = { | |||
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, | |||
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |||
| 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, | |||
| 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, | |||
| 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, | |||
| }; | |||
| static const uint8_t dnxhd_1251_dc_codes[12] = { | |||
| 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63, | |||
| }; | |||
| static const uint8_t dnxhd_1251_dc_bits[12] = { | |||
| 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6, | |||
| }; | |||
| static const uint16_t dnxhd_1251_ac_codes[257] = { | |||
| 0, 1, 4, 10, 11, 24, 25, 26, 54, 55, 56, 57, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 492, 493, 494, 495, 496, 497, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, | |||
| 0, 1, 4, 10, 11, 24, 25, 26, | |||
| 54, 55, 56, 57, 116, 117, 118, 119, | |||
| 240, 241, 242, 243, 244, 245, 492, 493, | |||
| 494, 495, 496, 497, 996, 997, 998, 999, | |||
| 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013, | |||
| 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, | |||
| 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055, | |||
| 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, | |||
| 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138, | |||
| 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, | |||
| 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, | |||
| 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319, | |||
| 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, | |||
| 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, | |||
| 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683, | |||
| 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, | |||
| 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699, | |||
| 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707, | |||
| 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430, | |||
| 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, | |||
| 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, | |||
| 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, | |||
| 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, | |||
| 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, | |||
| 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, | |||
| 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, | |||
| 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, | |||
| 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, | |||
| 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, | |||
| 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, | |||
| 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, | |||
| 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, | |||
| 65535, | |||
| }; | |||
| static const uint8_t dnxhd_1251_ac_bits[257] = { | |||
| 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, | |||
| 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, | |||
| 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, | |||
| 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |||
| 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, | |||
| 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, | |||
| 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, | |||
| 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, | |||
| 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, | |||
| }; | |||
| static const uint8_t dnxhd_1251_ac_level[257] = { | |||
| 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 22, 23, 24, 25, 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 9, 10, 11, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 12, 13, 14, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 18, 19, 20, 21, 22, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 23, 24, 25, 26, 27, 28, 59, 60, 61, 62, 63, 64, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | |||
| 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, | |||
| 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 22, 23, 24, 25, | |||
| 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |||
| 40, 9, 10, 11, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, | |||
| 12, 13, 14, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, | |||
| 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 9, 10, 11, 12, 13, 14, | |||
| 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 18, | |||
| 19, 20, 21, 22, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, | |||
| 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, | |||
| 58, 23, 24, 25, 26, 27, 28, 59, 60, 61, 62, 63, 64, 29, 30, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, | |||
| }; | |||
| static const uint8_t dnxhd_1251_ac_run_flag[257] = { | |||
| 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, | |||
| 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, | |||
| 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint8_t dnxhd_1251_ac_index_flag[257] = { | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, | |||
| 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint16_t dnxhd_1251_run_codes[62] = { | |||
| 0, 4, 5, 12, 26, 27, 28, 58, 118, 119, 120, 242, 486, 487, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, | |||
| 0, 4, 5, 12, 26, 27, 28, 58, | |||
| 118, 119, 120, 242, 486, 487, 976, 977, | |||
| 978, 979, 980, 981, 982, 983, 984, 985, | |||
| 986, 987, 988, 989, 990, 991, 992, 993, | |||
| 994, 995, 996, 997, 998, 999, 1000, 1001, | |||
| 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, | |||
| 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, | |||
| 1018, 1019, 1020, 1021, 1022, 1023, | |||
| }; | |||
| static const uint8_t dnxhd_1251_run_bits[62] = { | |||
| 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |||
| }; | |||
| static const uint8_t dnxhd_1251_run[62] = { | |||
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, | |||
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |||
| 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, | |||
| 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, | |||
| 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, | |||
| }; | |||
| static const uint8_t dnxhd_1252_dc_codes[12] = { | |||
| 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63, | |||
| }; | |||
| static const uint8_t dnxhd_1252_dc_bits[12] = { | |||
| 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6, | |||
| }; | |||
| static const uint16_t dnxhd_1252_ac_codes[257] = { | |||
| 0, 1, 4, 10, 11, 12, 26, 27, 56, 57, 58, 118, 119, 120, 242, 243, 244, 245, 246, 247, 496, 497, 498, 499, 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390, 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, | |||
| 0, 1, 4, 10, 11, 12, 26, 27, | |||
| 56, 57, 58, 118, 119, 120, 242, 243, | |||
| 244, 245, 246, 247, 496, 497, 498, 499, | |||
| 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008, | |||
| 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026, | |||
| 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064, | |||
| 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144, | |||
| 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, | |||
| 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319, | |||
| 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, | |||
| 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, | |||
| 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679, | |||
| 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, | |||
| 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390, | |||
| 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, | |||
| 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, | |||
| 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, | |||
| 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, | |||
| 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, | |||
| 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, | |||
| 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, | |||
| 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, | |||
| 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, | |||
| 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, | |||
| 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, | |||
| 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, | |||
| 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, | |||
| 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, | |||
| 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, | |||
| 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, | |||
| 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, | |||
| 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, | |||
| 65535, | |||
| }; | |||
| static const uint8_t dnxhd_1252_ac_bits[257] = { | |||
| 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, | |||
| 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, | |||
| 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, | |||
| 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |||
| 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, | |||
| 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, | |||
| 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |||
| 16, | |||
| }; | |||
| static const uint8_t dnxhd_1252_ac_level[257] = { | |||
| 1, 1, 2, 3, 2, 0, 4, 5, 6, 7, 3, 8, 9, 10, 11, 12, 13, 14, 4, 5, 15, 16, 17, 18, 6, 19, 20, 21, 22, 23, 24, 7, 8, 25, 26, 27, 28, 29, 30, 31, 32, 9, 10, 33, 34, 35, 36, 37, 38, 39, 40, 41, 11, 12, 13, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 14, 15, 16, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 17, 18, 19, 20, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | |||
| 1, 1, 2, 3, 2, 0, 4, 5, 6, 7, 3, 8, 9, 10, 11, 12, | |||
| 13, 14, 4, 5, 15, 16, 17, 18, 6, 19, 20, 21, 22, 23, 24, 7, | |||
| 8, 25, 26, 27, 28, 29, 30, 31, 32, 9, 10, 33, 34, 35, 36, 37, | |||
| 38, 39, 40, 41, 11, 12, 13, 42, 43, 44, 45, 46, 47, 48, 49, 50, | |||
| 51, 52, 53, 14, 15, 16, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, 1, 2, 3, 17, 18, 19, 20, 4, 5, 6, 7, 8, 9, 10, 11, | |||
| 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 22, | |||
| 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, | |||
| 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | |||
| 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 26, 27, 28, 29, 30, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, | |||
| 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, | |||
| 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | |||
| 64, | |||
| }; | |||
| static const uint8_t dnxhd_1252_ac_run_flag[257] = { | |||
| 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, | |||
| 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, | |||
| 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| static const uint8_t dnxhd_1252_ac_index_flag[257] = { | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
| 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
| 1, | |||
| }; | |||
| const CIDEntry ff_dnxhd_cid_table[] = { | |||
| @@ -49,18 +49,6 @@ typedef struct FlashSVContext { | |||
| } FlashSVContext; | |||
| static void copy_region(uint8_t *sptr, uint8_t *dptr, | |||
| int dx, int dy, int h, int w, int stride) | |||
| { | |||
| int i; | |||
| for (i = dx + h; i > dx; i--) { | |||
| memcpy(dptr + i * stride + dy * 3, sptr, w * 3); | |||
| sptr += w * 3; | |||
| } | |||
| } | |||
| static av_cold int flashsv_decode_init(AVCodecContext *avctx) | |||
| { | |||
| FlashSVContext *s = avctx->priv_data; | |||
| @@ -153,14 +141,13 @@ static int flashsv_decode_frame(AVCodecContext *avctx, void *data, | |||
| /* loop over all block columns */ | |||
| for (j = 0; j < v_blocks + (v_part ? 1 : 0); j++) { | |||
| int hp = j * s->block_height; // vertical position in frame | |||
| int hs = (j < v_blocks) ? s->block_height : v_part; // block size | |||
| int y_pos = j * s->block_height; // vertical position in frame | |||
| int cur_blk_height = (j < v_blocks) ? s->block_height : v_part; | |||
| /* loop over all block rows */ | |||
| for (i = 0; i < h_blocks + (h_part ? 1 : 0); i++) { | |||
| int wp = i * s->block_width; // horizontal position in frame | |||
| int ws = (i < h_blocks) ? s->block_width : h_part; // block size | |||
| int x_pos = i * s->block_width; // horizontal position in frame | |||
| int cur_blk_width = (i < h_blocks) ? s->block_width : h_part; | |||
| /* get the size of the compressed zlib chunk */ | |||
| int size = get_bits(&gb, 16); | |||
| @@ -173,6 +160,8 @@ static int flashsv_decode_frame(AVCodecContext *avctx, void *data, | |||
| /* skip unchanged blocks, which have size 0 */ | |||
| if (size) { | |||
| /* decompress block */ | |||
| uint8_t *line = s->tmpblock; | |||
| int k; | |||
| int ret = inflateReset(&s->zstream); | |||
| if (ret != Z_OK) { | |||
| av_log(avctx, AV_LOG_ERROR, | |||
| @@ -195,9 +184,15 @@ static int flashsv_decode_frame(AVCodecContext *avctx, void *data, | |||
| "error in decompression of block %dx%d: %d\n", i, j, ret); | |||
| /* return -1; */ | |||
| } | |||
| copy_region(s->tmpblock, s->frame.data[0], | |||
| s->image_height - (hp + hs + 1), | |||
| wp, hs, ws, s->frame.linesize[0]); | |||
| /* Flash Screen Video stores the image upside down, so copy | |||
| * lines to destination in reverse order. */ | |||
| for (k = 1; k <= cur_blk_height; k++) { | |||
| memcpy(s->frame.data[0] + x_pos * 3 + | |||
| (s->image_height - y_pos - k) * s->frame.linesize[0], | |||
| line, cur_blk_width * 3); | |||
| /* advance source pointer to next line */ | |||
| line += cur_blk_width * 3; | |||
| } | |||
| skip_bits_long(&gb, 8 * size); /* skip the consumed bits */ | |||
| } | |||
| } | |||
| @@ -208,7 +208,6 @@ static int libschroedinger_decode_frame(AVCodecContext *avccontext, | |||
| FfmpegSchroDecoderParams *p_schro_params = avccontext->priv_data; | |||
| SchroDecoder *decoder = p_schro_params->decoder; | |||
| SchroVideoFormat *format; | |||
| AVPicture *picture = data; | |||
| SchroBuffer *enc_buf; | |||
| SchroFrame* frame; | |||
| @@ -240,7 +239,6 @@ static int libschroedinger_decode_frame(AVCodecContext *avccontext, | |||
| go = 1; | |||
| } else | |||
| outer = 0; | |||
| format = p_schro_params->format; | |||
| while (go) { | |||
| /* Parse data and process result. */ | |||
| @@ -80,13 +80,6 @@ static int audio_open(AVFormatContext *s1, int is_output, const char *audio_devi | |||
| fcntl(audio_fd, F_SETFL, O_NONBLOCK); | |||
| s->frame_size = AUDIO_BLOCK_SIZE; | |||
| #if 0 | |||
| tmp = (NB_FRAGMENTS << 16) | FRAGMENT_BITS; | |||
| err = ioctl(audio_fd, SNDCTL_DSP_SETFRAGMENT, &tmp); | |||
| if (err < 0) { | |||
| perror("SNDCTL_DSP_SETFRAGMENT"); | |||
| } | |||
| #endif | |||
| /* select format : favour native format */ | |||
| err = ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &tmp); | |||
| @@ -70,7 +70,7 @@ struct x11_grab | |||
| XImage *image; /**< X11 image holding the grab */ | |||
| int use_shm; /**< !0 when using XShm extension */ | |||
| XShmSegmentInfo shminfo; /**< When using XShm, keeps track of XShm infos */ | |||
| int nomouse; | |||
| int draw_mouse; /**< Set by a private option. */ | |||
| char *framerate; /**< Set by a private option. */ | |||
| }; | |||
| @@ -104,7 +104,7 @@ x11grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||
| offset = strchr(dpyname, '+'); | |||
| if (offset) { | |||
| sscanf(offset, "%d,%d", &x_off, &y_off); | |||
| x11grab->nomouse= strstr(offset, "nomouse"); | |||
| x11grab->draw_mouse = !strstr(offset, "nomouse"); | |||
| *offset= 0; | |||
| } | |||
| @@ -218,21 +218,6 @@ x11grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||
| } | |||
| break; | |||
| case 32: | |||
| #if 0 | |||
| GetColorInfo (image, &c_info); | |||
| if ( c_info.alpha_mask == 0xff000000 && image->green_mask == 0x0000ff00) { | |||
| /* byte order is relevant here, not endianness | |||
| * endianness is handled by avcodec, but atm no such thing | |||
| * as having ABGR, instead of ARGB in a word. Since we | |||
| * need this for Solaris/SPARC, but need to do the conversion | |||
| * for every frame we do it outside of this loop, cf. below | |||
| * this matches both ARGB32 and ABGR32 */ | |||
| input_pixfmt = PIX_FMT_ARGB32; | |||
| } else { | |||
| av_log(s1, AV_LOG_ERROR,"image depth %i not supported ... aborting\n", image->bits_per_pixel); | |||
| return AVERROR(EIO); | |||
| } | |||
| #endif | |||
| input_pixfmt = PIX_FMT_RGB32; | |||
| break; | |||
| default: | |||
| @@ -426,7 +411,7 @@ x11grab_read_packet(AVFormatContext *s1, AVPacket *pkt) | |||
| } | |||
| } | |||
| if(!s->nomouse){ | |||
| if (s->draw_mouse) { | |||
| paint_mouse_pointer(image, s); | |||
| } | |||
| @@ -467,6 +452,7 @@ x11grab_read_close(AVFormatContext *s1) | |||
| static const AVOption options[] = { | |||
| { "video_size", "A string describing frame size, such as 640x480 or hd720.", OFFSET(video_size), FF_OPT_TYPE_STRING, {.str = "vga"}, 0, 0, DEC }, | |||
| { "framerate", "", OFFSET(framerate), FF_OPT_TYPE_STRING, {.str = "ntsc"}, 0, 0, DEC }, | |||
| { "draw_mouse", "Draw the mouse pointer.", OFFSET(draw_mouse), FF_OPT_TYPE_INT, { 1 }, 0, 1, DEC }, | |||
| { NULL }, | |||
| }; | |||
| @@ -747,12 +747,16 @@ typedef struct AVFormatContext { | |||
| int preload; | |||
| int max_delay; | |||
| #if FF_API_LOOP_OUTPUT | |||
| #define AVFMT_NOOUTPUTLOOP -1 | |||
| #define AVFMT_INFINITEOUTPUTLOOP 0 | |||
| /** | |||
| * number of times to loop output in formats that support it | |||
| * | |||
| * @deprecated use the 'loop' private option in the gif muxer. | |||
| */ | |||
| int loop_output; | |||
| attribute_deprecated int loop_output; | |||
| #endif | |||
| int flags; | |||
| #define AVFMT_FLAG_GENPTS 0x0001 ///< Generate missing pts even if it requires parsing future frames. | |||
| @@ -770,7 +774,12 @@ typedef struct AVFormatContext { | |||
| #define AVFMT_FLAG_PRIV_OPT 0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted) | |||
| #define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Dont merge side data but keep it seperate. | |||
| int loop_input; | |||
| #if FF_API_LOOP_INPUT | |||
| /** | |||
| * @deprecated, use the 'loop' img2 demuxer private option. | |||
| */ | |||
| attribute_deprecated int loop_input; | |||
| #endif | |||
| /** | |||
| * decoding: size of data to probe; encoding: unused. | |||
| @@ -40,6 +40,8 @@ | |||
| */ | |||
| #include "avformat.h" | |||
| #include "libavutil/log.h" | |||
| #include "libavutil/opt.h" | |||
| /* The GIF format uses reversed order for bitstreams... */ | |||
| /* at least they don't use PDP_ENDIAN :) */ | |||
| @@ -245,8 +247,10 @@ static int gif_image_write_image(AVIOContext *pb, | |||
| } | |||
| typedef struct { | |||
| AVClass *class; /** Class for private options. */ | |||
| int64_t time, file_time; | |||
| uint8_t buffer[100]; /* data chunks */ | |||
| int loop; | |||
| } GIFContext; | |||
| static int gif_write_header(AVFormatContext *s) | |||
| @@ -254,7 +258,7 @@ static int gif_write_header(AVFormatContext *s) | |||
| GIFContext *gif = s->priv_data; | |||
| AVIOContext *pb = s->pb; | |||
| AVCodecContext *enc, *video_enc; | |||
| int i, width, height, loop_count /*, rate*/; | |||
| int i, width, height /*, rate*/; | |||
| /* XXX: do we reject audio streams or just ignore them ? | |||
| if(s->nb_streams > 1) | |||
| @@ -276,7 +280,6 @@ static int gif_write_header(AVFormatContext *s) | |||
| } else { | |||
| width = video_enc->width; | |||
| height = video_enc->height; | |||
| loop_count = s->loop_output; | |||
| // rate = video_enc->time_base.den; | |||
| } | |||
| @@ -285,7 +288,12 @@ static int gif_write_header(AVFormatContext *s) | |||
| return AVERROR(EIO); | |||
| } | |||
| gif_image_write_header(pb, width, height, loop_count, NULL); | |||
| #if FF_API_LOOP_OUTPUT | |||
| if (s->loop_output) | |||
| gif->loop = s->loop_output; | |||
| #endif | |||
| gif_image_write_header(pb, width, height, gif->loop, NULL); | |||
| avio_flush(s->pb); | |||
| return 0; | |||
| @@ -340,6 +348,20 @@ static int gif_write_trailer(AVFormatContext *s) | |||
| return 0; | |||
| } | |||
| #define OFFSET(x) offsetof(GIFContext, x) | |||
| #define ENC AV_OPT_FLAG_ENCODING_PARAM | |||
| static const AVOption options[] = { | |||
| { "loop", "Number of times to loop the output.", OFFSET(loop), FF_OPT_TYPE_INT, {0}, 0, 65535, ENC }, | |||
| { NULL }, | |||
| }; | |||
| static const AVClass gif_muxer_class = { | |||
| .class_name = "GIF muxer", | |||
| .item_name = av_default_item_name, | |||
| .version = LIBAVUTIL_VERSION_INT, | |||
| .option = options, | |||
| }; | |||
| AVOutputFormat ff_gif_muxer = { | |||
| "gif", | |||
| NULL_IF_CONFIG_SMALL("GIF Animation"), | |||
| @@ -351,4 +373,5 @@ AVOutputFormat ff_gif_muxer = { | |||
| gif_write_header, | |||
| gif_write_packet, | |||
| gif_write_trailer, | |||
| .priv_class = &gif_muxer_class, | |||
| }; | |||
| @@ -43,6 +43,7 @@ typedef struct { | |||
| char *pixel_format; /**< Set by a private option. */ | |||
| char *video_size; /**< Set by a private option. */ | |||
| char *framerate; /**< Set by a private option. */ | |||
| int loop; | |||
| } VideoData; | |||
| typedef struct { | |||
| @@ -247,6 +248,11 @@ static int read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||
| framerate = (AVRational){ap->time_base.den, ap->time_base.num}; | |||
| #endif | |||
| #if FF_API_LOOP_INPUT | |||
| if (s1->loop_input) | |||
| s->loop = s1->loop_input; | |||
| #endif | |||
| av_strlcpy(s->path, s1->filename, sizeof(s->path)); | |||
| s->img_number = 0; | |||
| s->img_count = 0; | |||
| @@ -306,7 +312,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt) | |||
| if (!s->is_pipe) { | |||
| /* loop over input */ | |||
| if (s1->loop_input && s->img_number > s->img_last) { | |||
| if (s->loop && s->img_number > s->img_last) { | |||
| s->img_number = s->img_first; | |||
| } | |||
| if (s->img_number > s->img_last) | |||
| @@ -467,6 +473,7 @@ static const AVOption options[] = { | |||
| { "pixel_format", "", OFFSET(pixel_format), FF_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC }, | |||
| { "video_size", "", OFFSET(video_size), FF_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC }, | |||
| { "framerate", "", OFFSET(framerate), FF_OPT_TYPE_STRING, {.str = "25"}, 0, 0, DEC }, | |||
| { "loop", "", OFFSET(loop), FF_OPT_TYPE_INT, {.dbl = 0}, 0, 1, DEC }, | |||
| { NULL }, | |||
| }; | |||
| @@ -939,7 +939,7 @@ static int mkv_write_ass_blocks(AVFormatContext *s, AVIOContext *pb, AVPacket *p | |||
| size -= start - data; | |||
| sscanf(data, "Dialogue: %d,", &layer); | |||
| i = snprintf(buffer, sizeof(buffer), "%"PRId64",%d,", | |||
| s->streams[pkt->stream_index]->nb_frames++, layer); | |||
| s->streams[pkt->stream_index]->nb_frames, layer); | |||
| size = FFMIN(i+size, sizeof(buffer)); | |||
| memcpy(buffer+i, start, size-i); | |||
| @@ -21,10 +21,14 @@ | |||
| #include <strings.h> | |||
| #include "avformat.h" | |||
| #include "avio_internal.h" | |||
| #include "id3v1.h" | |||
| #include "id3v2.h" | |||
| #include "rawenc.h" | |||
| #include "libavutil/avstring.h" | |||
| #include "libavcodec/mpegaudio.h" | |||
| #include "libavcodec/mpegaudiodata.h" | |||
| #include "libavcodec/mpegaudiodecheader.h" | |||
| #include "libavutil/intreadwrite.h" | |||
| #include "libavutil/opt.h" | |||
| #include "libavcodec/mpegaudio.h" | |||
| @@ -132,15 +136,39 @@ static int id3v2_put_ttag(AVFormatContext *s, const char *str1, const char *str2 | |||
| return len + ID3v2_HEADER_SIZE; | |||
| } | |||
| #define VBR_NUM_BAGS 400 | |||
| #define VBR_TOC_SIZE 100 | |||
| typedef struct MP3Context { | |||
| const AVClass *class; | |||
| int id3v2_version; | |||
| int64_t frames_offset; | |||
| int32_t frames; | |||
| int32_t size; | |||
| uint32_t want; | |||
| uint32_t seen; | |||
| uint32_t pos; | |||
| uint64_t bag[VBR_NUM_BAGS]; | |||
| } MP3Context; | |||
| static int mp2_write_trailer(struct AVFormatContext *s) | |||
| { | |||
| uint8_t buf[ID3v1_TAG_SIZE]; | |||
| MP3Context *mp3 = s->priv_data; | |||
| /* write the id3v1 tag */ | |||
| if (id3v1_create_tag(s, buf) > 0) { | |||
| avio_write(s->pb, buf, ID3v1_TAG_SIZE); | |||
| avio_flush(s->pb); | |||
| } | |||
| /* write number of frames */ | |||
| if (mp3 && mp3->frames_offset) { | |||
| avio_seek(s->pb, mp3->frames_offset, SEEK_SET); | |||
| avio_wb32(s->pb, s->streams[0]->nb_frames); | |||
| avio_seek(s->pb, 0, SEEK_END); | |||
| } | |||
| avio_flush(s->pb); | |||
| return 0; | |||
| } | |||
| @@ -160,19 +188,6 @@ AVOutputFormat ff_mp2_muxer = { | |||
| #endif | |||
| #if CONFIG_MP3_MUXER | |||
| #define VBR_NUM_BAGS 400 | |||
| #define VBR_TOC_SIZE 100 | |||
| typedef struct MP3Context { | |||
| const AVClass *class; | |||
| int id3v2_version; | |||
| int64_t frames_offset; | |||
| int32_t frames; | |||
| int32_t size; | |||
| uint32_t want; | |||
| uint32_t seen; | |||
| uint32_t pos; | |||
| uint64_t bag[VBR_NUM_BAGS]; | |||
| } MP3Context; | |||
| static const AVOption options[] = { | |||
| { "id3v2_version", "Select ID3v2 version to write. Currently 3 and 4 are supported.", | |||
| @@ -3122,8 +3122,9 @@ int av_write_frame(AVFormatContext *s, AVPacket *pkt) | |||
| return ret; | |||
| ret= s->oformat->write_packet(s, pkt); | |||
| if(!ret) | |||
| ret= url_ferror(s->pb); | |||
| if (ret >= 0) | |||
| s->streams[pkt->stream_index]->nb_frames++; | |||
| return ret; | |||
| } | |||
| @@ -3244,6 +3245,8 @@ int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt){ | |||
| return ret; | |||
| ret= s->oformat->write_packet(s, &opkt); | |||
| if (ret >= 0) | |||
| s->streams[opkt.stream_index]->nb_frames++; | |||
| av_free_packet(&opkt); | |||
| pkt= NULL; | |||
| @@ -3268,6 +3271,8 @@ int av_write_trailer(AVFormatContext *s) | |||
| break; | |||
| ret= s->oformat->write_packet(s, &pkt); | |||
| if (ret >= 0) | |||
| s->streams[pkt.stream_index]->nb_frames++; | |||
| av_free_packet(&pkt); | |||
| @@ -80,5 +80,11 @@ | |||
| #ifndef FF_API_AVSTREAM_QUALITY | |||
| #define FF_API_AVSTREAM_QUALITY (LIBAVFORMAT_VERSION_MAJOR < 54) | |||
| #endif | |||
| #ifndef FF_API_LOOP_INPUT | |||
| #define FF_API_LOOP_INPUT (LIBAVFORMAT_VERSION_MAJOR < 54) | |||
| #endif | |||
| #ifndef FF_API_LOOP_OUTPUT | |||
| #define FF_API_LOOP_OUTPUT (LIBAVFORMAT_VERSION_MAJOR < 54) | |||
| #endif | |||
| #endif /* AVFORMAT_VERSION_H */ | |||
| @@ -77,7 +77,8 @@ OBJS-$(ARCH_ARM) += arm/cpu.o | |||
| OBJS-$(ARCH_PPC) += ppc/cpu.o | |||
| OBJS-$(ARCH_X86) += x86/cpu.o | |||
| TESTPROGS = adler32 aes base64 cpu crc des eval lls md5 pca sha tree | |||
| TESTPROGS = adler32 aes avstring base64 cpu crc des eval file lfg lls \ | |||
| md5 opt pca parseutils rational sha tree | |||
| TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo | |||
| DIRS = arm bfin sh4 x86 | |||
| @@ -31,10 +31,42 @@ | |||
| #ifndef AVUTIL_DICT_H | |||
| #define AVUTIL_DICT_H | |||
| /** | |||
| * @defgroup dict_api Public Dictionary API | |||
| * @{ | |||
| * Dictionaries are used for storing key:value pairs. To create | |||
| * an AVDictionary, simply pass an address of a NULL pointer to | |||
| * av_dict_set(). NULL can be used as an empty dictionary wherever | |||
| * a pointer to an AVDictionary is required. | |||
| * Use av_dict_get() to retrieve an entry or iterate over all | |||
| * entries and finally av_dict_free() to free the dictionary | |||
| * and all its contents. | |||
| * | |||
| * @code | |||
| * AVDictionary *d = NULL; // "create" an empty dictionary | |||
| * av_dict_set(&d, "foo", "bar", 0); // add an entry | |||
| * | |||
| * char *k = av_strdup("key"); // if your strings are already allocated, | |||
| * char *v = av_strdup("value"); // you can avoid copying them like this | |||
| * av_dict_set(&d, k, v, AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL); | |||
| * | |||
| * AVDictionaryEntry *t = NULL; | |||
| * while (t = av_dict_get(d, "", t, AV_DICT_IGNORE_SUFFIX)) { | |||
| * <....> // iterate over all entries in d | |||
| * } | |||
| * | |||
| * av_dict_free(&d); | |||
| * @endcode | |||
| * | |||
| * @} | |||
| */ | |||
| #define AV_DICT_MATCH_CASE 1 | |||
| #define AV_DICT_IGNORE_SUFFIX 2 | |||
| #define AV_DICT_DONT_STRDUP_KEY 4 | |||
| #define AV_DICT_DONT_STRDUP_VAL 8 | |||
| #define AV_DICT_DONT_STRDUP_KEY 4 /**< Take ownership of a key that's been | |||
| allocated with av_malloc() and children. */ | |||
| #define AV_DICT_DONT_STRDUP_VAL 8 /**< Take ownership of a value that's been | |||
| allocated with av_malloc() and chilren. */ | |||
| #define AV_DICT_DONT_OVERWRITE 16 ///< Don't overwrite existing entries. | |||
| #define AV_DICT_APPEND 32 /**< If the entry already exists, append to it. Note that no | |||
| delimiter is added, the strings are simply concatenated. */ | |||
| @@ -80,7 +112,8 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags | |||
| void av_dict_copy(AVDictionary **dst, AVDictionary *src, int flags); | |||
| /** | |||
| * Free all the memory allocated for an AVDictionary struct. | |||
| * Free all the memory allocated for an AVDictionary struct | |||
| * and all keys and values. | |||
| */ | |||
| void av_dict_free(AVDictionary **m); | |||
| @@ -30,76 +30,88 @@ | |||
| #include "lls.h" | |||
| void av_init_lls(LLSModel *m, int indep_count){ | |||
| void av_init_lls(LLSModel *m, int indep_count) | |||
| { | |||
| memset(m, 0, sizeof(LLSModel)); | |||
| m->indep_count= indep_count; | |||
| m->indep_count = indep_count; | |||
| } | |||
| void av_update_lls(LLSModel *m, double *var, double decay){ | |||
| int i,j; | |||
| void av_update_lls(LLSModel *m, double *var, double decay) | |||
| { | |||
| int i, j; | |||
| for(i=0; i<=m->indep_count; i++){ | |||
| for(j=i; j<=m->indep_count; j++){ | |||
| for (i = 0; i <= m->indep_count; i++) { | |||
| for (j = i; j <= m->indep_count; j++) { | |||
| m->covariance[i][j] *= decay; | |||
| m->covariance[i][j] += var[i]*var[j]; | |||
| m->covariance[i][j] += var[i] * var[j]; | |||
| } | |||
| } | |||
| } | |||
| void av_solve_lls(LLSModel *m, double threshold, int min_order){ | |||
| int i,j,k; | |||
| double (*factor)[MAX_VARS+1]= (void*)&m->covariance[1][0]; | |||
| double (*covar )[MAX_VARS+1]= (void*)&m->covariance[1][1]; | |||
| double *covar_y = m->covariance[0]; | |||
| int count= m->indep_count; | |||
| for(i=0; i<count; i++){ | |||
| for(j=i; j<count; j++){ | |||
| double sum= covar[i][j]; | |||
| for(k=i-1; k>=0; k--) | |||
| sum -= factor[i][k]*factor[j][k]; | |||
| if(i==j){ | |||
| if(sum < threshold) | |||
| sum= 1.0; | |||
| factor[i][i]= sqrt(sum); | |||
| }else | |||
| factor[j][i]= sum / factor[i][i]; | |||
| void av_solve_lls(LLSModel *m, double threshold, int min_order) | |||
| { | |||
| int i, j, k; | |||
| double (*factor)[MAX_VARS + 1] = (void *) &m->covariance[1][0]; | |||
| double (*covar) [MAX_VARS + 1] = (void *) &m->covariance[1][1]; | |||
| double *covar_y = m->covariance[0]; | |||
| int count = m->indep_count; | |||
| for (i = 0; i < count; i++) { | |||
| for (j = i; j < count; j++) { | |||
| double sum = covar[i][j]; | |||
| for (k = i - 1; k >= 0; k--) | |||
| sum -= factor[i][k] * factor[j][k]; | |||
| if (i == j) { | |||
| if (sum < threshold) | |||
| sum = 1.0; | |||
| factor[i][i] = sqrt(sum); | |||
| } else { | |||
| factor[j][i] = sum / factor[i][i]; | |||
| } | |||
| } | |||
| } | |||
| for(i=0; i<count; i++){ | |||
| double sum= covar_y[i+1]; | |||
| for(k=i-1; k>=0; k--) | |||
| sum -= factor[i][k]*m->coeff[0][k]; | |||
| m->coeff[0][i]= sum / factor[i][i]; | |||
| for (i = 0; i < count; i++) { | |||
| double sum = covar_y[i + 1]; | |||
| for (k = i - 1; k >= 0; k--) | |||
| sum -= factor[i][k] * m->coeff[0][k]; | |||
| m->coeff[0][i] = sum / factor[i][i]; | |||
| } | |||
| for(j=count-1; j>=min_order; j--){ | |||
| for(i=j; i>=0; i--){ | |||
| double sum= m->coeff[0][i]; | |||
| for(k=i+1; k<=j; k++) | |||
| sum -= factor[k][i]*m->coeff[j][k]; | |||
| m->coeff[j][i]= sum / factor[i][i]; | |||
| for (j = count - 1; j >= min_order; j--) { | |||
| for (i = j; i >= 0; i--) { | |||
| double sum = m->coeff[0][i]; | |||
| for (k = i + 1; k <= j; k++) | |||
| sum -= factor[k][i] * m->coeff[j][k]; | |||
| m->coeff[j][i] = sum / factor[i][i]; | |||
| } | |||
| m->variance[j]= covar_y[0]; | |||
| for(i=0; i<=j; i++){ | |||
| double sum= m->coeff[j][i]*covar[i][i] - 2*covar_y[i+1]; | |||
| for(k=0; k<i; k++) | |||
| sum += 2*m->coeff[j][k]*covar[k][i]; | |||
| m->variance[j] += m->coeff[j][i]*sum; | |||
| m->variance[j] = covar_y[0]; | |||
| for (i = 0; i <= j; i++) { | |||
| double sum = m->coeff[j][i] * covar[i][i] - 2 * covar_y[i + 1]; | |||
| for (k = 0; k < i; k++) | |||
| sum += 2 * m->coeff[j][k] * covar[k][i]; | |||
| m->variance[j] += m->coeff[j][i] * sum; | |||
| } | |||
| } | |||
| } | |||
| double av_evaluate_lls(LLSModel *m, double *param, int order){ | |||
| double av_evaluate_lls(LLSModel *m, double *param, int order) | |||
| { | |||
| int i; | |||
| double out= 0; | |||
| double out = 0; | |||
| for(i=0; i<=order; i++) | |||
| out+= param[i]*m->coeff[order][i]; | |||
| for (i = 0; i <= order; i++) | |||
| out += param[i] * m->coeff[order][i]; | |||
| return out; | |||
| } | |||
| @@ -109,26 +121,29 @@ double av_evaluate_lls(LLSModel *m, double *param, int order){ | |||
| #include <stdlib.h> | |||
| #include <stdio.h> | |||
| int main(void){ | |||
| int main(void) | |||
| { | |||
| LLSModel m; | |||
| int i, order; | |||
| av_init_lls(&m, 3); | |||
| for(i=0; i<100; i++){ | |||
| for (i = 0; i < 100; i++) { | |||
| double var[4]; | |||
| double eval; | |||
| var[0] = (rand() / (double)RAND_MAX - 0.5)*2; | |||
| var[1] = var[0] + rand() / (double)RAND_MAX - 0.5; | |||
| var[2] = var[1] + rand() / (double)RAND_MAX - 0.5; | |||
| var[3] = var[2] + rand() / (double)RAND_MAX - 0.5; | |||
| var[0] = (rand() / (double) RAND_MAX - 0.5) * 2; | |||
| var[1] = var[0] + rand() / (double) RAND_MAX - 0.5; | |||
| var[2] = var[1] + rand() / (double) RAND_MAX - 0.5; | |||
| var[3] = var[2] + rand() / (double) RAND_MAX - 0.5; | |||
| av_update_lls(&m, var, 0.99); | |||
| av_solve_lls(&m, 0.001, 0); | |||
| for(order=0; order<3; order++){ | |||
| eval= av_evaluate_lls(&m, var+1, order); | |||
| for (order = 0; order < 3; order++) { | |||
| eval = av_evaluate_lls(&m, var + 1, order); | |||
| printf("real:%9f order:%d pred:%9f var:%f coeffs:%f %9f %9f\n", | |||
| var[0], order, eval, sqrt(m.variance[order] / (i+1)), | |||
| m.coeff[order][0], m.coeff[order][1], m.coeff[order][2]); | |||
| var[0], order, eval, sqrt(m.variance[order] / (i + 1)), | |||
| m.coeff[order][0], m.coeff[order][1], | |||
| m.coeff[order][2]); | |||
| } | |||
| } | |||
| return 0; | |||
| @@ -575,8 +575,9 @@ const AVOption *av_opt_find(void *obj, const char *name, const char *unit, | |||
| return o; | |||
| while (o = av_next_option(obj, o)) { | |||
| if (!strcmp(o->name, name) && (!unit || (o->unit && !strcmp(o->unit, unit))) && | |||
| (o->flags & opt_flags) == opt_flags) | |||
| if (!strcmp(o->name, name) && (o->flags & opt_flags) == opt_flags && | |||
| ((!unit && o->type != FF_OPT_TYPE_CONST) || | |||
| (unit && o->unit && !strcmp(o->unit, unit)))) | |||
| return o; | |||
| } | |||
| return NULL; | |||
| @@ -1,465 +0,0 @@ | |||
| ---------------- | |||
| ./tests/data/a-ac3.rm | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 1dd5a62b7edb3a1bcf77626af0a85bc1 first.nut | |||
| ---------------- | |||
| ./tests/data/a-adpcm_ima.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| c95390143078f08db8a3bfba5789c2da first.nut | |||
| ---------------- | |||
| ./tests/data/a-adpcm_ms.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 05e4d8842f4001fed506423e1a8ef963 first.nut | |||
| ---------------- | |||
| ./tests/data/a-adpcm_qt.aiff | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 7455d87f626f05e20030f4c93ec91e69 first.nut | |||
| ---------------- | |||
| ./tests/data/a-adpcm_swf.flv | |||
| c0402ee010a483403a655f353e184df1 first.nut | |||
| ---------------- | |||
| ./tests/data/a-adpcm_yam.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| f861047f6c6f75cdf3ce7bb78a4003ad first.nut | |||
| ---------------- | |||
| ./tests/data/a-alac.m4a | |||
| first.nut second.nut differ: char 34, line 1 | |||
| ab152b0b01e540e74b04a807e3882083 first.nut | |||
| ---------------- | |||
| ./tests/data/a-asv1.avi | |||
| 636fc0dfef1830cc51cf2c182bd4a7b2 first.nut | |||
| ---------------- | |||
| ./tests/data/a-asv2.avi | |||
| bbfc299390378c7bdbd7463434d8fcbe first.nut | |||
| ---------------- | |||
| ./tests/data/a-dnxhd-1080i.mov | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 037e31900e6cdf7161c2a0df23d9dc9d first.nut | |||
| ---------------- | |||
| ./tests/data/a-dnxhd-720p-rd.dnxhd | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 1237abac554ea9adb2a926641eec0de0 first.nut | |||
| ---------------- | |||
| ./tests/data/a-dnxhd-720p.dnxhd | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 6694322cefa2f482bc3dac8be22eb5d5 first.nut | |||
| ---------------- | |||
| ./tests/data/a-dv.dv | |||
| 1aa367a56d31bb45f98d820121820909 first.nut | |||
| ---------------- | |||
| ./tests/data/a-dv411.dv | |||
| 7ef296512960e00d96850f2606b4b683 first.nut | |||
| ---------------- | |||
| ./tests/data/a-dv50.dv | |||
| 6424dd39e22a1789a8182d7e8da224a9 first.nut | |||
| ---------------- | |||
| ./tests/data/a-error-mpeg4-adv.avi | |||
| 715b262e3e7c9be2b59525ba0289f30e first.nut | |||
| ---------------- | |||
| ./tests/data/a-ffv1.avi | |||
| edada4da2170ffd3386636cff67a90f0 first.nut | |||
| ---------------- | |||
| ./tests/data/a-flac.flac | |||
| d5e0a6d87034c21627afb2a904412a21 first.nut | |||
| ---------------- | |||
| ./tests/data/a-flashsv.flv | |||
| 985076a8a87df1f91b34cbb81ce96217 first.nut | |||
| ---------------- | |||
| ./tests/data/a-flv.flv | |||
| 6d01a0eb07c15ec3d0a70bfad0615bec first.nut | |||
| ---------------- | |||
| ./tests/data/a-g726.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 59540b44c97b8e1eafc53ebdaeaf3eb8 first.nut | |||
| ---------------- | |||
| ./tests/data/a-h261.avi | |||
| 18d47cc50e05e5c855a8aec1a5d8d9ec first.nut | |||
| ---------------- | |||
| ./tests/data/a-h263.avi | |||
| 91b67a478420a30cf10c3d872f7e799b first.nut | |||
| ---------------- | |||
| ./tests/data/a-h263p.avi | |||
| 1e9f108181dca2dd3bb621bb45fc5834 first.nut | |||
| ---------------- | |||
| ./tests/data/a-huffyuv.avi | |||
| 62dccc2a428b561c08497f8378ea1567 first.nut | |||
| ---------------- | |||
| ./tests/data/a-jpegls.avi | |||
| 35f1bb0f9b14bf3eb29134784f278c4f first.nut | |||
| ---------------- | |||
| ./tests/data/a-ljpeg.avi | |||
| 45ec1072d8e55d6cfa784cc732830f3c first.nut | |||
| ---------------- | |||
| ./tests/data/a-mjpeg.avi | |||
| 4e6d42fdda880661de8308cfa45652ee first.nut | |||
| ---------------- | |||
| ./tests/data/a-mp2.mp2 | |||
| 6c8d1a33dd994d63c68e5c9953b5cb8c first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg1.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 9d444c67713ef70c06d35fd355200ed5 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg1b.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 9d444c67713ef70c06d35fd355200ed5 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg2.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 328f6a0069b76397c5ed0dcea8b69b50 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg2.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 328f6a0069b76397c5ed0dcea8b69b50 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg2_422.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| d27035bcf30801cd1bee6ac59e8f5e3e first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg2i.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| c3351b79649825a6b9f62a2a1db633c1 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg2ivlc-qprd.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| d910da52fa10eb1deca10fa9443132d2 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg2reuse.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| c3351b79649825a6b9f62a2a1db633c1 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg2thread.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| c3351b79649825a6b9f62a2a1db633c1 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg2threadivlc.mpg | |||
| first.nut second.nut differ: char 34, line 1 | |||
| c3351b79649825a6b9f62a2a1db633c1 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg4-Q.avi | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 305bab90451e2c3b741e3aef51bc2a4c first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg4-adap.avi | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 5d9315ec49c4122f6f23cf84cab5fc53 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg4-adv.avi | |||
| 5d672bf4c2e879d6a20e349cb4dc09a6 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg4-nr.avi | |||
| 0243b2e03115fe948f99da1ee10ae588 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg4-qprd.avi | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 5d9315ec49c4122f6f23cf84cab5fc53 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg4-rc.avi | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 5d9315ec49c4122f6f23cf84cab5fc53 first.nut | |||
| ---------------- | |||
| ./tests/data/a-mpeg4-thread.avi | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 6aa94d589e9e7626e51575d8a2aec6e7 first.nut | |||
| ---------------- | |||
| ./tests/data/a-msmpeg4.avi | |||
| 836d432509ff22fd363237ef1dced5f3 first.nut | |||
| ---------------- | |||
| ./tests/data/a-msmpeg4v2.avi | |||
| 37f253da3666fb057edecb86ed2dba39 first.nut | |||
| ---------------- | |||
| ./tests/data/a-odivx.mp4 | |||
| e3bd9d8a3417abc749c489e64119dbf3 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_alaw.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 22853e7806b0f0162fd5e2573e34b03c first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_f32be.au | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 94cb60c3107ec509af79191e86099a0e first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_f32le.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 8d887b27a8531390af5b682557631986 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_f64be.au | |||
| first.nut second.nut differ: char 34, line 1 | |||
| e0c7b64e13bb9398a57dac60806515fb first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_f64le.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 9dbb9bda0c990502e910e082a008433f first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_mulaw.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 78c4aae32fdddaba4f9caa5683018c94 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s16be.mkv | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 279810a0c30a06c4ab7de154e3de140d first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s16be.mov | |||
| first.nut second.nut differ: char 42, line 1 | |||
| 0a8ede3d121f17a98e9038771eb98e1a first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s16le.mkv | |||
| 47942f5188f8d081bcbe7fb82550b135 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s16le.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 9f868acb99ba107750f165431f95c382 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s24be.mov | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 9c96762f631851014dec14b506091cc1 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s24daud.302 | |||
| 60ecb7037b205e2013490fdadab9697b first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s24le.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 5805a2e6e2eddede4757fd488d0d6adb first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s32be.mov | |||
| first.nut second.nut differ: char 34, line 1 | |||
| d6c868a1130be573bbe0cfc88913a60c first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s32le.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 3e0a81669647739c490f12521f897527 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_s8.mov | |||
| first.nut second.nut differ: char 34, line 1 | |||
| a6fe0827966ee4515f27c7053d579229 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_u8.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| f0d398fd651cdedfd7b4c5433c08fd79 first.nut | |||
| ---------------- | |||
| ./tests/data/a-pcm_zork.wav | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 69e40cc9266836a7101000677ee14a87 first.nut | |||
| ---------------- | |||
| ./tests/data/a-roqav.roq | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 0e7a57bb28054b7e319eac2ba0a4be23 first.nut | |||
| ---------------- | |||
| ./tests/data/a-rv10.rm | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 80f982c6bffea91ff45a9b320cb93c14 first.nut | |||
| ---------------- | |||
| ./tests/data/a-rv20.rm | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 5b02113c0941578ca6918215eed8a728 first.nut | |||
| ---------------- | |||
| ./tests/data/a-snow.avi | |||
| e73b88690aa491491ede5970641134ad first.nut | |||
| ---------------- | |||
| ./tests/data/a-snow53.avi | |||
| 18a6b061252c8c74bd22b42a7d5b2bae first.nut | |||
| ---------------- | |||
| ./tests/data/a-svq1.mov | |||
| first.nut second.nut differ: char 197, line 1 | |||
| 6bbe90d47c1763654e8388ce51ab911e first.nut | |||
| ---------------- | |||
| ./tests/data/a-wmav1.asf | |||
| first.nut second.nut differ: char 34, line 1 | |||
| c3f7bc239ff166d738b29252b47bd437 first.nut | |||
| ---------------- | |||
| ./tests/data/a-wmav2.asf | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 930f1824b9677f0b6b714f1c6ddcf825 first.nut | |||
| ---------------- | |||
| ./tests/data/a-wmv1.avi | |||
| 206bd9985b575f61a8a580656af39beb first.nut | |||
| ---------------- | |||
| ./tests/data/a-wmv2.avi | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-bgr24.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-gray.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-monob.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-monow.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-rgb24.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-rgb32.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-rgb555.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-rgb565.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuv410p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuv411p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuv420p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuv422p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuv440p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuv444p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuvj420p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuvj422p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuvj440p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuvj444p.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf-yuyv422.yuv | |||
| 09178a3c2b99d4f7ad1f7a761a2b803a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.aif | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 3f1d3faae1671f1cf862ddb66a5c59d1 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.al | |||
| e6d4b977e74a535b039a6a1dfed2dbc1 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.asf | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 57727c41b3974697c0a79cfd08515ddd first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.au | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 1da12f41bc5ea1fd851e8a48b222c204 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.avi | |||
| a88edf9fb8e02e658ba3cae9313a3cdc first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.dv | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 819018a5d91c55312ffe784e8712ac4b first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.ffm | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 17f8894a05c71adb51c9a0ff1b9040bb first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.flv | |||
| d74edb56e74e0eea748863f3aeeafa61 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.gif | |||
| first.nut second.nut differ: char 34, line 1 | |||
| ef9ba6bf88f44d9d326049ef2872a4d3 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.gxf | |||
| first.nut second.nut differ: char 44, line 1 | |||
| 522957f46ba46051fd03a0868c905e54 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.mkv | |||
| 8c9427bb75c96210d6580d9b881d9e4d first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.mmf | |||
| first.nut second.nut differ: char 42, line 1 | |||
| 298136aef02389fc5b0844995fe6ac72 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.mov | |||
| ce895b33ff206fafbae89fd5a8f959d2 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.mpg | |||
| d279e3343993267241c2fac4f4563cdb first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.mxf | |||
| first.nut second.nut differ: char 34, line 1 | |||
| 3e98a90d40986b8ea4305be06175927a first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.mxf_d10 | |||
| 1ee69644165344a096ddfaaac951a0e9 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.nut | |||
| 1426bca4c65796516a3e94b6bebc5a58 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.ogg | |||
| c986ce79045f2068ae1bedc2b8702884 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.rm | |||
| first.nut second.nut differ: char 34, line 1 | |||
| a3b2c9d3ec2c86b6d4c3bf0ed91391c3 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.swf | |||
| first.nut second.nut differ: char 34, line 1 | |||
| d4a5c5e6343dc17bed49397d889e0799 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.ts | |||
| 40fd2ece0c8386d3a250943eab023795 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.ul | |||
| 1c4c747e2e9c0fd195656359341eef76 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.voc | |||
| first.nut second.nut differ: char 42, line 1 | |||
| 500ef42830c5bc2af849dbdcc4380f1b first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.wav | |||
| first.nut second.nut differ: char 42, line 1 | |||
| 8d4c6a79af442610ad912625c9b85d02 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf.y4m | |||
| f42a6ff4488de306925b057ecee75b0e first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf02.bmp | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 02e3c782ef3a0c96e820201d4d4b8268 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf02.jpg | |||
| 61a19c3012a5aa056d8e9a589e29de2e first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf02.pcx | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 3c4e1b9c8d5dd2bedb8eebd1edc7a2f5 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf02.pgm | |||
| first.nut second.nut differ: char 113, line 1 | |||
| cc36bdadd7aef501a6d5d588dec2188b first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf02.ppm | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 453ec690bea6c3668e2b65e0b7ad14c8 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf02.sgi | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 6cdadd58aaa5ad196697352e96723e52 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf02.tga | |||
| 4144d2b4ee2948c1a16f7fc31b381be3 first.nut | |||
| ---------------- | |||
| ./tests/data/b-lavf02.tiff | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 237fa2da2d5f4930dae9825c9cf928a6 first.nut | |||
| ---------------- | |||
| ./tests/data/b-pbmpipe.pbm | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 2c65ef7188398da8a5f107b9dd5fb998 first.nut | |||
| ---------------- | |||
| ./tests/data/b-pgmpipe.pgm | |||
| first.nut second.nut differ: char 113, line 1 | |||
| b7e98248ada1e6f7170bc7fedee3825c first.nut | |||
| ---------------- | |||
| ./tests/data/b-ppmpipe.ppm | |||
| first.nut second.nut differ: char 113, line 1 | |||
| 869fcefe430c35a9a8e46fd5f040b62e first.nut | |||
| @@ -1,3 +1,3 @@ | |||
| 98968ceb210ab260a6a7af36767b94d3 *./tests/data/lavf/lavf.gif | |||
| 2906382 ./tests/data/lavf/lavf.gif | |||
| e6089fd4ef3b9df44090ab3650bdd810 *./tests/data/lavf/lavf.gif | |||
| 2906401 ./tests/data/lavf/lavf.gif | |||
| ./tests/data/lavf/lavf.gif CRC=0xe5605ff6 | |||
| @@ -1,4 +1,4 @@ | |||
| ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: -1 size:2906382 | |||
| ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: -1 size:2906401 | |||
| ret:-EINVAL st:-1 flags:0 ts:-1.000000 | |||
| ret:-EINVAL st:-1 flags:1 ts: 1.894167 | |||
| ret:-EINVAL st: 0 flags:0 ts: 0.800000 | |||