* 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 | |||