1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-02-14 22:22:59 +02:00

Merge remote-tracking branch 'qatar/master'

* qatar/master: (27 commits)
  avconv: free packet in write_frame() when discarding due to frame number limit
  FATE: use +/- flag option syntax for vp8 emu-edge tests
  lavf: make av_interleave_packet_per_dts() private.
  lavf: deprecate av_read_packet().
  oggdec: output correct timestamps for Vorbis
  avconv: pass input stream timestamps to audio encoders
  lavc: shrink encoded audio packet size after encoding.
  xa: set correct bit rate
  xa: do not set bit_rate, block_align, or bits_per_coded_sample
  xa: fix end-of-file handling
  xa: fix timestamp calculation
  bink: fix typo in FFALIGN() argument
  bink: align plane width to 8 when calculating bundle sizes
  doc: pass -Idoc texi2html and texi2pod
  doc: texi2pod: add -I flag
  movenc: Add a min_frag_duration option
  rtsp: Set the default delay to 0.1 s for the RTSP/SDP/RTP demuxers
  libavformat: Set the default for the max_delay option to -1
  Generate manpages for AV{Format,Codec}Context AVOptions.
  doc/avconv: remove entries for AVOptions.
  ...

Conflicts:
	doc/Makefile
	doc/ffmpeg.texi
	doc/muxers.texi
	ffmpeg.c
	libavcodec/Makefile
	libavcodec/options.c
	libavcodec/vp8.c
	libavformat/options.c
	tests/fate/demux.mak
	tests/ref/fate/truemotion1-15
	tests/ref/fate/truemotion1-24

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2012-03-21 00:15:18 +01:00
commit 0ebd83617f
43 changed files with 1708 additions and 1467 deletions

View File

@ -19,7 +19,7 @@ PROGS := $(PROGS-yes:%=%$(EXESUF))
INSTPROGS = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
OBJS = $(PROGS-yes:%=%.o) cmdutils.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64
HOSTPROGS := $(TESTTOOLS:%=tests/%)
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
TOOLS = qt-faststart trasher
TOOLS-$(CONFIG_ZLIB) += cws2fws

View File

@ -28,18 +28,27 @@ doc/%.txt: doc/%.texi
$(Q)$(TEXIDEP)
$(M)makeinfo --force --no-headers -o $@ $< 2>/dev/null
doc/print_options.o: libavformat/options_table.h libavcodec/options_table.h
GENTEXI = format codec
GENTEXI := $(GENTEXI:%=doc/avoptions_%.texi)
$(GENTEXI): TAG = GENTEXI
$(GENTEXI): doc/avoptions_%.texi: doc/print_options
$(M)doc/print_options $* > $@
doc/%.html: TAG = HTML
doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init
doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)texi2html -monolithic --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
$(M)texi2html -I doc -monolithic --init-file $(SRC_PATH)/doc/t2h.init --output $@ $<
doc/%.pod: TAG = POD
doc/%.pod: doc/%.texi
doc/%.pod: doc/%.texi $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)$(SRC_PATH)/doc/texi2pod.pl $< $@
$(M)$(SRC_PATH)/doc/texi2pod.pl -Idoc $< $@
doc/%.1: TAG = MAN
doc/%.1: doc/%.pod
doc/%.1: doc/%.pod $(GENTEXI)
$(M)pod2man --section=1 --center=" " --release=" " $< > $@
$(DOCS): | doc
@ -57,7 +66,7 @@ uninstall-man:
$(RM) $(addprefix "$(MANDIR)/man1/",$(ALLMANPAGES))
clean::
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 $(CLEANSUFFIXES:%=doc/%)
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi
-include $(wildcard $(DOCS:%=%.d))

View File

@ -175,3 +175,6 @@ use @option{-option 0}/@option{-option 1}.
Note2 old undocumented way of specifying per-stream AVOptions by prepending
v/a/s to the options name is now obsolete and will be removed soon.
@include avoptions_codec.texi
@include avoptions_format.texi

View File

@ -370,25 +370,7 @@ pad=width:height:x:y:color instead.
@item -vn (@emph{output})
Disable video recording.
@item -bt @var{tolerance}
Set video bitrate tolerance (in bits, default 4000k).
Has a minimum value of: (target_bitrate/target_framerate).
In 1-pass mode, bitrate tolerance specifies how far ratecontrol is
willing to deviate from the target average bitrate value. This is
not related to min/max bitrate. Lowering tolerance too much has
an adverse effect on quality.
@item -maxrate @var{bitrate}
Set max video bitrate (in bit/s).
Requires -bufsize to be set.
@item -minrate @var{bitrate}
Set min video bitrate (in bit/s).
Most useful in setting up a CBR encode:
@example
ffmpeg -i myfile.avi -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
@end example
It is of little use elsewise.
@item -bufsize @var{size}
Set video buffer verifier buffer size (in bits).
@item -vcodec @var{codec} (@emph{output})
Set the video codec. This is an alias for @code{-codec:v}.
@item -same_quant
@ -435,197 +417,14 @@ Set pixel format. Use @code{-pix_fmts} to show all the supported
pixel formats.
@item -sws_flags @var{flags} (@emph{input/output})
Set SwScaler flags.
@item -g @var{gop_size}
Set the group of pictures size.
@item -intra
deprecated, use -g 1
@item -vdt @var{n}
Discard threshold.
@item -qmin @var{q}
minimum video quantizer scale (VBR)
@item -qmax @var{q}
maximum video quantizer scale (VBR)
@item -qdiff @var{q}
maximum difference between the quantizer scales (VBR)
@item -qblur @var{blur}
video quantizer scale blur (VBR) (range 0.0 - 1.0)
@item -qcomp @var{compression}
video quantizer scale compression (VBR) (default 0.5).
Constant of ratecontrol equation. Recommended range for default rc_eq: 0.0-1.0
@item -lmin @var{lambda}
minimum video lagrange factor (VBR)
@item -lmax @var{lambda}
max video lagrange factor (VBR)
@item -mblmin @var{lambda}
minimum macroblock quantizer scale (VBR)
@item -mblmax @var{lambda}
maximum macroblock quantizer scale (VBR)
These four options (lmin, lmax, mblmin, mblmax) use 'lambda' units,
but you may use the QP2LAMBDA constant to easily convert from 'q' units:
@example
ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
@end example
@item -rc_init_cplx @var{complexity}
initial complexity for single pass encoding
@item -b_qfactor @var{factor}
qp factor between P- and B-frames
@item -i_qfactor @var{factor}
qp factor between P- and I-frames
@item -b_qoffset @var{offset}
qp offset between P- and B-frames
@item -i_qoffset @var{offset}
qp offset between P- and I-frames
@item -rc_eq @var{equation}
Set rate control equation (see section "Expression Evaluation")
(default = @code{tex^qComp}).
When computing the rate control equation expression, besides the
standard functions defined in the section "Expression Evaluation", the
following functions are available:
@table @var
@item bits2qp(bits)
@item qp2bits(qp)
@end table
and the following constants are available:
@table @var
@item iTex
@item pTex
@item tex
@item mv
@item fCode
@item iCount
@item mcVar
@item var
@item isI
@item isP
@item isB
@item avgQP
@item qComp
@item avgIITex
@item avgPITex
@item avgPPTex
@item avgBPTex
@item avgTex
@end table
@item -rc_override[:@var{stream_specifier}] @var{override} (@emph{output,per-stream})
Rate control override for specific intervals, formatted as "int,int,int"
list separated with slashes. Two first values are the beginning and
end frame numbers, last one is quantizer to use if positive, or quality
factor if negative.
@item -me_method @var{method}
Set motion estimation method to @var{method}.
Available methods are (from lowest to best quality):
@table @samp
@item zero
Try just the (0, 0) vector.
@item phods
@item log
@item x1
@item hex
@item umh
@item epzs
(default method)
@item full
exhaustive search (slow and marginally better than epzs)
@end table
@item -dct_algo @var{algo}
Set DCT algorithm to @var{algo}. Available values are:
@table @samp
@item 0
FF_DCT_AUTO (default)
@item 1
FF_DCT_FASTINT
@item 2
FF_DCT_INT
@item 3
FF_DCT_MMX
@item 4
FF_DCT_MLIB
@item 5
FF_DCT_ALTIVEC
@end table
@item -idct_algo @var{algo}
Set IDCT algorithm to @var{algo}. Available values are:
@table @samp
@item 0
FF_IDCT_AUTO (default)
@item 1
FF_IDCT_INT
@item 2
FF_IDCT_SIMPLE
@item 3
FF_IDCT_SIMPLEMMX
@item 4
FF_IDCT_LIBMPEG2MMX
@item 5
FF_IDCT_PS2
@item 6
FF_IDCT_MLIB
@item 7
FF_IDCT_ARM
@item 8
FF_IDCT_ALTIVEC
@item 9
FF_IDCT_SH4
@item 10
FF_IDCT_SIMPLEARM
@end table
@item -er @var{n}
Set error resilience to @var{n}.
@table @samp
@item 1
FF_ER_CAREFUL (default)
@item 2
FF_ER_COMPLIANT
@item 3
FF_ER_AGGRESSIVE
@item 4
FF_ER_VERY_AGGRESSIVE
@end table
@item -ec @var{bit_mask}
Set error concealment to @var{bit_mask}. @var{bit_mask} is a bit mask of
the following values:
@table @samp
@item 1
FF_EC_GUESS_MVS (default = enabled)
@item 2
FF_EC_DEBLOCK (default = enabled)
@end table
@item -bf @var{frames}
Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4).
@item -mbd @var{mode}
macroblock decision
@table @samp
@item 0
FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in ffmpeg).
@item 1
FF_MB_DECISION_BITS: Choose the one which needs the fewest bits.
@item 2
FF_MB_DECISION_RD: rate distortion
@end table
@item -4mv
Use four motion vector by macroblock (MPEG-4 only).
@item -part
Use data partitioning (MPEG-4 only).
@item -bug @var{param}
Work around encoder bugs that are not auto-detected.
@item -strict @var{strictness}
How strictly to follow the standards.
@item -aic
Enable Advanced intra coding (h263+).
@item -umv
Enable Unlimited Motion Vector (h263+)
@item -deinterlace
Deinterlace pictures.
@ -696,28 +495,6 @@ of supported sample formats.
@table @option
@item -atag @var{fourcc/tag} (@emph{output})
Force audio tag/fourcc. This is an alias for @code{-tag:a}.
@item -audio_service_type @var{type}
Set the type of service that the audio stream contains.
@table @option
@item ma
Main Audio Service (default)
@item ef
Effects
@item vi
Visually Impaired
@item hi
Hearing Impaired
@item di
Dialogue
@item co
Commentary
@item em
Emergency
@item vo
Voice Over
@item ka
Karaoke
@end table
@item -absf @var{bitstream_filter}
Deprecated, see -bsf
@end table
@ -945,8 +722,6 @@ Exit after ffmpeg has been running for @var{duration} seconds.
Dump each input packet to stderr.
@item -hex (@emph{global})
When dumping packets, also dump the payload.
@item -ps @var{size}
Set RTP payload size in bytes.
@item -re (@emph{input})
Read input at native frame rate. Mainly used to simulate a grab device.
@item -loop_input
@ -957,8 +732,6 @@ This option is deprecated, use -loop 1.
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}
Video sync method.
For compatibility reasons old values can be specified as numbers.
@ -1294,6 +1067,19 @@ ffmpeg -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy tes
The resulting output file @file{test12.avi} will contain first four streams from
the input file in reverse order.
@item
To force CBR video output:
@example
ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
@end example
@item
The four options lmin, lmax, mblmin and mblmax use 'lambda' units,
but you may use the QP2LAMBDA constant to easily convert from 'q' units:
@example
ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
@end example
@end itemize
@c man end EXAMPLES

View File

@ -181,8 +181,15 @@ Allow the caller to manually choose when to cut fragments, by
calling @code{av_write_frame(ctx, NULL)} to write a fragment with
the packets written so far. (This is only useful with other
applications integrating libavformat, not from @command{ffmpeg}.)
@item -min_frag_duration @var{duration}
Don't create fragments that are shorter than @var{duration} microseconds long.
@end table
If more than one condition is specified, fragments are cut when
one of the specified conditions is fulfilled. The exception to this is
@code{-min_frag_duration}, which has to be fulfilled for any of the other
conditions to apply.
Additionally, the way the output file is written can be adjusted
through a few other options:

123
doc/print_options.c Normal file
View File

@ -0,0 +1,123 @@
/*
* Copyright (c) 2012 Anton Khirnov
*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* generate texinfo manpages for avoptions
*/
#include <stddef.h>
#include <string.h>
#include <float.h>
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "libavutil/opt.h"
static void print_usage(void)
{
fprintf(stderr, "Usage: enum_options type\n"
"type: format codec\n");
exit(1);
}
static void print_option(const AVOption *opts, const AVOption *o, int per_stream)
{
printf("@item -%s%s @var{", o->name, per_stream ? "[:stream_specifier]" : "");
switch (o->type) {
case AV_OPT_TYPE_BINARY: printf("hexadecimal string"); break;
case AV_OPT_TYPE_STRING: printf("string"); break;
case AV_OPT_TYPE_INT:
case AV_OPT_TYPE_INT64: printf("integer"); break;
case AV_OPT_TYPE_FLOAT:
case AV_OPT_TYPE_DOUBLE: printf("float"); break;
case AV_OPT_TYPE_RATIONAL: printf("rational number"); break;
case AV_OPT_TYPE_FLAGS: printf("flags"); break;
default: printf("value"); break;
}
printf("} (@emph{");
if (o->flags & AV_OPT_FLAG_DECODING_PARAM) {
printf("input");
if (o->flags & AV_OPT_FLAG_ENCODING_PARAM)
printf("/");
}
if (o->flags & AV_OPT_FLAG_ENCODING_PARAM) printf("output");
if (o->flags & AV_OPT_FLAG_AUDIO_PARAM) printf(",audio");
if (o->flags & AV_OPT_FLAG_VIDEO_PARAM) printf(",video");
if (o->flags & AV_OPT_FLAG_SUBTITLE_PARAM) printf(",subtitles");
printf("})\n");
if (o->help)
printf("%s\n", o->help);
if (o->unit) {
const AVOption *u;
printf("\nPossible values:\n@table @samp\n");
for (u = opts; u->name; u++) {
if (u->type == AV_OPT_TYPE_CONST && u->unit && !strcmp(u->unit, o->unit))
printf("@item %s\n%s\n", u->name, u->help ? u->help : "");
}
printf("@end table\n");
}
}
static void show_opts(const AVOption *opts, int per_stream)
{
const AVOption *o;
printf("@table @option\n");
for (o = opts; o->name; o++) {
if (o->type != AV_OPT_TYPE_CONST)
print_option(opts, o, per_stream);
}
printf("@end table\n");
}
static void show_format_opts(void)
{
#include "libavformat/options_table.h"
printf("@section Format AVOptions\n");
show_opts(options, 0);
}
static void show_codec_opts(void)
{
#include "libavcodec/options_table.h"
printf("@section Codec AVOptions\n");
show_opts(options, 1);
}
int main(int argc, char **argv)
{
if (argc < 2)
print_usage();
if (!strcmp(argv[1], "format"))
show_format_opts();
else if (!strcmp(argv[1], "codec"))
show_codec_opts();
else
print_usage();
return 0;
}

View File

@ -318,9 +318,9 @@ Accept packets only from negotiated peer address and port.
@end table
When receiving data over UDP, the demuxer tries to reorder received packets
(since they may arrive out of order, or packets may get lost totally). In
order for this to be enabled, a maximum delay must be specified in the
@code{max_delay} field of AVFormatContext.
(since they may arrive out of order, or packets may get lost totally). This
can be disabled by setting the maximum demuxing delay to zero (via
the @code{max_delay} field of AVFormatContext).
When watching multi-bitrate Real-RTSP streams with @command{ffplay}, the
streams to display can be chosen with @code{-vst} @var{n} and

View File

@ -36,7 +36,7 @@ $shift = "";
%defs = ();
$fnno = 1;
$inf = "";
$ibase = "";
@ibase = ();
while ($_ = shift) {
if (/^-D(.*)$/) {
@ -52,6 +52,8 @@ while ($_ = shift) {
die "flags may only contain letters, digits, hyphens, dashes and underscores\n"
unless $flag =~ /^[a-zA-Z0-9_-]+$/;
$defs{$flag} = $value;
} elsif (/^-I(.*)$/) {
push @ibase, $1 ne "" ? $1 : shift;
} elsif (/^-/) {
usage();
} else {
@ -61,10 +63,12 @@ while ($_ = shift) {
}
}
push @ibase, ".";
if (defined $in) {
$inf = gensym();
open($inf, "<$in") or die "opening \"$in\": $!\n";
$ibase = $1 if $in =~ m|^(.+)/[^/]+$|;
push @ibase, $1 if $in =~ m|^(.+)/[^/]+$|;
} else {
$inf = \*STDIN;
}
@ -74,7 +78,7 @@ if (defined $out) {
}
while(defined $inf) {
while(<$inf>) {
INF: while(<$inf>) {
# Certain commands are discarded without further processing.
/^\@(?:
[a-z]+index # @*index: useful only in complete manual
@ -104,11 +108,10 @@ while(<$inf>) {
push @instack, $inf;
$inf = gensym();
# Try cwd and $ibase.
open($inf, "<" . $1)
or open($inf, "<" . $ibase . "/" . $1)
or die "cannot open $1 or $ibase/$1: $!\n";
next;
for (@ibase) {
open($inf, "<" . $_ . "/" . $1) and next INF;
}
die "cannot open $1: $!\n";
};
# Look for blocks surrounded by @c man begin SECTION ... @c man end.

View File

@ -1007,8 +1007,10 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
* reordering, see do_video_out()
*/
if (!(avctx->codec_type == AVMEDIA_TYPE_VIDEO && avctx->codec)) {
if (ost->frame_number >= ost->max_frames)
if (ost->frame_number >= ost->max_frames) {
av_free_packet(pkt);
return;
}
ost->frame_number++;
}
@ -1083,6 +1085,7 @@ static int encode_audio_frame(AVFormatContext *s, OutputStream *ost,
exit_program(1);
}
frame->pts = ost->sync_opts;
ost->sync_opts += frame->nb_samples;
}
@ -5065,7 +5068,7 @@ static const OptionDef options[] = {
{ "padleft", HAS_ARG | OPT_VIDEO, {(void*)opt_pad}, "Removed, use the pad filter instead", "size" },
{ "padright", HAS_ARG | OPT_VIDEO, {(void*)opt_pad}, "Removed, use the pad filter instead", "size" },
{ "padcolor", HAS_ARG | OPT_VIDEO, {(void*)opt_pad}, "Removed, use the pad filter instead", "color" },
{ "intra", OPT_BOOL | OPT_EXPERT | OPT_VIDEO, {(void*)&intra_only}, "use only intra frames"},
{ "intra", OPT_BOOL | OPT_EXPERT | OPT_VIDEO, {(void*)&intra_only}, "deprecated use -g 1"},
{ "vn", OPT_BOOL | OPT_VIDEO | OPT_OFFSET, {.off = OFFSET(video_disable)}, "disable video" },
{ "vdt", OPT_INT | HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)&video_discard}, "discard threshold", "n" },
{ "rc_override", HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_STRING | OPT_SPEC, {.off = OFFSET(rc_overrides)}, "rate control override for specific intervals", "override" },

View File

@ -616,7 +616,7 @@ OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MXF_MUXER) += timecode.o
OBJS-$(CONFIG_NUT_MUXER) += mpegaudiodata.o
OBJS-$(CONFIG_OGG_DEMUXER) += flacdec.o flacdata.o flac.o \
dirac.o mpeg12data.o vorbis_data.o
dirac.o mpeg12data.o vorbis_parser.o vorbis_data.o
OBJS-$(CONFIG_OGG_MUXER) += xiph.o flacdec.o flacdata.o flac.o \
vorbis_data.o
OBJS-$(CONFIG_RTP_MUXER) += mpeg4audio.o mpegvideo.o xiph.o

View File

@ -146,6 +146,8 @@ enum BlockTypes {
*/
static void init_lengths(BinkContext *c, int width, int bw)
{
width = FFALIGN(width, 8);
c->bundle[BINK_SRC_BLOCK_TYPES].len = av_log2((width >> 3) + 511) + 1;
c->bundle[BINK_SRC_SUB_BLOCK_TYPES].len = av_log2(((width + 7) >> 4) + 511) + 1;

View File

@ -30,6 +30,8 @@
#include "libavutil/opt.h"
#include <float.h> /* FLT_MIN, FLT_MAX */
#include "options_table.h"
static const char* context_to_name(void* ptr) {
AVCodecContext *avc= ptr;
@ -63,384 +65,12 @@ static const AVClass *codec_child_class_next(const AVClass *prev)
return NULL;
}
#define OFFSET(x) offsetof(AVCodecContext,x)
#define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C
//these names are too long to be readable
#define V AV_OPT_FLAG_VIDEO_PARAM
#define A AV_OPT_FLAG_AUDIO_PARAM
#define S AV_OPT_FLAG_SUBTITLE_PARAM
#define E AV_OPT_FLAG_ENCODING_PARAM
#define D AV_OPT_FLAG_DECODING_PARAM
#define AV_CODEC_DEFAULT_BITRATE 200*1000
static const AVOption options[]={
{"b", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT, {.dbl = AV_CODEC_DEFAULT_BITRATE }, INT_MIN, INT_MAX, A|V|E},
{"ab", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT, {.dbl = 128*1000 }, INT_MIN, INT_MAX, A|E},
{"bt", "set video bitrate tolerance (in bits/s)", OFFSET(bit_rate_tolerance), AV_OPT_TYPE_INT, {.dbl = AV_CODEC_DEFAULT_BITRATE*20 }, 1, INT_MAX, V|E},
{"flags", NULL, OFFSET(flags), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, 0, UINT_MAX, V|A|E|D, "flags"},
{"mv4", "use four motion vector by macroblock (mpeg4)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_4MV }, INT_MIN, INT_MAX, V|E, "flags"},
{"qpel", "use 1/4 pel motion compensation", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_QPEL }, INT_MIN, INT_MAX, V|E, "flags"},
{"loop", "use loop filter", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_LOOP_FILTER }, INT_MIN, INT_MAX, V|E, "flags"},
{"qscale", "use fixed qscale", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_QSCALE }, INT_MIN, INT_MAX, 0, "flags"},
{"gmc", "use gmc", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_GMC }, INT_MIN, INT_MAX, V|E, "flags"},
{"mv0", "always try a mb with mv=<0,0>", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_MV0 }, INT_MIN, INT_MAX, V|E, "flags"},
{"input_preserved", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_INPUT_PRESERVED }, INT_MIN, INT_MAX, 0, "flags"},
{"pass1", "use internal 2pass ratecontrol in first pass mode", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_PASS1 }, INT_MIN, INT_MAX, 0, "flags"},
{"pass2", "use internal 2pass ratecontrol in second pass mode", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_PASS2 }, INT_MIN, INT_MAX, 0, "flags"},
{"gray", "only decode/encode grayscale", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_GRAY }, INT_MIN, INT_MAX, V|E|D, "flags"},
{"emu_edge", "don't draw edges", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_EMU_EDGE }, INT_MIN, INT_MAX, 0, "flags"},
{"psnr", "error[?] variables will be set during encoding", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_PSNR }, INT_MIN, INT_MAX, V|E, "flags"},
{"truncated", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_TRUNCATED }, INT_MIN, INT_MAX, 0, "flags"},
{"naq", "normalize adaptive quantization", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_NORMALIZE_AQP }, INT_MIN, INT_MAX, V|E, "flags"},
{"ildct", "use interlaced dct", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_INTERLACED_DCT }, INT_MIN, INT_MAX, V|E, "flags"},
{"low_delay", "force low delay", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_LOW_DELAY }, INT_MIN, INT_MAX, V|D|E, "flags"},
{"global_header", "place global headers in extradata instead of every keyframe", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_GLOBAL_HEADER }, INT_MIN, INT_MAX, V|A|E, "flags"},
{"bitexact", "use only bitexact stuff (except (i)dct)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_BITEXACT }, INT_MIN, INT_MAX, A|V|S|D|E, "flags"},
{"aic", "h263 advanced intra coding / mpeg4 ac prediction", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_AC_PRED }, INT_MIN, INT_MAX, V|E, "flags"},
#if FF_API_MPV_GLOBAL_OPTS
{"cbp", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_CBP_RD }, INT_MIN, INT_MAX, V|E, "flags"},
{"qprd", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_QP_RD }, INT_MIN, INT_MAX, V|E, "flags"},
#endif
{"ilme", "interlaced motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_INTERLACED_ME }, INT_MIN, INT_MAX, V|E, "flags"},
{"cgop", "closed gop", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_CLOSED_GOP }, INT_MIN, INT_MAX, V|E, "flags"},
{"fast", "allow non spec compliant speedup tricks", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_FAST }, INT_MIN, INT_MAX, V|E, "flags2"},
#if FF_API_MPV_GLOBAL_OPTS
{"sgop", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_STRICT_GOP }, INT_MIN, INT_MAX, V|E, "flags2"},
#endif
{"noout", "skip bitstream encoding", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_NO_OUTPUT }, INT_MIN, INT_MAX, V|E, "flags2"},
{"local_header", "place global headers at every keyframe instead of in extradata", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_LOCAL_HEADER }, INT_MIN, INT_MAX, V|E, "flags2"},
{"showall", "Show all frames before the first keyframe", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_SHOW_ALL }, INT_MIN, INT_MAX, V|D, "flags2"},
#if FF_API_SUB_ID
{"sub_id", NULL, OFFSET(sub_id), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
#endif
{"me_method", "set motion estimation method", OFFSET(me_method), AV_OPT_TYPE_INT, {.dbl = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method"},
{"zero", "zero motion estimation (fastest)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_ZERO }, INT_MIN, INT_MAX, V|E, "me_method" },
{"full", "full motion estimation (slowest)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_FULL }, INT_MIN, INT_MAX, V|E, "me_method" },
{"epzs", "EPZS motion estimation (default)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method" },
{"esa", "esa motion estimation (alias for full)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_FULL }, INT_MIN, INT_MAX, V|E, "me_method" },
{"tesa", "tesa motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_TESA }, INT_MIN, INT_MAX, V|E, "me_method" },
{"dia", "dia motion estimation (alias for epzs)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method" },
{"log", "log motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_LOG }, INT_MIN, INT_MAX, V|E, "me_method" },
{"phods", "phods motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_PHODS }, INT_MIN, INT_MAX, V|E, "me_method" },
{"x1", "X1 motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_X1 }, INT_MIN, INT_MAX, V|E, "me_method" },
{"hex", "hex motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_HEX }, INT_MIN, INT_MAX, V|E, "me_method" },
{"umh", "umh motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_UMH }, INT_MIN, INT_MAX, V|E, "me_method" },
{"iter", "iter motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_ITER }, INT_MIN, INT_MAX, V|E, "me_method" },
{"extradata_size", NULL, OFFSET(extradata_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, INT_MIN, INT_MAX},
{"g", "set the group of picture size", OFFSET(gop_size), AV_OPT_TYPE_INT, {.dbl = 12 }, INT_MIN, INT_MAX, V|E},
{"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|D|E},
{"ac", "set number of audio channels", OFFSET(channels), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|D|E},
{"cutoff", "set cutoff bandwidth", OFFSET(cutoff), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|E},
{"frame_size", NULL, OFFSET(frame_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|E},
{"frame_number", NULL, OFFSET(frame_number), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"delay", NULL, OFFSET(delay), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"qcomp", "video quantizer scale compression (VBR)", OFFSET(qcompress), AV_OPT_TYPE_FLOAT, {.dbl = 0.5 }, -FLT_MAX, FLT_MAX, V|E},
{"qblur", "video quantizer scale blur (VBR)", OFFSET(qblur), AV_OPT_TYPE_FLOAT, {.dbl = 0.5 }, -1, FLT_MAX, V|E},
{"qmin", "min video quantizer scale (VBR)", OFFSET(qmin), AV_OPT_TYPE_INT, {.dbl = 2 }, -1, 69, V|E},
{"qmax", "max video quantizer scale (VBR)", OFFSET(qmax), AV_OPT_TYPE_INT, {.dbl = 31 }, -1, 1024, V|E},
{"qdiff", "max difference between the quantizer scale (VBR)", OFFSET(max_qdiff), AV_OPT_TYPE_INT, {.dbl = 3 }, INT_MIN, INT_MAX, V|E},
{"bf", "use 'frames' B frames", OFFSET(max_b_frames), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, -1, FF_MAX_B_FRAMES, V|E},
{"b_qfactor", "qp factor between p and b frames", OFFSET(b_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E},
{"rc_strategy", "ratecontrol method", OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"b_strategy", "strategy to choose between I/P/B-frames", OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX, V|E},
{"ps", "rtp payload size in bytes", OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"mv_bits", NULL, OFFSET(mv_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"header_bits", NULL, OFFSET(header_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"i_tex_bits", NULL, OFFSET(i_tex_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"p_tex_bits", NULL, OFFSET(p_tex_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"i_count", NULL, OFFSET(i_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"p_count", NULL, OFFSET(p_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"skip_count", NULL, OFFSET(skip_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"misc_bits", NULL, OFFSET(misc_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"frame_bits", NULL, OFFSET(frame_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"codec_tag", NULL, OFFSET(codec_tag), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"bug", "workaround not auto detected encoder bugs", OFFSET(workaround_bugs), AV_OPT_TYPE_FLAGS, {.dbl = FF_BUG_AUTODETECT }, INT_MIN, INT_MAX, V|D, "bug"},
{"autodetect", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_AUTODETECT }, INT_MIN, INT_MAX, V|D, "bug"},
{"old_msmpeg4", "some old lavc generated msmpeg4v3 files (no autodetection)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_OLD_MSMPEG4 }, INT_MIN, INT_MAX, V|D, "bug"},
{"xvid_ilace", "Xvid interlacing bug (autodetected if fourcc==XVIX)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_XVID_ILACE }, INT_MIN, INT_MAX, V|D, "bug"},
{"ump4", "(autodetected if fourcc==UMP4)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_UMP4 }, INT_MIN, INT_MAX, V|D, "bug"},
{"no_padding", "padding bug (autodetected)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_NO_PADDING }, INT_MIN, INT_MAX, V|D, "bug"},
{"amv", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_AMV }, INT_MIN, INT_MAX, V|D, "bug"},
{"ac_vlc", "illegal vlc bug (autodetected per fourcc)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_AC_VLC }, INT_MIN, INT_MAX, V|D, "bug"},
{"qpel_chroma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_QPEL_CHROMA }, INT_MIN, INT_MAX, V|D, "bug"},
{"std_qpel", "old standard qpel (autodetected per fourcc/version)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_STD_QPEL }, INT_MIN, INT_MAX, V|D, "bug"},
{"qpel_chroma2", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_QPEL_CHROMA2 }, INT_MIN, INT_MAX, V|D, "bug"},
{"direct_blocksize", "direct-qpel-blocksize bug (autodetected per fourcc/version)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_DIRECT_BLOCKSIZE }, INT_MIN, INT_MAX, V|D, "bug"},
{"edge", "edge padding bug (autodetected per fourcc/version)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_EDGE }, INT_MIN, INT_MAX, V|D, "bug"},
{"hpel_chroma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_HPEL_CHROMA }, INT_MIN, INT_MAX, V|D, "bug"},
{"dc_clip", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_DC_CLIP }, INT_MIN, INT_MAX, V|D, "bug"},
{"ms", "workaround various bugs in microsofts broken decoders", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_MS }, INT_MIN, INT_MAX, V|D, "bug"},
{"trunc", "trancated frames", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_TRUNCATED}, INT_MIN, INT_MAX, V|D, "bug"},
#if FF_API_MPV_GLOBAL_OPTS
{"lelim", "single coefficient elimination threshold for luminance (negative values also consider dc coefficient)", OFFSET(luma_elim_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"celim", "single coefficient elimination threshold for chrominance (negative values also consider dc coefficient)", OFFSET(chroma_elim_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#endif
{"strict", "how strictly to follow the standards", OFFSET(strict_std_compliance), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|V|D|E, "strict"},
{"very", "strictly conform to a older more strict version of the spec or reference software", 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_VERY_STRICT }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"strict", "strictly conform to all the things in the spec no matter what consequences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_STRICT }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"normal", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_NORMAL }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"unofficial", "allow unofficial extensions", 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_UNOFFICIAL }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"experimental", "allow non standardized experimental things", 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_EXPERIMENTAL }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"b_qoffset", "qp offset between P and B frames", OFFSET(b_quant_offset), AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E},
{"err_detect", "set error detection flags", OFFSET(err_recognition), AV_OPT_TYPE_FLAGS, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"crccheck", "verify embedded CRCs", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"bitstream", "detect bitstream specification deviations", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_BITSTREAM }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"buffer", "detect improper bitstream length", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_BUFFER }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"explode", "abort decoding on minor error detection", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_EXPLODE }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"careful", "consider things that violate the spec and have not been seen in the wild as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CAREFUL }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"compliant", "consider all spec non compliancies as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_COMPLIANT }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"aggressive", "consider things that a sane encoder shouldnt do as an error", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_AGGRESSIVE }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"has_b_frames", NULL, OFFSET(has_b_frames), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"block_align", NULL, OFFSET(block_align), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"mpeg_quant", "use MPEG quantizers instead of H.263", OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"stats_out", NULL, OFFSET(stats_out), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX},
{"stats_in", NULL, OFFSET(stats_in), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX},
{"qsquish", "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function)", OFFSET(rc_qsquish), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, 0, 99, V|E},
{"rc_qmod_amp", "experimental quantizer modulation", OFFSET(rc_qmod_amp), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
{"rc_qmod_freq", "experimental quantizer modulation", OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"rc_override_count", NULL, OFFSET(rc_override_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"rc_eq", "set rate control equation", OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX, V|E},
{"maxrate", "set max bitrate tolerance (in bits/s)", OFFSET(rc_max_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"minrate", "set min bitrate tolerance (in bits/s)", OFFSET(rc_min_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"bufsize", "set ratecontrol buffer size (in bits)", OFFSET(rc_buffer_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|V|E},
{"rc_buf_aggressivity", "currently useless", OFFSET(rc_buffer_aggressivity), AV_OPT_TYPE_FLOAT, {.dbl = 1.0 }, -FLT_MAX, FLT_MAX, V|E},
{"i_qfactor", "qp factor between P and I frames", OFFSET(i_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = -0.8 }, -FLT_MAX, FLT_MAX, V|E},
{"i_qoffset", "qp offset between P and I frames", OFFSET(i_quant_offset), AV_OPT_TYPE_FLOAT, {.dbl = 0.0 }, -FLT_MAX, FLT_MAX, V|E},
{"rc_init_cplx", "initial complexity for 1-pass encoding", OFFSET(rc_initial_cplx), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
{"dct", "DCT algorithm", OFFSET(dct_algo), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, V|E, "dct"},
{"auto", "autoselect a good one (default)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_AUTO }, INT_MIN, INT_MAX, V|E, "dct"},
{"fastint", "fast integer", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_FASTINT }, INT_MIN, INT_MAX, V|E, "dct"},
{"int", "accurate integer", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_INT }, INT_MIN, INT_MAX, V|E, "dct"},
{"mmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_MMX }, INT_MIN, INT_MAX, V|E, "dct"},
{"altivec", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_ALTIVEC }, INT_MIN, INT_MAX, V|E, "dct"},
{"faan", "floating point AAN DCT", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_FAAN }, INT_MIN, INT_MAX, V|E, "dct"},
{"lumi_mask", "compresses bright areas stronger than medium ones", OFFSET(lumi_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"tcplx_mask", "temporal complexity masking", OFFSET(temporal_cplx_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"scplx_mask", "spatial complexity masking", OFFSET(spatial_cplx_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"p_mask", "inter masking", OFFSET(p_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"dark_mask", "compresses dark areas stronger than medium ones", OFFSET(dark_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"idct", "select IDCT implementation", OFFSET(idct_algo), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, V|E|D, "idct"},
{"auto", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_AUTO }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"int", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_INT }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simple", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLE }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplemmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"libmpeg2mmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_LIBMPEG2MMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"mmi", NULL, 0, AV_OPT_TYPE_CONST, { .dbl = FF_IDCT_MMI }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"arm", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_ARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"altivec", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_ALTIVEC }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"sh4", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SH4 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplearm", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplearmv5te", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEARMV5TE }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplearmv6", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEARMV6 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simpleneon", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLENEON }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplealpha", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEALPHA }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"h264", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_H264 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"vp3", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_VP3 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"ipp", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"xvidmmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_XVIDMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"faani", "floating point AAN IDCT", 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"},
{"slice_count", NULL, OFFSET(slice_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"ec", "set error concealment strategy", OFFSET(error_concealment), AV_OPT_TYPE_FLAGS, {.dbl = 3 }, INT_MIN, INT_MAX, V|D, "ec"},
{"guess_mvs", "iterative motion vector (MV) search (slow)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_EC_GUESS_MVS }, INT_MIN, INT_MAX, V|D, "ec"},
{"deblock", "use strong deblock filter for damaged MBs", 0, AV_OPT_TYPE_CONST, {.dbl = FF_EC_DEBLOCK }, INT_MIN, INT_MAX, V|D, "ec"},
{"bits_per_coded_sample", NULL, OFFSET(bits_per_coded_sample), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"pred", "prediction method", OFFSET(prediction_method), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "pred"},
{"left", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PRED_LEFT }, INT_MIN, INT_MAX, V|E, "pred"},
{"plane", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PRED_PLANE }, INT_MIN, INT_MAX, V|E, "pred"},
{"median", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PRED_MEDIAN }, INT_MIN, INT_MAX, V|E, "pred"},
{"aspect", "sample aspect ratio", OFFSET(sample_aspect_ratio), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, 10, V|E},
{"debug", "print specific debug info", OFFSET(debug), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, 0, INT_MAX, V|A|S|E|D, "debug"},
{"pict", "picture info", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_PICT_INFO }, INT_MIN, INT_MAX, V|D, "debug"},
{"rc", "rate control", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_RC }, INT_MIN, INT_MAX, V|E, "debug"},
{"bitstream", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_BITSTREAM }, INT_MIN, INT_MAX, V|D, "debug"},
{"mb_type", "macroblock (MB) type", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_MB_TYPE }, INT_MIN, INT_MAX, V|D, "debug"},
{"qp", "per-block quantization parameter (QP)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_QP }, INT_MIN, INT_MAX, V|D, "debug"},
{"mv", "motion vector", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_MV }, INT_MIN, INT_MAX, V|D, "debug"},
{"dct_coeff", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_DCT_COEFF }, INT_MIN, INT_MAX, V|D, "debug"},
{"skip", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_SKIP }, INT_MIN, INT_MAX, V|D, "debug"},
{"startcode", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_STARTCODE }, INT_MIN, INT_MAX, V|D, "debug"},
{"pts", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_PTS }, INT_MIN, INT_MAX, V|D, "debug"},
{"er", "error recognition", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_ER }, INT_MIN, INT_MAX, V|D, "debug"},
{"mmco", "memory management control operations (H.264)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_MMCO }, INT_MIN, INT_MAX, V|D, "debug"},
{"bugs", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_BUGS }, INT_MIN, INT_MAX, V|D, "debug"},
{"vis_qp", "visualize quantization parameter (QP), lower QP are tinted greener", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_QP }, INT_MIN, INT_MAX, V|D, "debug"},
{"vis_mb_type", "visualize block types", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_MB_TYPE }, INT_MIN, INT_MAX, V|D, "debug"},
{"buffers", "picture buffer allocations", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_BUFFERS }, INT_MIN, INT_MAX, V|D, "debug"},
{"thread_ops", "threading operations", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_THREADS }, INT_MIN, INT_MAX, V|D, "debug"},
{"vismv", "visualize motion vectors (MVs)", OFFSET(debug_mv), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, V|D, "debug_mv"},
{"pf", "forward predicted MVs of P-frames", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_MV_P_FOR }, INT_MIN, INT_MAX, V|D, "debug_mv"},
{"bf", "forward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_MV_B_FOR }, INT_MIN, INT_MAX, V|D, "debug_mv"},
{"bb", "backward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_MV_B_BACK }, INT_MIN, INT_MAX, V|D, "debug_mv"},
{"cmp", "full pel me compare function", OFFSET(me_cmp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"subcmp", "sub pel me compare function", OFFSET(me_sub_cmp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"mbcmp", "macroblock compare function", OFFSET(mb_cmp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"ildctcmp", "interlaced dct compare function", OFFSET(ildct_cmp), AV_OPT_TYPE_INT, {.dbl = FF_CMP_VSAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"dia_size", "diamond type & size for motion estimation", OFFSET(dia_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"last_pred", "amount of motion predictors from the previous frame", OFFSET(last_predictor_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"preme", "pre motion estimation", OFFSET(pre_me), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"precmp", "pre motion estimation compare function", OFFSET(me_pre_cmp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"sad", "sum of absolute differences, fast (default)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_SAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"sse", "sum of squared errors", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_SSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"satd", "sum of absolute Hadamard transformed differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_SATD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"dct", "sum of absolute DCT transformed differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_DCT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"psnr", "sum of squared quantization errors (avoid, low quality)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_PSNR }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"bit", "number of bits needed for the block", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_BIT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"rd", "rate distortion optimal, slow", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_RD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"zero", "0", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_ZERO }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"vsad", "sum of absolute vertical differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_VSAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"vsse", "sum of squared vertical differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_VSSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"nsse", "noise preserving sum of squared differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_NSSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
#if CONFIG_SNOW_ENCODER
{"w53", "5/3 wavelet, only used in snow", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_W53 }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"w97", "9/7 wavelet, only used in snow", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_W97 }, INT_MIN, INT_MAX, V|E, "cmp_func"},
#endif
{"dctmax", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"chroma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_CHROMA }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"pre_dia_size", "diamond type & size for motion estimation pre-pass", OFFSET(pre_dia_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"subq", "sub pel motion estimation quality", OFFSET(me_subpel_quality), AV_OPT_TYPE_INT, {.dbl = 8 }, INT_MIN, INT_MAX, V|E},
{"dtg_active_format", NULL, OFFSET(dtg_active_format), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"me_range", "limit motion vectors range (1023 for DivX player)", OFFSET(me_range), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"ibias", "intra quant bias", OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.dbl = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
{"pbias", "inter quant bias", OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.dbl = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
#if FF_API_COLOR_TABLE_ID
{"color_table_id", NULL, OFFSET(color_table_id), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
#endif
{"global_quality", NULL, OFFSET(global_quality), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"coder", NULL, OFFSET(coder_type), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "coder"},
{"vlc", "variable length coder / huffman coder", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_VLC }, INT_MIN, INT_MAX, V|E, "coder"},
{"ac", "arithmetic coder", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_AC }, INT_MIN, INT_MAX, V|E, "coder"},
{"raw", "raw (no encoding)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_RAW }, INT_MIN, INT_MAX, V|E, "coder"},
{"rle", "run-length coder", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_RLE }, INT_MIN, INT_MAX, V|E, "coder"},
{"deflate", "deflate-based coder", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_DEFLATE }, INT_MIN, INT_MAX, V|E, "coder"},
{"context", "context model", OFFSET(context_model), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"slice_flags", NULL, OFFSET(slice_flags), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"xvmc_acceleration", NULL, OFFSET(xvmc_acceleration), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"mbd", "macroblock decision algorithm (high quality mode)", OFFSET(mb_decision), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "mbd"},
{"simple", "use mbcmp (default)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_MB_DECISION_SIMPLE }, INT_MIN, INT_MAX, V|E, "mbd"},
{"bits", "use fewest bits", 0, AV_OPT_TYPE_CONST, {.dbl = FF_MB_DECISION_BITS }, INT_MIN, INT_MAX, V|E, "mbd"},
{"rd", "use best rate distortion", 0, AV_OPT_TYPE_CONST, {.dbl = FF_MB_DECISION_RD }, INT_MIN, INT_MAX, V|E, "mbd"},
{"stream_codec_tag", NULL, OFFSET(stream_codec_tag), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"sc_threshold", "scene change threshold", OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"lmin", "min lagrange factor (VBR)", OFFSET(lmin), AV_OPT_TYPE_INT, {.dbl = 2*FF_QP2LAMBDA }, 0, INT_MAX, V|E},
{"lmax", "max lagrange factor (VBR)", OFFSET(lmax), AV_OPT_TYPE_INT, {.dbl = 31*FF_QP2LAMBDA }, 0, INT_MAX, V|E},
{"nr", "noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"rc_init_occupancy", "number of bits which should be loaded into the rc buffer before decoding starts", OFFSET(rc_initial_buffer_occupancy), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#if FF_API_INTER_THRESHOLD
{"inter_threshold", NULL, OFFSET(inter_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#endif
{"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT}, 0, UINT_MAX, V|A|E|D, "flags2"},
{"error", NULL, OFFSET(error_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#if FF_API_MPV_GLOBAL_OPTS
{"qns", "deprecated, use mpegvideo private options instead", OFFSET(quantizer_noise_shaping), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#endif
{"threads", NULL, OFFSET(thread_count), AV_OPT_TYPE_INT, {.dbl = 1 }, 0, INT_MAX, V|E|D, "threads"},
{"auto", "detect a good number of threads", 0, AV_OPT_TYPE_CONST, {.dbl = 0 }, INT_MIN, INT_MAX, V|E|D, "threads"},
{"me_threshold", "motion estimaton threshold", OFFSET(me_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"mb_threshold", "macroblock threshold", OFFSET(mb_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"dc", "intra_dc_precision", OFFSET(intra_dc_precision), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX, V|E},
{"nssew", "nsse weight", OFFSET(nsse_weight), AV_OPT_TYPE_INT, {.dbl = 8 }, INT_MIN, INT_MAX, V|E},
{"skip_top", "number of macroblock rows at the top which are skipped", OFFSET(skip_top), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|D},
{"skip_bottom", "number of macroblock rows at the bottom which are skipped", OFFSET(skip_bottom), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|D},
{"profile", NULL, OFFSET(profile), AV_OPT_TYPE_INT, {.dbl = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "profile"},
{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "profile"},
{"aac_main", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_AAC_MAIN }, INT_MIN, INT_MAX, A|E, "profile"},
{"aac_low", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_AAC_LOW }, INT_MIN, INT_MAX, A|E, "profile"},
{"aac_ssr", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_AAC_SSR }, INT_MIN, INT_MAX, A|E, "profile"},
{"aac_ltp", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_AAC_LTP }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts_es", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS_ES }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts_96_24", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS_96_24 }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts_hd_hra", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS_HD_HRA }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts_hd_ma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS_HD_MA }, INT_MIN, INT_MAX, A|E, "profile"},
{"level", NULL, OFFSET(level), AV_OPT_TYPE_INT, {.dbl = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"},
{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"},
{"lowres", "decode at 1= 1/2, 2=1/4, 3=1/8 resolutions", OFFSET(lowres), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, V|A|D},
{"skip_threshold", "frame skip threshold", OFFSET(frame_skip_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"skip_factor", "frame skip factor", OFFSET(frame_skip_factor), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"skip_exp", "frame skip exponent", OFFSET(frame_skip_exp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"skipcmp", "frame skip compare function", OFFSET(frame_skip_cmp), AV_OPT_TYPE_INT, {.dbl = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"border_mask", "increases the quantizer for macroblocks close to borders", OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
{"mblmin", "min macroblock lagrange factor (VBR)", OFFSET(mb_lmin), AV_OPT_TYPE_INT, {.dbl = FF_QP2LAMBDA * 2 }, 1, FF_LAMBDA_MAX, V|E},
{"mblmax", "max macroblock lagrange factor (VBR)", OFFSET(mb_lmax), AV_OPT_TYPE_INT, {.dbl = FF_QP2LAMBDA * 31 }, 1, FF_LAMBDA_MAX, V|E},
{"mepc", "motion estimation bitrate penalty compensation (1.0 = 256)", OFFSET(me_penalty_compensation), AV_OPT_TYPE_INT, {.dbl = 256 }, INT_MIN, INT_MAX, V|E},
{"skip_loop_filter", NULL, OFFSET(skip_loop_filter), AV_OPT_TYPE_INT, {.dbl = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"skip_idct" , NULL, OFFSET(skip_idct) , AV_OPT_TYPE_INT, {.dbl = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"skip_frame" , NULL, OFFSET(skip_frame) , AV_OPT_TYPE_INT, {.dbl = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"none" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_NONE }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"default" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"noref" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_NONREF }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"bidir" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_BIDIR }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"nokey" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_NONKEY }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"all" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_ALL }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"bidir_refine", "refine the two motion vectors used in bidirectional macroblocks", OFFSET(bidir_refine), AV_OPT_TYPE_INT, {.dbl = 1 }, 0, 4, V|E},
{"brd_scale", "downscales frames for dynamic B-frame decision", OFFSET(brd_scale), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, 10, V|E},
{"keyint_min", "minimum interval between IDR-frames", OFFSET(keyint_min), AV_OPT_TYPE_INT, {.dbl = 25 }, INT_MIN, INT_MAX, V|E},
{"refs", "reference frames to consider for motion compensation", OFFSET(refs), AV_OPT_TYPE_INT, {.dbl = 1 }, INT_MIN, INT_MAX, V|E},
{"chromaoffset", "chroma qp offset from luma", OFFSET(chromaoffset), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"trellis", "rate-distortion optimal quantization", OFFSET(trellis), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
#if FF_API_MPV_GLOBAL_OPTS
{"skiprd", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_SKIP_RD }, INT_MIN, INT_MAX, V|E, "flags2"},
#endif
{"sc_factor", "multiplied by qscale for each frame and added to scene_change_score", OFFSET(scenechange_factor), AV_OPT_TYPE_INT, {.dbl = 6 }, 0, INT_MAX, V|E},
{"mv0_threshold", NULL, OFFSET(mv0_threshold), AV_OPT_TYPE_INT, {.dbl = 256 }, 0, INT_MAX, V|E},
{"b_sensitivity", "adjusts sensitivity of b_frame_strategy 1", OFFSET(b_sensitivity), AV_OPT_TYPE_INT, {.dbl = 40 }, 1, INT_MAX, V|E},
{"compression_level", NULL, OFFSET(compression_level), AV_OPT_TYPE_INT, {.dbl = FF_COMPRESSION_DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"min_prediction_order", NULL, OFFSET(min_prediction_order), AV_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, A|E},
{"max_prediction_order", NULL, OFFSET(max_prediction_order), AV_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, A|E},
{"timecode_frame_start", "GOP timecode frame start number, in non drop frame format", OFFSET(timecode_frame_start), AV_OPT_TYPE_INT64, {.dbl = 0 }, 0, INT64_MAX, V|E},
#if FF_API_REQUEST_CHANNELS
{"request_channels", "set desired number of audio channels", OFFSET(request_channels), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, A|D},
#endif
{"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_INT64, {.dbl = DEFAULT }, 0, INT64_MAX, A|E|D, "channel_layout"},
{"request_channel_layout", NULL, OFFSET(request_channel_layout), AV_OPT_TYPE_INT64, {.dbl = DEFAULT }, 0, INT64_MAX, A|D, "request_channel_layout"},
{"rc_max_vbv_use", NULL, OFFSET(rc_max_available_vbv_use), AV_OPT_TYPE_FLOAT, {.dbl = 1.0/3 }, 0.0, FLT_MAX, V|E},
{"rc_min_vbv_use", NULL, OFFSET(rc_min_vbv_overflow_use), AV_OPT_TYPE_FLOAT, {.dbl = 3 }, 0.0, FLT_MAX, V|E},
{"ticks_per_frame", NULL, OFFSET(ticks_per_frame), AV_OPT_TYPE_INT, {.dbl = 1 }, 1, INT_MAX, A|V|E|D},
{"color_primaries", NULL, OFFSET(color_primaries), AV_OPT_TYPE_INT, {.dbl = AVCOL_PRI_UNSPECIFIED }, 1, AVCOL_PRI_NB-1, V|E|D},
{"color_trc", NULL, OFFSET(color_trc), AV_OPT_TYPE_INT, {.dbl = AVCOL_TRC_UNSPECIFIED }, 1, AVCOL_TRC_NB-1, V|E|D},
{"colorspace", NULL, OFFSET(colorspace), AV_OPT_TYPE_INT, {.dbl = AVCOL_SPC_UNSPECIFIED }, 1, AVCOL_SPC_NB-1, V|E|D},
{"color_range", NULL, OFFSET(color_range), AV_OPT_TYPE_INT, {.dbl = AVCOL_RANGE_UNSPECIFIED }, 0, AVCOL_RANGE_NB-1, V|E|D},
{"chroma_sample_location", NULL, OFFSET(chroma_sample_location), AV_OPT_TYPE_INT, {.dbl = AVCHROMA_LOC_UNSPECIFIED }, 0, AVCHROMA_LOC_NB-1, V|E|D},
{"log_level_offset", "set the log level offset", OFFSET(log_level_offset), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX },
{"slices", "number of slices, used in parallelized encoding", OFFSET(slices), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, V|E},
{"thread_type", "select multithreading type", OFFSET(thread_type), AV_OPT_TYPE_FLAGS, {.dbl = FF_THREAD_SLICE|FF_THREAD_FRAME }, 0, INT_MAX, V|E|D, "thread_type"},
{"slice", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_THREAD_SLICE }, INT_MIN, INT_MAX, V|E|D, "thread_type"},
{"frame", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_THREAD_FRAME }, INT_MIN, INT_MAX, V|E|D, "thread_type"},
{"audio_service_type", "audio service type", OFFSET(audio_service_type), AV_OPT_TYPE_INT, {.dbl = AV_AUDIO_SERVICE_TYPE_MAIN }, 0, AV_AUDIO_SERVICE_TYPE_NB-1, A|E, "audio_service_type"},
{"ma", "Main Audio Service", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_MAIN }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"ef", "Effects", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_EFFECTS }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"vi", "Visually Impaired", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"hi", "Hearing Impaired", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"di", "Dialogue", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_DIALOGUE }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"co", "Commentary", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_COMMENTARY }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"em", "Emergency", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_EMERGENCY }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"vo", "Voice Over", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_VOICE_OVER }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"ka", "Karaoke", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_KARAOKE }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"request_sample_fmt", "sample format audio decoders should prefer", OFFSET(request_sample_fmt), AV_OPT_TYPE_INT, {.dbl = AV_SAMPLE_FMT_NONE }, AV_SAMPLE_FMT_NONE, AV_SAMPLE_FMT_NB-1, A|D, "request_sample_fmt"},
{"u8" , "8-bit unsigned integer", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_U8 }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{"s16", "16-bit signed integer", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_S16 }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{"s32", "32-bit signed integer", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_S32 }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{"flt", "32-bit float", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_FLT }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{"dbl", "64-bit double", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_DBL }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{NULL},
};
#undef A
#undef V
#undef S
#undef E
#undef D
#undef DEFAULT
static const AVClass av_codec_context_class = {
.class_name = "AVCodecContext",
.item_name = context_to_name,
.option = options,
.version = LIBAVUTIL_VERSION_INT,
.log_level_offset_offset = OFFSET(log_level_offset),
.log_level_offset_offset = offsetof(AVCodecContext, log_level_offset),
.child_next = codec_child_next,
.child_class_next = codec_child_class_next,
};

408
libavcodec/options_table.h Normal file
View File

@ -0,0 +1,408 @@
/*
* Copyright (c) 2001 Fabrice Bellard
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_OPTIONS_TABLE
#define AVCODEC_OPTIONS_TABLE
#define OFFSET(x) offsetof(AVCodecContext,x)
#define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C
//these names are too long to be readable
#define V AV_OPT_FLAG_VIDEO_PARAM
#define A AV_OPT_FLAG_AUDIO_PARAM
#define S AV_OPT_FLAG_SUBTITLE_PARAM
#define E AV_OPT_FLAG_ENCODING_PARAM
#define D AV_OPT_FLAG_DECODING_PARAM
#define AV_CODEC_DEFAULT_BITRATE 200*1000
static const AVOption options[]={
{"b", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT, {.dbl = AV_CODEC_DEFAULT_BITRATE }, INT_MIN, INT_MAX, A|V|E},
{"ab", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT, {.dbl = 128*1000 }, INT_MIN, INT_MAX, A|E},
{"bt", "Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate tolerance specifies how far "
"ratecontrol is willing to deviate from the target average bitrate value. This is not related "
"to min/max bitrate. Lowering tolerance too much has an adverse effect on quality.",
OFFSET(bit_rate_tolerance), AV_OPT_TYPE_INT, {.dbl = AV_CODEC_DEFAULT_BITRATE*20 }, 1, INT_MAX, V|E},
{"flags", NULL, OFFSET(flags), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, 0, UINT_MAX, V|A|E|D, "flags"},
{"mv4", "use four motion vector by macroblock (mpeg4)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_4MV }, INT_MIN, INT_MAX, V|E, "flags"},
{"qpel", "use 1/4 pel motion compensation", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_QPEL }, INT_MIN, INT_MAX, V|E, "flags"},
{"loop", "use loop filter", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_LOOP_FILTER }, INT_MIN, INT_MAX, V|E, "flags"},
{"qscale", "use fixed qscale", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_QSCALE }, INT_MIN, INT_MAX, 0, "flags"},
{"gmc", "use gmc", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_GMC }, INT_MIN, INT_MAX, V|E, "flags"},
{"mv0", "always try a mb with mv=<0,0>", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_MV0 }, INT_MIN, INT_MAX, V|E, "flags"},
{"input_preserved", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_INPUT_PRESERVED }, INT_MIN, INT_MAX, 0, "flags"},
{"pass1", "use internal 2pass ratecontrol in first pass mode", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_PASS1 }, INT_MIN, INT_MAX, 0, "flags"},
{"pass2", "use internal 2pass ratecontrol in second pass mode", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_PASS2 }, INT_MIN, INT_MAX, 0, "flags"},
{"gray", "only decode/encode grayscale", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_GRAY }, INT_MIN, INT_MAX, V|E|D, "flags"},
{"emu_edge", "don't draw edges", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_EMU_EDGE }, INT_MIN, INT_MAX, 0, "flags"},
{"psnr", "error[?] variables will be set during encoding", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_PSNR }, INT_MIN, INT_MAX, V|E, "flags"},
{"truncated", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_TRUNCATED }, INT_MIN, INT_MAX, 0, "flags"},
{"naq", "normalize adaptive quantization", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_NORMALIZE_AQP }, INT_MIN, INT_MAX, V|E, "flags"},
{"ildct", "use interlaced dct", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_INTERLACED_DCT }, INT_MIN, INT_MAX, V|E, "flags"},
{"low_delay", "force low delay", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_LOW_DELAY }, INT_MIN, INT_MAX, V|D|E, "flags"},
{"global_header", "place global headers in extradata instead of every keyframe", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_GLOBAL_HEADER }, INT_MIN, INT_MAX, V|A|E, "flags"},
{"bitexact", "use only bitexact stuff (except (i)dct)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_BITEXACT }, INT_MIN, INT_MAX, A|V|S|D|E, "flags"},
{"aic", "h263 advanced intra coding / mpeg4 ac prediction", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_AC_PRED }, INT_MIN, INT_MAX, V|E, "flags"},
#if FF_API_MPV_GLOBAL_OPTS
{"cbp", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_CBP_RD }, INT_MIN, INT_MAX, V|E, "flags"},
{"qprd", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_QP_RD }, INT_MIN, INT_MAX, V|E, "flags"},
#endif
{"ilme", "interlaced motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_INTERLACED_ME }, INT_MIN, INT_MAX, V|E, "flags"},
{"cgop", "closed gop", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_CLOSED_GOP }, INT_MIN, INT_MAX, V|E, "flags"},
{"fast", "allow non spec compliant speedup tricks", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_FAST }, INT_MIN, INT_MAX, V|E, "flags2"},
#if FF_API_MPV_GLOBAL_OPTS
{"sgop", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_STRICT_GOP }, INT_MIN, INT_MAX, V|E, "flags2"},
#endif
{"noout", "skip bitstream encoding", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_NO_OUTPUT }, INT_MIN, INT_MAX, V|E, "flags2"},
{"local_header", "place global headers at every keyframe instead of in extradata", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_LOCAL_HEADER }, INT_MIN, INT_MAX, V|E, "flags2"},
{"showall", "Show all frames before the first keyframe", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_SHOW_ALL }, INT_MIN, INT_MAX, V|D, "flags2"},
#if FF_API_SUB_ID
{"sub_id", NULL, OFFSET(sub_id), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
#endif
{"me_method", "set motion estimation method", OFFSET(me_method), AV_OPT_TYPE_INT, {.dbl = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method"},
{"zero", "zero motion estimation (fastest)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_ZERO }, INT_MIN, INT_MAX, V|E, "me_method" },
{"full", "full motion estimation (slowest)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_FULL }, INT_MIN, INT_MAX, V|E, "me_method" },
{"epzs", "EPZS motion estimation (default)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method" },
{"esa", "esa motion estimation (alias for full)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_FULL }, INT_MIN, INT_MAX, V|E, "me_method" },
{"tesa", "tesa motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_TESA }, INT_MIN, INT_MAX, V|E, "me_method" },
{"dia", "dia motion estimation (alias for epzs)", 0, AV_OPT_TYPE_CONST, {.dbl = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method" },
{"log", "log motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_LOG }, INT_MIN, INT_MAX, V|E, "me_method" },
{"phods", "phods motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_PHODS }, INT_MIN, INT_MAX, V|E, "me_method" },
{"x1", "X1 motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_X1 }, INT_MIN, INT_MAX, V|E, "me_method" },
{"hex", "hex motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_HEX }, INT_MIN, INT_MAX, V|E, "me_method" },
{"umh", "umh motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_UMH }, INT_MIN, INT_MAX, V|E, "me_method" },
{"iter", "iter motion estimation", 0, AV_OPT_TYPE_CONST, {.dbl = ME_ITER }, INT_MIN, INT_MAX, V|E, "me_method" },
{"extradata_size", NULL, OFFSET(extradata_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, INT_MIN, INT_MAX},
{"g", "set the group of picture size", OFFSET(gop_size), AV_OPT_TYPE_INT, {.dbl = 12 }, INT_MIN, INT_MAX, V|E},
{"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|D|E},
{"ac", "set number of audio channels", OFFSET(channels), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|D|E},
{"cutoff", "set cutoff bandwidth", OFFSET(cutoff), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|E},
{"frame_size", NULL, OFFSET(frame_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|E},
{"frame_number", NULL, OFFSET(frame_number), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"delay", NULL, OFFSET(delay), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"qcomp", "video quantizer scale compression (VBR). Constant of ratecontrol equation. "
"Recommended range for default rc_eq: 0.0-1.0",
OFFSET(qcompress), AV_OPT_TYPE_FLOAT, {.dbl = 0.5 }, -FLT_MAX, FLT_MAX, V|E},
{"qblur", "video quantizer scale blur (VBR)", OFFSET(qblur), AV_OPT_TYPE_FLOAT, {.dbl = 0.5 }, -1, FLT_MAX, V|E},
{"qmin", "min video quantizer scale (VBR)", OFFSET(qmin), AV_OPT_TYPE_INT, {.dbl = 2 }, -1, 69, V|E},
{"qmax", "max video quantizer scale (VBR)", OFFSET(qmax), AV_OPT_TYPE_INT, {.dbl = 31 }, -1, 1024, V|E},
{"qdiff", "max difference between the quantizer scale (VBR)", OFFSET(max_qdiff), AV_OPT_TYPE_INT, {.dbl = 3 }, INT_MIN, INT_MAX, V|E},
{"bf", "use 'frames' B frames", OFFSET(max_b_frames), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, -1, FF_MAX_B_FRAMES, V|E},
{"b_qfactor", "qp factor between p and b frames", OFFSET(b_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E},
{"rc_strategy", "ratecontrol method", OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"b_strategy", "strategy to choose between I/P/B-frames", OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX, V|E},
{"ps", "rtp payload size in bytes", OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"mv_bits", NULL, OFFSET(mv_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"header_bits", NULL, OFFSET(header_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"i_tex_bits", NULL, OFFSET(i_tex_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"p_tex_bits", NULL, OFFSET(p_tex_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"i_count", NULL, OFFSET(i_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"p_count", NULL, OFFSET(p_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"skip_count", NULL, OFFSET(skip_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"misc_bits", NULL, OFFSET(misc_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"frame_bits", NULL, OFFSET(frame_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"codec_tag", NULL, OFFSET(codec_tag), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"bug", "workaround not auto detected encoder bugs", OFFSET(workaround_bugs), AV_OPT_TYPE_FLAGS, {.dbl = FF_BUG_AUTODETECT }, INT_MIN, INT_MAX, V|D, "bug"},
{"autodetect", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_AUTODETECT }, INT_MIN, INT_MAX, V|D, "bug"},
{"old_msmpeg4", "some old lavc generated msmpeg4v3 files (no autodetection)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_OLD_MSMPEG4 }, INT_MIN, INT_MAX, V|D, "bug"},
{"xvid_ilace", "Xvid interlacing bug (autodetected if fourcc==XVIX)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_XVID_ILACE }, INT_MIN, INT_MAX, V|D, "bug"},
{"ump4", "(autodetected if fourcc==UMP4)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_UMP4 }, INT_MIN, INT_MAX, V|D, "bug"},
{"no_padding", "padding bug (autodetected)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_NO_PADDING }, INT_MIN, INT_MAX, V|D, "bug"},
{"amv", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_AMV }, INT_MIN, INT_MAX, V|D, "bug"},
{"ac_vlc", "illegal vlc bug (autodetected per fourcc)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_AC_VLC }, INT_MIN, INT_MAX, V|D, "bug"},
{"qpel_chroma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_QPEL_CHROMA }, INT_MIN, INT_MAX, V|D, "bug"},
{"std_qpel", "old standard qpel (autodetected per fourcc/version)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_STD_QPEL }, INT_MIN, INT_MAX, V|D, "bug"},
{"qpel_chroma2", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_QPEL_CHROMA2 }, INT_MIN, INT_MAX, V|D, "bug"},
{"direct_blocksize", "direct-qpel-blocksize bug (autodetected per fourcc/version)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_DIRECT_BLOCKSIZE }, INT_MIN, INT_MAX, V|D, "bug"},
{"edge", "edge padding bug (autodetected per fourcc/version)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_EDGE }, INT_MIN, INT_MAX, V|D, "bug"},
{"hpel_chroma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_HPEL_CHROMA }, INT_MIN, INT_MAX, V|D, "bug"},
{"dc_clip", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_DC_CLIP }, INT_MIN, INT_MAX, V|D, "bug"},
{"ms", "workaround various bugs in microsofts broken decoders", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_MS }, INT_MIN, INT_MAX, V|D, "bug"},
{"trunc", "trancated frames", 0, AV_OPT_TYPE_CONST, {.dbl = FF_BUG_TRUNCATED}, INT_MIN, INT_MAX, V|D, "bug"},
#if FF_API_MPV_GLOBAL_OPTS
{"lelim", "single coefficient elimination threshold for luminance (negative values also consider dc coefficient)", OFFSET(luma_elim_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"celim", "single coefficient elimination threshold for chrominance (negative values also consider dc coefficient)", OFFSET(chroma_elim_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#endif
{"strict", "how strictly to follow the standards", OFFSET(strict_std_compliance), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|V|D|E, "strict"},
{"very", "strictly conform to a older more strict version of the spec or reference software", 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_VERY_STRICT }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"strict", "strictly conform to all the things in the spec no matter what consequences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_STRICT }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"normal", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_NORMAL }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"unofficial", "allow unofficial extensions", 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_UNOFFICIAL }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"experimental", "allow non standardized experimental things", 0, AV_OPT_TYPE_CONST, {.dbl = FF_COMPLIANCE_EXPERIMENTAL }, INT_MIN, INT_MAX, V|D|E, "strict"},
{"b_qoffset", "qp offset between P and B frames", OFFSET(b_quant_offset), AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E},
{"err_detect", "set error detection flags", OFFSET(err_recognition), AV_OPT_TYPE_FLAGS, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"crccheck", "verify embedded CRCs", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"bitstream", "detect bitstream specification deviations", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_BITSTREAM }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"buffer", "detect improper bitstream length", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_BUFFER }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"explode", "abort decoding on minor error detection", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_EXPLODE }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"careful", "consider things that violate the spec and have not been seen in the wild as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CAREFUL }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"compliant", "consider all spec non compliancies as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_COMPLIANT }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"aggressive", "consider things that a sane encoder shouldnt do as an error", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_AGGRESSIVE }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
{"has_b_frames", NULL, OFFSET(has_b_frames), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"block_align", NULL, OFFSET(block_align), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"mpeg_quant", "use MPEG quantizers instead of H.263", OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"stats_out", NULL, OFFSET(stats_out), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX},
{"stats_in", NULL, OFFSET(stats_in), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX},
{"qsquish", "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function)", OFFSET(rc_qsquish), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, 0, 99, V|E},
{"rc_qmod_amp", "experimental quantizer modulation", OFFSET(rc_qmod_amp), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
{"rc_qmod_freq", "experimental quantizer modulation", OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"rc_override_count", NULL, OFFSET(rc_override_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"rc_eq", "Set rate control equation. When computing the expression, besides the standard functions "
"defined in the section 'Expression Evaluation', the following functions are available: "
"bits2qp(bits), qp2bits(qp). Also the following constants are available: iTex pTex tex mv "
"fCode iCount mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex avgTex.",
OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX, V|E},
{"maxrate", "Set max bitrate tolerance (in bits/s). Requires bufsize to be set.", OFFSET(rc_max_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"minrate", "Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR encode. It is of little use elsewise.",
OFFSET(rc_min_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"bufsize", "set ratecontrol buffer size (in bits)", OFFSET(rc_buffer_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|V|E},
{"rc_buf_aggressivity", "currently useless", OFFSET(rc_buffer_aggressivity), AV_OPT_TYPE_FLOAT, {.dbl = 1.0 }, -FLT_MAX, FLT_MAX, V|E},
{"i_qfactor", "qp factor between P and I frames", OFFSET(i_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = -0.8 }, -FLT_MAX, FLT_MAX, V|E},
{"i_qoffset", "qp offset between P and I frames", OFFSET(i_quant_offset), AV_OPT_TYPE_FLOAT, {.dbl = 0.0 }, -FLT_MAX, FLT_MAX, V|E},
{"rc_init_cplx", "initial complexity for 1-pass encoding", OFFSET(rc_initial_cplx), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
{"dct", "DCT algorithm", OFFSET(dct_algo), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, V|E, "dct"},
{"auto", "autoselect a good one (default)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_AUTO }, INT_MIN, INT_MAX, V|E, "dct"},
{"fastint", "fast integer", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_FASTINT }, INT_MIN, INT_MAX, V|E, "dct"},
{"int", "accurate integer", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_INT }, INT_MIN, INT_MAX, V|E, "dct"},
{"mmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_MMX }, INT_MIN, INT_MAX, V|E, "dct"},
{"altivec", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_ALTIVEC }, INT_MIN, INT_MAX, V|E, "dct"},
{"faan", "floating point AAN DCT", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DCT_FAAN }, INT_MIN, INT_MAX, V|E, "dct"},
{"lumi_mask", "compresses bright areas stronger than medium ones", OFFSET(lumi_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"tcplx_mask", "temporal complexity masking", OFFSET(temporal_cplx_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"scplx_mask", "spatial complexity masking", OFFSET(spatial_cplx_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"p_mask", "inter masking", OFFSET(p_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"dark_mask", "compresses dark areas stronger than medium ones", OFFSET(dark_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
{"idct", "select IDCT implementation", OFFSET(idct_algo), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, V|E|D, "idct"},
{"auto", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_AUTO }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"int", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_INT }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simple", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLE }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplemmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"libmpeg2mmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_LIBMPEG2MMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"mmi", NULL, 0, AV_OPT_TYPE_CONST, { .dbl = FF_IDCT_MMI }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"arm", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_ARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"altivec", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_ALTIVEC }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"sh4", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SH4 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplearm", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplearmv5te", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEARMV5TE }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplearmv6", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEARMV6 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simpleneon", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLENEON }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplealpha", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_SIMPLEALPHA }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"h264", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_H264 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"vp3", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_VP3 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"ipp", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"xvidmmx", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_XVIDMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"faani", "floating point AAN IDCT", 0, AV_OPT_TYPE_CONST, {.dbl = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"},
{"slice_count", NULL, OFFSET(slice_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"ec", "set error concealment strategy", OFFSET(error_concealment), AV_OPT_TYPE_FLAGS, {.dbl = 3 }, INT_MIN, INT_MAX, V|D, "ec"},
{"guess_mvs", "iterative motion vector (MV) search (slow)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_EC_GUESS_MVS }, INT_MIN, INT_MAX, V|D, "ec"},
{"deblock", "use strong deblock filter for damaged MBs", 0, AV_OPT_TYPE_CONST, {.dbl = FF_EC_DEBLOCK }, INT_MIN, INT_MAX, V|D, "ec"},
{"bits_per_coded_sample", NULL, OFFSET(bits_per_coded_sample), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"pred", "prediction method", OFFSET(prediction_method), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "pred"},
{"left", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PRED_LEFT }, INT_MIN, INT_MAX, V|E, "pred"},
{"plane", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PRED_PLANE }, INT_MIN, INT_MAX, V|E, "pred"},
{"median", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PRED_MEDIAN }, INT_MIN, INT_MAX, V|E, "pred"},
{"aspect", "sample aspect ratio", OFFSET(sample_aspect_ratio), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, 10, V|E},
{"debug", "print specific debug info", OFFSET(debug), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, 0, INT_MAX, V|A|S|E|D, "debug"},
{"pict", "picture info", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_PICT_INFO }, INT_MIN, INT_MAX, V|D, "debug"},
{"rc", "rate control", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_RC }, INT_MIN, INT_MAX, V|E, "debug"},
{"bitstream", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_BITSTREAM }, INT_MIN, INT_MAX, V|D, "debug"},
{"mb_type", "macroblock (MB) type", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_MB_TYPE }, INT_MIN, INT_MAX, V|D, "debug"},
{"qp", "per-block quantization parameter (QP)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_QP }, INT_MIN, INT_MAX, V|D, "debug"},
{"mv", "motion vector", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_MV }, INT_MIN, INT_MAX, V|D, "debug"},
{"dct_coeff", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_DCT_COEFF }, INT_MIN, INT_MAX, V|D, "debug"},
{"skip", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_SKIP }, INT_MIN, INT_MAX, V|D, "debug"},
{"startcode", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_STARTCODE }, INT_MIN, INT_MAX, V|D, "debug"},
{"pts", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_PTS }, INT_MIN, INT_MAX, V|D, "debug"},
{"er", "error recognition", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_ER }, INT_MIN, INT_MAX, V|D, "debug"},
{"mmco", "memory management control operations (H.264)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_MMCO }, INT_MIN, INT_MAX, V|D, "debug"},
{"bugs", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_BUGS }, INT_MIN, INT_MAX, V|D, "debug"},
{"vis_qp", "visualize quantization parameter (QP), lower QP are tinted greener", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_QP }, INT_MIN, INT_MAX, V|D, "debug"},
{"vis_mb_type", "visualize block types", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_MB_TYPE }, INT_MIN, INT_MAX, V|D, "debug"},
{"buffers", "picture buffer allocations", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_BUFFERS }, INT_MIN, INT_MAX, V|D, "debug"},
{"thread_ops", "threading operations", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_THREADS }, INT_MIN, INT_MAX, V|D, "debug"},
{"vismv", "visualize motion vectors (MVs)", OFFSET(debug_mv), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, V|D, "debug_mv"},
{"pf", "forward predicted MVs of P-frames", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_MV_P_FOR }, INT_MIN, INT_MAX, V|D, "debug_mv"},
{"bf", "forward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_MV_B_FOR }, INT_MIN, INT_MAX, V|D, "debug_mv"},
{"bb", "backward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.dbl = FF_DEBUG_VIS_MV_B_BACK }, INT_MIN, INT_MAX, V|D, "debug_mv"},
{"cmp", "full pel me compare function", OFFSET(me_cmp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"subcmp", "sub pel me compare function", OFFSET(me_sub_cmp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"mbcmp", "macroblock compare function", OFFSET(mb_cmp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"ildctcmp", "interlaced dct compare function", OFFSET(ildct_cmp), AV_OPT_TYPE_INT, {.dbl = FF_CMP_VSAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"dia_size", "diamond type & size for motion estimation", OFFSET(dia_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"last_pred", "amount of motion predictors from the previous frame", OFFSET(last_predictor_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"preme", "pre motion estimation", OFFSET(pre_me), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"precmp", "pre motion estimation compare function", OFFSET(me_pre_cmp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"sad", "sum of absolute differences, fast (default)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_SAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"sse", "sum of squared errors", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_SSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"satd", "sum of absolute Hadamard transformed differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_SATD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"dct", "sum of absolute DCT transformed differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_DCT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"psnr", "sum of squared quantization errors (avoid, low quality)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_PSNR }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"bit", "number of bits needed for the block", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_BIT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"rd", "rate distortion optimal, slow", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_RD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"zero", "0", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_ZERO }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"vsad", "sum of absolute vertical differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_VSAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"vsse", "sum of squared vertical differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_VSSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"nsse", "noise preserving sum of squared differences", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_NSSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
#if CONFIG_SNOW_ENCODER
{"w53", "5/3 wavelet, only used in snow", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_W53 }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"w97", "9/7 wavelet, only used in snow", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_W97 }, INT_MIN, INT_MAX, V|E, "cmp_func"},
#endif
{"dctmax", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"chroma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_CMP_CHROMA }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"pre_dia_size", "diamond type & size for motion estimation pre-pass", OFFSET(pre_dia_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"subq", "sub pel motion estimation quality", OFFSET(me_subpel_quality), AV_OPT_TYPE_INT, {.dbl = 8 }, INT_MIN, INT_MAX, V|E},
{"dtg_active_format", NULL, OFFSET(dtg_active_format), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"me_range", "limit motion vectors range (1023 for DivX player)", OFFSET(me_range), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"ibias", "intra quant bias", OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.dbl = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
{"pbias", "inter quant bias", OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.dbl = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
#if FF_API_COLOR_TABLE_ID
{"color_table_id", NULL, OFFSET(color_table_id), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
#endif
{"global_quality", NULL, OFFSET(global_quality), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"coder", NULL, OFFSET(coder_type), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "coder"},
{"vlc", "variable length coder / huffman coder", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_VLC }, INT_MIN, INT_MAX, V|E, "coder"},
{"ac", "arithmetic coder", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_AC }, INT_MIN, INT_MAX, V|E, "coder"},
{"raw", "raw (no encoding)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_RAW }, INT_MIN, INT_MAX, V|E, "coder"},
{"rle", "run-length coder", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_RLE }, INT_MIN, INT_MAX, V|E, "coder"},
{"deflate", "deflate-based coder", 0, AV_OPT_TYPE_CONST, {.dbl = FF_CODER_TYPE_DEFLATE }, INT_MIN, INT_MAX, V|E, "coder"},
{"context", "context model", OFFSET(context_model), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"slice_flags", NULL, OFFSET(slice_flags), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"xvmc_acceleration", NULL, OFFSET(xvmc_acceleration), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"mbd", "macroblock decision algorithm (high quality mode)", OFFSET(mb_decision), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "mbd"},
{"simple", "use mbcmp (default)", 0, AV_OPT_TYPE_CONST, {.dbl = FF_MB_DECISION_SIMPLE }, INT_MIN, INT_MAX, V|E, "mbd"},
{"bits", "use fewest bits", 0, AV_OPT_TYPE_CONST, {.dbl = FF_MB_DECISION_BITS }, INT_MIN, INT_MAX, V|E, "mbd"},
{"rd", "use best rate distortion", 0, AV_OPT_TYPE_CONST, {.dbl = FF_MB_DECISION_RD }, INT_MIN, INT_MAX, V|E, "mbd"},
{"stream_codec_tag", NULL, OFFSET(stream_codec_tag), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"sc_threshold", "scene change threshold", OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"lmin", "min lagrange factor (VBR)", OFFSET(lmin), AV_OPT_TYPE_INT, {.dbl = 2*FF_QP2LAMBDA }, 0, INT_MAX, V|E},
{"lmax", "max lagrange factor (VBR)", OFFSET(lmax), AV_OPT_TYPE_INT, {.dbl = 31*FF_QP2LAMBDA }, 0, INT_MAX, V|E},
{"nr", "noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"rc_init_occupancy", "number of bits which should be loaded into the rc buffer before decoding starts", OFFSET(rc_initial_buffer_occupancy), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#if FF_API_INTER_THRESHOLD
{"inter_threshold", NULL, OFFSET(inter_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#endif
{"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT}, 0, UINT_MAX, V|A|E|D, "flags2"},
{"error", NULL, OFFSET(error_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#if FF_API_MPV_GLOBAL_OPTS
{"qns", "deprecated, use mpegvideo private options instead", OFFSET(quantizer_noise_shaping), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
#endif
{"threads", NULL, OFFSET(thread_count), AV_OPT_TYPE_INT, {.dbl = 1 }, 0, INT_MAX, V|E|D, "threads"},
{"auto", "detect a good number of threads", 0, AV_OPT_TYPE_CONST, {.dbl = 0 }, INT_MIN, INT_MAX, V|E|D, "threads"},
{"me_threshold", "motion estimaton threshold", OFFSET(me_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"mb_threshold", "macroblock threshold", OFFSET(mb_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"dc", "intra_dc_precision", OFFSET(intra_dc_precision), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX, V|E},
{"nssew", "nsse weight", OFFSET(nsse_weight), AV_OPT_TYPE_INT, {.dbl = 8 }, INT_MIN, INT_MAX, V|E},
{"skip_top", "number of macroblock rows at the top which are skipped", OFFSET(skip_top), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|D},
{"skip_bottom", "number of macroblock rows at the bottom which are skipped", OFFSET(skip_bottom), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|D},
{"profile", NULL, OFFSET(profile), AV_OPT_TYPE_INT, {.dbl = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "profile"},
{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "profile"},
{"aac_main", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_AAC_MAIN }, INT_MIN, INT_MAX, A|E, "profile"},
{"aac_low", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_AAC_LOW }, INT_MIN, INT_MAX, A|E, "profile"},
{"aac_ssr", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_AAC_SSR }, INT_MIN, INT_MAX, A|E, "profile"},
{"aac_ltp", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_AAC_LTP }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts_es", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS_ES }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts_96_24", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS_96_24 }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts_hd_hra", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS_HD_HRA }, INT_MIN, INT_MAX, A|E, "profile"},
{"dts_hd_ma", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_PROFILE_DTS_HD_MA }, INT_MIN, INT_MAX, A|E, "profile"},
{"level", NULL, OFFSET(level), AV_OPT_TYPE_INT, {.dbl = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"},
{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"},
{"lowres", "decode at 1= 1/2, 2=1/4, 3=1/8 resolutions", OFFSET(lowres), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, V|A|D},
{"skip_threshold", "frame skip threshold", OFFSET(frame_skip_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"skip_factor", "frame skip factor", OFFSET(frame_skip_factor), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"skip_exp", "frame skip exponent", OFFSET(frame_skip_exp), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"skipcmp", "frame skip compare function", OFFSET(frame_skip_cmp), AV_OPT_TYPE_INT, {.dbl = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, V|E, "cmp_func"},
{"border_mask", "increases the quantizer for macroblocks close to borders", OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
{"mblmin", "min macroblock lagrange factor (VBR)", OFFSET(mb_lmin), AV_OPT_TYPE_INT, {.dbl = FF_QP2LAMBDA * 2 }, 1, FF_LAMBDA_MAX, V|E},
{"mblmax", "max macroblock lagrange factor (VBR)", OFFSET(mb_lmax), AV_OPT_TYPE_INT, {.dbl = FF_QP2LAMBDA * 31 }, 1, FF_LAMBDA_MAX, V|E},
{"mepc", "motion estimation bitrate penalty compensation (1.0 = 256)", OFFSET(me_penalty_compensation), AV_OPT_TYPE_INT, {.dbl = 256 }, INT_MIN, INT_MAX, V|E},
{"skip_loop_filter", NULL, OFFSET(skip_loop_filter), AV_OPT_TYPE_INT, {.dbl = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"skip_idct" , NULL, OFFSET(skip_idct) , AV_OPT_TYPE_INT, {.dbl = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"skip_frame" , NULL, OFFSET(skip_frame) , AV_OPT_TYPE_INT, {.dbl = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"none" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_NONE }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"default" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"noref" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_NONREF }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"bidir" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_BIDIR }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"nokey" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_NONKEY }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"all" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_ALL }, INT_MIN, INT_MAX, V|D, "avdiscard"},
{"bidir_refine", "refine the two motion vectors used in bidirectional macroblocks", OFFSET(bidir_refine), AV_OPT_TYPE_INT, {.dbl = 1 }, 0, 4, V|E},
{"brd_scale", "downscales frames for dynamic B-frame decision", OFFSET(brd_scale), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, 10, V|E},
{"keyint_min", "minimum interval between IDR-frames", OFFSET(keyint_min), AV_OPT_TYPE_INT, {.dbl = 25 }, INT_MIN, INT_MAX, V|E},
{"refs", "reference frames to consider for motion compensation", OFFSET(refs), AV_OPT_TYPE_INT, {.dbl = 1 }, INT_MIN, INT_MAX, V|E},
{"chromaoffset", "chroma qp offset from luma", OFFSET(chromaoffset), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"trellis", "rate-distortion optimal quantization", OFFSET(trellis), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
#if FF_API_MPV_GLOBAL_OPTS
{"skiprd", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_SKIP_RD }, INT_MIN, INT_MAX, V|E, "flags2"},
#endif
{"sc_factor", "multiplied by qscale for each frame and added to scene_change_score", OFFSET(scenechange_factor), AV_OPT_TYPE_INT, {.dbl = 6 }, 0, INT_MAX, V|E},
{"mv0_threshold", NULL, OFFSET(mv0_threshold), AV_OPT_TYPE_INT, {.dbl = 256 }, 0, INT_MAX, V|E},
{"b_sensitivity", "adjusts sensitivity of b_frame_strategy 1", OFFSET(b_sensitivity), AV_OPT_TYPE_INT, {.dbl = 40 }, 1, INT_MAX, V|E},
{"compression_level", NULL, OFFSET(compression_level), AV_OPT_TYPE_INT, {.dbl = FF_COMPRESSION_DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"min_prediction_order", NULL, OFFSET(min_prediction_order), AV_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, A|E},
{"max_prediction_order", NULL, OFFSET(max_prediction_order), AV_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, A|E},
{"timecode_frame_start", "GOP timecode frame start number, in non drop frame format", OFFSET(timecode_frame_start), AV_OPT_TYPE_INT64, {.dbl = 0 }, 0, INT64_MAX, V|E},
#if FF_API_REQUEST_CHANNELS
{"request_channels", "set desired number of audio channels", OFFSET(request_channels), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, A|D},
#endif
{"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
{"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_INT64, {.dbl = DEFAULT }, 0, INT64_MAX, A|E|D, "channel_layout"},
{"request_channel_layout", NULL, OFFSET(request_channel_layout), AV_OPT_TYPE_INT64, {.dbl = DEFAULT }, 0, INT64_MAX, A|D, "request_channel_layout"},
{"rc_max_vbv_use", NULL, OFFSET(rc_max_available_vbv_use), AV_OPT_TYPE_FLOAT, {.dbl = 1.0/3 }, 0.0, FLT_MAX, V|E},
{"rc_min_vbv_use", NULL, OFFSET(rc_min_vbv_overflow_use), AV_OPT_TYPE_FLOAT, {.dbl = 3 }, 0.0, FLT_MAX, V|E},
{"ticks_per_frame", NULL, OFFSET(ticks_per_frame), AV_OPT_TYPE_INT, {.dbl = 1 }, 1, INT_MAX, A|V|E|D},
{"color_primaries", NULL, OFFSET(color_primaries), AV_OPT_TYPE_INT, {.dbl = AVCOL_PRI_UNSPECIFIED }, 1, AVCOL_PRI_NB-1, V|E|D},
{"color_trc", NULL, OFFSET(color_trc), AV_OPT_TYPE_INT, {.dbl = AVCOL_TRC_UNSPECIFIED }, 1, AVCOL_TRC_NB-1, V|E|D},
{"colorspace", NULL, OFFSET(colorspace), AV_OPT_TYPE_INT, {.dbl = AVCOL_SPC_UNSPECIFIED }, 1, AVCOL_SPC_NB-1, V|E|D},
{"color_range", NULL, OFFSET(color_range), AV_OPT_TYPE_INT, {.dbl = AVCOL_RANGE_UNSPECIFIED }, 0, AVCOL_RANGE_NB-1, V|E|D},
{"chroma_sample_location", NULL, OFFSET(chroma_sample_location), AV_OPT_TYPE_INT, {.dbl = AVCHROMA_LOC_UNSPECIFIED }, 0, AVCHROMA_LOC_NB-1, V|E|D},
{"log_level_offset", "set the log level offset", OFFSET(log_level_offset), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX },
{"slices", "number of slices, used in parallelized encoding", OFFSET(slices), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, V|E},
{"thread_type", "select multithreading type", OFFSET(thread_type), AV_OPT_TYPE_FLAGS, {.dbl = FF_THREAD_SLICE|FF_THREAD_FRAME }, 0, INT_MAX, V|E|D, "thread_type"},
{"slice", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_THREAD_SLICE }, INT_MIN, INT_MAX, V|E|D, "thread_type"},
{"frame", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_THREAD_FRAME }, INT_MIN, INT_MAX, V|E|D, "thread_type"},
{"audio_service_type", "audio service type", OFFSET(audio_service_type), AV_OPT_TYPE_INT, {.dbl = AV_AUDIO_SERVICE_TYPE_MAIN }, 0, AV_AUDIO_SERVICE_TYPE_NB-1, A|E, "audio_service_type"},
{"ma", "Main Audio Service", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_MAIN }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"ef", "Effects", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_EFFECTS }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"vi", "Visually Impaired", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"hi", "Hearing Impaired", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"di", "Dialogue", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_DIALOGUE }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"co", "Commentary", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_COMMENTARY }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"em", "Emergency", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_EMERGENCY }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"vo", "Voice Over", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_VOICE_OVER }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"ka", "Karaoke", 0, AV_OPT_TYPE_CONST, {.dbl = AV_AUDIO_SERVICE_TYPE_KARAOKE }, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"request_sample_fmt", "sample format audio decoders should prefer", OFFSET(request_sample_fmt), AV_OPT_TYPE_INT, {.dbl = AV_SAMPLE_FMT_NONE }, AV_SAMPLE_FMT_NONE, AV_SAMPLE_FMT_NB-1, A|D, "request_sample_fmt"},
{"u8" , "8-bit unsigned integer", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_U8 }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{"s16", "16-bit signed integer", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_S16 }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{"s32", "32-bit signed integer", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_S32 }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{"flt", "32-bit float", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_FLT }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{"dbl", "64-bit double", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_DBL }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{NULL},
};
#undef A
#undef V
#undef S
#undef E
#undef D
#undef DEFAULT
#undef OFFSET
#endif // AVCODEC_OPTIONS_TABLE

View File

@ -1069,8 +1069,15 @@ int attribute_align_arg avcodec_encode_audio2(AVCodecContext *avctx,
if (fs_tmp)
avctx->frame_size = fs_tmp;
}
if (!ret)
if (!ret) {
if (!user_packet && avpkt->data) {
uint8_t *new_data = av_realloc(avpkt->data, avpkt->size);
if (new_data)
avpkt->data = new_data;
}
avctx->frame_number++;
}
if (ret < 0 || !*got_packet_ptr)
av_free_packet(avpkt);

View File

@ -642,7 +642,7 @@ void decode_mb_mode(VP8Context *s, VP8Macroblock *mb, int mb_x, int mb_y, uint8_
if (s->segmentation.update_map) {
int bit = vp56_rac_get_prob(c, s->prob->segmentid[0]);
*segment = vp56_rac_get_prob(c, s->prob->segmentid[1+bit]) + 2*bit;
} else
} else if (s->segmentation.enabled)
*segment = ref ? *ref : *segment;
s->segment = *segment;

View File

@ -1332,7 +1332,11 @@ int av_find_best_stream(AVFormatContext *ic,
AVCodec **decoder_ret,
int flags);
#if FF_API_READ_PACKET
/**
* @deprecated use AVFMT_FLAG_NOFILLIN | AVFMT_FLAG_NOPARSE to read raw
* unprocessed packets
*
* Read a transport packet from a media file.
*
* This function is obsolete and should never be used.
@ -1342,7 +1346,9 @@ int av_find_best_stream(AVFormatContext *ic,
* @param pkt is filled
* @return 0 if OK, AVERROR_xxx on error
*/
attribute_deprecated
int av_read_packet(AVFormatContext *s, AVPacket *pkt);
#endif
/**
* Return the next frame of a stream.
@ -1539,23 +1545,15 @@ int av_write_frame(AVFormatContext *s, AVPacket *pkt);
*/
int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt);
#if FF_API_INTERLEAVE_PACKET
/**
* Interleave a packet per dts in an output media file.
*
* Packets with pkt->destruct == av_destruct_packet will be freed inside this
* function, so they cannot be used after it. Note that calling av_free_packet()
* on them is still safe.
*
* @param s media file handle
* @param out the interleaved packet will be output here
* @param pkt the input packet
* @param flush 1 if no further packets are available as input and all
* remaining packets should be output
* @return 1 if a packet was output, 0 if no packet could be output,
* < 0 if an error occurred
* @deprecated this function was never meant to be called by the user
* programs.
*/
attribute_deprecated
int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush);
#endif
/**
* Write the stream trailer to an output media file and free the

View File

@ -838,7 +838,7 @@ static int read_gab2_sub(AVStream *st, AVPacket *pkt) {
ast->sub_ctx->pb = pb;
if (!avformat_open_input(&ast->sub_ctx, "", sub_demuxer, NULL)) {
av_read_packet(ast->sub_ctx, &ast->sub_pkt);
ff_read_packet(ast->sub_ctx, &ast->sub_pkt);
*st->codec = *ast->sub_ctx->streams[0]->codec;
ast->sub_ctx->streams[0]->codec->extradata = NULL;
time_base = ast->sub_ctx->streams[0]->time_base;
@ -880,7 +880,7 @@ static AVStream *get_subtitle_pkt(AVFormatContext *s, AVStream *next_st,
ast = sub_st->priv_data;
*pkt = ast->sub_pkt;
pkt->stream_index = sub_st->index;
if (av_read_packet(ast->sub_ctx, &ast->sub_pkt) < 0)
if (ff_read_packet(ast->sub_ctx, &ast->sub_pkt) < 0)
ast->sub_pkt.data = NULL;
}
return sub_st;
@ -1364,7 +1364,7 @@ static void seek_subtitle(AVStream *st, AVStream *st2, int64_t timestamp)
av_free_packet(&ast2->sub_pkt);
if (avformat_seek_file(ast2->sub_ctx, 0, INT64_MIN, ts2, ts2, 0) >= 0 ||
avformat_seek_file(ast2->sub_ctx, 0, ts2, ts2, INT64_MAX, 0) >= 0)
av_read_packet(ast2->sub_ctx, &ast2->sub_pkt);
ff_read_packet(ast2->sub_ctx, &ast2->sub_pkt);
}
static int avi_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)

View File

@ -991,7 +991,7 @@ static int gxf_interleave_packet(AVFormatContext *s, AVPacket *out, AVPacket *pk
if (pkt && s->streams[pkt->stream_index]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
pkt->duration = 2; // enforce 2 fields
return ff_audio_rechunk_interleave(s, out, pkt, flush,
av_interleave_packet_per_dts, gxf_compare_field_nb);
ff_interleave_packet_per_dts, gxf_compare_field_nb);
}
static const AVOption options[] = {

View File

@ -803,6 +803,7 @@ int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta **extra_meta)
st->attached_pic.size = apic->len;
st->attached_pic.destruct = av_destruct_packet;
st->attached_pic.stream_index = st->index;
st->attached_pic.flags |= AV_PKT_FLAG_KEY;
apic->data = NULL;
apic->len = 0;

View File

@ -317,4 +317,31 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels,
*/
int ff_framehash_write_header(AVFormatContext *s);
/**
* Read a transport packet from a media file.
*
* @param s media file handle
* @param pkt is filled
* @return 0 if OK, AVERROR_xxx on error
*/
int ff_read_packet(AVFormatContext *s, AVPacket *pkt);
/**
* Interleave a packet per dts in an output media file.
*
* Packets with pkt->destruct == av_destruct_packet will be freed inside this
* function, so they cannot be used after it. Note that calling av_free_packet()
* on them is still safe.
*
* @param s media file handle
* @param out the interleaved packet will be output here
* @param pkt the input packet
* @param flush 1 if no further packets are available as input and all
* remaining packets should be output
* @return 1 if a packet was output, 0 if no packet could be output,
* < 0 if an error occurred
*/
int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush);
#endif /* AVFORMAT_INTERNAL_H */

View File

@ -57,6 +57,7 @@ static const AVOption options[] = {
{ "iods_audio_profile", "iods audio profile atom.", offsetof(MOVMuxContext, iods_audio_profile), AV_OPT_TYPE_INT, {.dbl = -1}, -1, 255, AV_OPT_FLAG_ENCODING_PARAM},
{ "iods_video_profile", "iods video profile atom.", offsetof(MOVMuxContext, iods_video_profile), AV_OPT_TYPE_INT, {.dbl = -1}, -1, 255, AV_OPT_FLAG_ENCODING_PARAM},
{ "frag_duration", "Maximum fragment duration", offsetof(MOVMuxContext, max_fragment_duration), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "min_frag_duration", "Minimum fragment duration", offsetof(MOVMuxContext, min_fragment_duration), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "frag_size", "Maximum fragment size", offsetof(MOVMuxContext, max_fragment_size), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "ism_lookahead", "Number of lookahead entries for ISM files", offsetof(MOVMuxContext, ism_lookahead), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ NULL },
@ -2893,21 +2894,25 @@ static int mov_write_packet_internal(AVFormatContext *s, AVPacket *pkt)
unsigned int samples_in_chunk = 0;
int size= pkt->size;
uint8_t *reformatted_data = NULL;
int64_t frag_duration = 0;
if (!s->pb->seekable && !(mov->flags & FF_MOV_FLAG_EMPTY_MOOV))
return 0; /* Can't handle that */
if (!size) return 0; /* Discard 0 sized packets */
if ((mov->max_fragment_duration && trk->entry &&
av_rescale_q(pkt->dts - trk->cluster[0].dts,
s->streams[pkt->stream_index]->time_base,
AV_TIME_BASE_Q) >= mov->max_fragment_duration) ||
if (trk->entry)
frag_duration = av_rescale_q(pkt->dts - trk->cluster[0].dts,
s->streams[pkt->stream_index]->time_base,
AV_TIME_BASE_Q);
if ((mov->max_fragment_duration &&
frag_duration >= mov->max_fragment_duration) ||
(mov->max_fragment_size && mov->mdat_size + size >= mov->max_fragment_size) ||
(mov->flags & FF_MOV_FLAG_FRAG_KEYFRAME &&
enc->codec_type == AVMEDIA_TYPE_VIDEO &&
trk->entry && pkt->flags & AV_PKT_FLAG_KEY)) {
mov_flush_fragment(s);
if (frag_duration >= mov->min_fragment_duration)
mov_flush_fragment(s);
}
if (mov->flags & FF_MOV_FLAG_FRAGMENT) {

View File

@ -154,6 +154,7 @@ typedef struct MOVMuxContext {
int fragments;
int max_fragment_duration;
int min_fragment_duration;
int max_fragment_size;
int ism_lookahead;
AVIOContext *mdat_buf;

View File

@ -318,6 +318,8 @@ static int mpeg_mux_init(AVFormatContext *ctx)
s->packet_size = ctx->packet_size;
} else
s->packet_size = 2048;
if (ctx->max_delay < 0) /* Not set by the caller */
ctx->max_delay = 0;
s->vcd_padding_bytes_written = 0;
s->vcd_padding_bitrate=0;

View File

@ -491,6 +491,9 @@ static int mpegts_write_header(AVFormatContext *s)
const char *provider_name;
int *pids;
if (s->max_delay < 0) /* Not set by the caller */
s->max_delay = 0;
// round up to a whole number of TS packets
ts->pes_payload_size = (ts->pes_payload_size + 14 + 183) / 184 * 184 - 14;

View File

@ -28,6 +28,7 @@
#include "libavutil/dict.h"
#include "libavcodec/get_bits.h"
#include "libavcodec/bytestream.h"
#include "libavcodec/vorbis_parser.h"
#include "avformat.h"
#include "internal.h"
#include "oggdec.h"
@ -162,6 +163,9 @@ ff_vorbis_comment(AVFormatContext * as, AVDictionary **m, const uint8_t *buf, in
struct oggvorbis_private {
unsigned int len[3];
unsigned char *packet[3];
VorbisParseContext vp;
int64_t final_pts;
int final_duration;
};
@ -251,7 +255,6 @@ vorbis_header (AVFormatContext * s, int idx)
st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = CODEC_ID_VORBIS;
st->need_parsing = AVSTREAM_PARSE_HEADERS;
if (srate > 0) {
st->codec->sample_rate = srate;
@ -269,15 +272,91 @@ vorbis_header (AVFormatContext * s, int idx)
}
}
} else {
int ret;
st->codec->extradata_size =
fixup_vorbis_headers(s, priv, &st->codec->extradata);
if ((ret = avpriv_vorbis_parse_extradata(st->codec, &priv->vp))) {
av_freep(&st->codec->extradata);
st->codec->extradata_size = 0;
return ret;
}
}
return 1;
}
static int vorbis_packet(AVFormatContext *s, int idx)
{
struct ogg *ogg = s->priv_data;
struct ogg_stream *os = ogg->streams + idx;
struct oggvorbis_private *priv = os->private;
int duration;
/* first packet handling
here we parse the duration of each packet in the first page and compare
the total duration to the page granule to find the encoder delay and
set the first timestamp */
if (!os->lastpts) {
int seg;
uint8_t *last_pkt = os->buf + os->pstart;
uint8_t *next_pkt = last_pkt;
int first_duration = 0;
avpriv_vorbis_parse_reset(&priv->vp);
duration = 0;
for (seg = 0; seg < os->nsegs; seg++) {
if (os->segments[seg] < 255) {
int d = avpriv_vorbis_parse_frame(&priv->vp, last_pkt, 1);
if (d < 0) {
duration = os->granule;
break;
}
if (!duration)
first_duration = d;
duration += d;
last_pkt = next_pkt + os->segments[seg];
}
next_pkt += os->segments[seg];
}
os->lastpts = os->lastdts = os->granule - duration;
s->streams[idx]->start_time = os->lastpts + first_duration;
if (s->streams[idx]->duration)
s->streams[idx]->duration -= s->streams[idx]->start_time;
s->streams[idx]->cur_dts = AV_NOPTS_VALUE;
priv->final_pts = AV_NOPTS_VALUE;
avpriv_vorbis_parse_reset(&priv->vp);
}
/* parse packet duration */
if (os->psize > 0) {
duration = avpriv_vorbis_parse_frame(&priv->vp, os->buf + os->pstart, 1);
if (duration <= 0) {
os->pflags |= AV_PKT_FLAG_CORRUPT;
return 0;
}
os->pduration = duration;
}
/* final packet handling
here we save the pts of the first packet in the final page, sum up all
packet durations in the final page except for the last one, and compare
to the page granule to find the duration of the final packet */
if (os->flags & OGG_FLAG_EOS) {
if (os->lastpts != AV_NOPTS_VALUE) {
priv->final_pts = os->lastpts;
priv->final_duration = 0;
}
if (os->segp == os->nsegs)
os->pduration = os->granule - priv->final_pts - priv->final_duration;
priv->final_duration += os->pduration;
}
return 0;
}
const struct ogg_codec ff_vorbis_codec = {
.magic = "\001vorbis",
.magicsize = 7,
.header = vorbis_header
.header = vorbis_header,
.packet = vorbis_packet,
};

View File

@ -26,6 +26,8 @@
* Options definition for AVFormatContext.
*/
#include "options_table.h"
static const char* format_to_name(void* ptr)
{
AVFormatContext* fc = (AVFormatContext*) ptr;
@ -74,54 +76,6 @@ static const AVClass *format_child_class_next(const AVClass *prev)
return NULL;
}
#define OFFSET(x) offsetof(AVFormatContext,x)
#define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C
//these names are too long to be readable
#define E AV_OPT_FLAG_ENCODING_PARAM
#define D AV_OPT_FLAG_DECODING_PARAM
static const AVOption options[]={
{"probesize", "set probing size", OFFSET(probesize), AV_OPT_TYPE_INT, {.dbl = 5000000 }, 32, INT_MAX, D},
{"packetsize", "set packet size", OFFSET(packet_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, E},
{"fflags", NULL, OFFSET(flags), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, INT_MIN, INT_MAX, D|E, "fflags"},
{"ignidx", "ignore index", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_IGNIDX }, INT_MIN, INT_MAX, D, "fflags"},
{"genpts", "generate pts", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_GENPTS }, INT_MIN, INT_MAX, D, "fflags"},
{"nofillin", "do not fill in missing values that can be exactly calculated", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_NOFILLIN }, INT_MIN, INT_MAX, D, "fflags"},
{"noparse", "disable AVParsers, this needs nofillin too", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_NOPARSE }, INT_MIN, INT_MAX, D, "fflags"},
{"igndts", "ignore dts", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_IGNDTS }, INT_MIN, INT_MAX, D, "fflags"},
{"discardcorrupt", "discard corrupted frames", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_DISCARD_CORRUPT }, INT_MIN, INT_MAX, D, "fflags"},
{"sortdts", "try to interleave outputted packets by dts", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_SORT_DTS }, INT_MIN, INT_MAX, D, "fflags"},
{"keepside", "dont merge side data", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_KEEP_SIDE_DATA }, INT_MIN, INT_MAX, D, "fflags"},
{"latm", "enable RTP MP4A-LATM payload", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_MP4A_LATM }, INT_MIN, INT_MAX, E, "fflags"},
{"analyzeduration", "how many microseconds are analyzed to estimate duration", OFFSET(max_analyze_duration), AV_OPT_TYPE_INT, {.dbl = 5*AV_TIME_BASE }, 0, INT_MAX, D},
{"cryptokey", "decryption key", OFFSET(key), AV_OPT_TYPE_BINARY, {.dbl = 0}, 0, 0, D},
{"indexmem", "max memory used for timestamp index (per stream)", OFFSET(max_index_size), AV_OPT_TYPE_INT, {.dbl = 1<<20 }, 0, INT_MAX, D},
{"rtbufsize", "max memory used for buffering real-time frames", OFFSET(max_picture_buffer), AV_OPT_TYPE_INT, {.dbl = 3041280 }, 0, INT_MAX, D}, /* defaults to 1s of 15fps 352x288 YUYV422 video */
{"fdebug", "print specific debug info", OFFSET(debug), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, 0, INT_MAX, E|D, "fdebug"},
{"ts", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_FDEBUG_TS }, INT_MIN, INT_MAX, E|D, "fdebug"},
{"max_delay", "maximum muxing or demuxing delay in microseconds", OFFSET(max_delay), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, E|D},
{"fpsprobesize", "number of frames used to probe fps", OFFSET(fps_probe_size), AV_OPT_TYPE_INT, {.dbl = -1}, -1, INT_MAX-1, D},
{"audio_preload", "microseconds by which audio packets should be interleaved earlier", OFFSET(audio_preload), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX-1, E},
{"chunk_duration", "microseconds for each chunk", OFFSET(max_chunk_duration), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX-1, E},
{"chunk_size", "size in bytes for each chunk", OFFSET(max_chunk_size), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX-1, E},
/* this is a crutch for avconv, since it cannot deal with identically named options in different contexts.
* to be removed when avconv is fixed */
{"f_err_detect", "set error detection flags (deprecated; use err_detect, save via avconv)", OFFSET(error_recognition), AV_OPT_TYPE_FLAGS, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D, "err_detect"},
{"err_detect", "set error detection flags", OFFSET(error_recognition), AV_OPT_TYPE_FLAGS, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D, "err_detect"},
{"crccheck", "verify embedded CRCs", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D, "err_detect"},
{"bitstream", "detect bitstream specification deviations", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_BITSTREAM }, INT_MIN, INT_MAX, D, "err_detect"},
{"buffer", "detect improper bitstream length", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_BUFFER }, INT_MIN, INT_MAX, D, "err_detect"},
{"explode", "abort decoding on minor error detection", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_EXPLODE }, INT_MIN, INT_MAX, D, "err_detect"},
{"careful", "consider things that violate the spec and have not been seen in the wild as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CAREFUL }, INT_MIN, INT_MAX, D, "err_detect"},
{"compliant", "consider all spec non compliancies as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_COMPLIANT }, INT_MIN, INT_MAX, D, "err_detect"},
{"aggressive", "consider things that a sane encoder shouldnt do as an error", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_AGGRESSIVE }, INT_MIN, INT_MAX, D, "err_detect"},
{NULL},
};
#undef E
#undef D
#undef DEFAULT
static const AVClass av_format_context_class = {
.class_name = "AVFormatContext",
.item_name = format_to_name,

View File

@ -0,0 +1,73 @@
/*
* Copyright (c) 2000, 2001, 2002 Fabrice Bellard
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVFORMAT_OPTIONS_TABLE
#define AVFORMAT_OPTIONS_TABLE
#define OFFSET(x) offsetof(AVFormatContext,x)
#define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C
//these names are too long to be readable
#define E AV_OPT_FLAG_ENCODING_PARAM
#define D AV_OPT_FLAG_DECODING_PARAM
static const AVOption options[]={
{"probesize", "set probing size", OFFSET(probesize), AV_OPT_TYPE_INT, {.dbl = 5000000 }, 32, INT_MAX, D},
{"packetsize", "set packet size", OFFSET(packet_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, E},
{"fflags", NULL, OFFSET(flags), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, INT_MIN, INT_MAX, D|E, "fflags"},
{"ignidx", "ignore index", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_IGNIDX }, INT_MIN, INT_MAX, D, "fflags"},
{"genpts", "generate pts", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_GENPTS }, INT_MIN, INT_MAX, D, "fflags"},
{"nofillin", "do not fill in missing values that can be exactly calculated", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_NOFILLIN }, INT_MIN, INT_MAX, D, "fflags"},
{"noparse", "disable AVParsers, this needs nofillin too", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_NOPARSE }, INT_MIN, INT_MAX, D, "fflags"},
{"igndts", "ignore dts", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_IGNDTS }, INT_MIN, INT_MAX, D, "fflags"},
{"discardcorrupt", "discard corrupted frames", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_DISCARD_CORRUPT }, INT_MIN, INT_MAX, D, "fflags"},
{"sortdts", "try to interleave outputted packets by dts", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_SORT_DTS }, INT_MIN, INT_MAX, D, "fflags"},
{"keepside", "dont merge side data", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_KEEP_SIDE_DATA }, INT_MIN, INT_MAX, D, "fflags"},
{"latm", "enable RTP MP4A-LATM payload", 0, AV_OPT_TYPE_CONST, {.dbl = AVFMT_FLAG_MP4A_LATM }, INT_MIN, INT_MAX, E, "fflags"},
{"analyzeduration", "how many microseconds are analyzed to estimate duration", OFFSET(max_analyze_duration), AV_OPT_TYPE_INT, {.dbl = 5*AV_TIME_BASE }, 0, INT_MAX, D},
{"cryptokey", "decryption key", OFFSET(key), AV_OPT_TYPE_BINARY, {.dbl = 0}, 0, 0, D},
{"indexmem", "max memory used for timestamp index (per stream)", OFFSET(max_index_size), AV_OPT_TYPE_INT, {.dbl = 1<<20 }, 0, INT_MAX, D},
{"rtbufsize", "max memory used for buffering real-time frames", OFFSET(max_picture_buffer), AV_OPT_TYPE_INT, {.dbl = 3041280 }, 0, INT_MAX, D}, /* defaults to 1s of 15fps 352x288 YUYV422 video */
{"fdebug", "print specific debug info", OFFSET(debug), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, 0, INT_MAX, E|D, "fdebug"},
{"ts", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_FDEBUG_TS }, INT_MIN, INT_MAX, E|D, "fdebug"},
{"max_delay", "maximum muxing or demuxing delay in microseconds", OFFSET(max_delay), AV_OPT_TYPE_INT, {.dbl = -1 }, -1, INT_MAX, E|D},
{"fpsprobesize", "number of frames used to probe fps", OFFSET(fps_probe_size), AV_OPT_TYPE_INT, {.dbl = -1}, -1, INT_MAX-1, D},
{"audio_preload", "microseconds by which audio packets should be interleaved earlier", OFFSET(audio_preload), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX-1, E},
{"chunk_duration", "microseconds for each chunk", OFFSET(max_chunk_duration), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX-1, E},
{"chunk_size", "size in bytes for each chunk", OFFSET(max_chunk_size), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX-1, E},
/* this is a crutch for avconv, since it cannot deal with identically named options in different contexts.
* to be removed when avconv is fixed */
{"f_err_detect", "set error detection flags (deprecated; use err_detect, save via avconv)", OFFSET(error_recognition), AV_OPT_TYPE_FLAGS, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D, "err_detect"},
{"err_detect", "set error detection flags", OFFSET(error_recognition), AV_OPT_TYPE_FLAGS, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D, "err_detect"},
{"crccheck", "verify embedded CRCs", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CRCCHECK }, INT_MIN, INT_MAX, D, "err_detect"},
{"bitstream", "detect bitstream specification deviations", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_BITSTREAM }, INT_MIN, INT_MAX, D, "err_detect"},
{"buffer", "detect improper bitstream length", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_BUFFER }, INT_MIN, INT_MAX, D, "err_detect"},
{"explode", "abort decoding on minor error detection", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_EXPLODE }, INT_MIN, INT_MAX, D, "err_detect"},
{"careful", "consider things that violate the spec and have not been seen in the wild as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_CAREFUL }, INT_MIN, INT_MAX, D, "err_detect"},
{"compliant", "consider all spec non compliancies as errors", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_COMPLIANT }, INT_MIN, INT_MAX, D, "err_detect"},
{"aggressive", "consider things that a sane encoder shouldnt do as an error", 0, AV_OPT_TYPE_CONST, {.dbl = AV_EF_AGGRESSIVE }, INT_MIN, INT_MAX, D, "err_detect"},
{NULL},
};
#undef E
#undef D
#undef DEFAULT
#undef OFFSET
#endif // AVFORMAT_OPTIONS_TABLE

View File

@ -256,7 +256,7 @@ static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf,
for (;;) {
int i;
res = av_read_packet(rt->asf_ctx, pkt);
res = ff_read_packet(rt->asf_ctx, pkt);
rt->asf_pb_pos = avio_tell(pb);
if (res != 0)
break;

View File

@ -126,7 +126,7 @@ static int rtp_write_header(AVFormatContext *s1)
s->max_payload_size = s1->packet_size - 12;
s->max_frames_per_packet = 0;
if (s1->max_delay) {
if (s1->max_delay > 0) {
if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
int frame_size = av_get_audio_frame_duration(st->codec, 0);
if (!frame_size)

View File

@ -56,6 +56,7 @@
#define MAX_TIMEOUTS READ_PACKET_TIMEOUT_S * 1000 / POLL_TIMEOUT_MS
#define SDP_MAX_SIZE 16384
#define RECVBUF_SIZE 10 * RTP_MAX_PACKET_LENGTH
#define DEFAULT_REORDERING_DELAY 100000
#define OFFSET(x) offsetof(RTSPState, x)
#define DEC AV_OPT_FLAG_DECODING_PARAM
@ -1421,6 +1422,9 @@ int ff_rtsp_connect(AVFormatContext *s)
if (!ff_network_init())
return AVERROR(EIO);
if (s->max_delay < 0) /* Not set by the caller */
s->max_delay = s->iformat ? DEFAULT_REORDERING_DELAY : 0;
rt->control_transport = RTSP_MODE_PLAIN;
if (rt->lower_transport_mask & (1 << RTSP_LOWER_TRANSPORT_HTTP)) {
rt->lower_transport_mask = 1 << RTSP_LOWER_TRANSPORT_TCP;
@ -1861,6 +1865,9 @@ static int sdp_read_header(AVFormatContext *s)
if (!ff_network_init())
return AVERROR(EIO);
if (s->max_delay < 0) /* Not set by the caller */
s->max_delay = DEFAULT_REORDERING_DELAY;
/* read the whole sdp file */
/* XXX: better loading */
content = av_malloc(SDP_MAX_SIZE);

View File

@ -568,10 +568,22 @@ static AVPacket *add_to_pktbuf(AVPacketList **packet_buffer, AVPacket *pkt,
return &pktl->pkt;
}
static void queue_attached_pictures(AVFormatContext *s)
{
int i;
for (i = 0; i < s->nb_streams; i++)
if (s->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC &&
s->streams[i]->discard < AVDISCARD_ALL) {
AVPacket copy = s->streams[i]->attached_pic;
copy.destruct = NULL;
add_to_pktbuf(&s->raw_packet_buffer, &copy, &s->raw_packet_buffer_end);
}
}
int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options)
{
AVFormatContext *s = *ps;
int i, ret = 0;
int ret = 0;
AVDictionary *tmp = NULL;
ID3v2ExtraMeta *id3v2_extra_meta = NULL;
@ -627,13 +639,7 @@ int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputForma
goto fail;
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
/* queue attached pictures */
for (i = 0; i < s->nb_streams; i++)
if (s->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC) {
AVPacket copy = s->streams[i]->attached_pic;
copy.destruct = NULL;
add_to_pktbuf(&s->raw_packet_buffer, &copy, &s->raw_packet_buffer_end);
}
queue_attached_pictures(s);
if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->pb && !s->data_offset)
s->data_offset = avio_tell(s->pb);
@ -659,7 +665,7 @@ fail:
/*******************************************************/
int av_read_packet(AVFormatContext *s, AVPacket *pkt)
int ff_read_packet(AVFormatContext *s, AVPacket *pkt)
{
int ret, i;
AVStream *st;
@ -756,6 +762,14 @@ int av_read_packet(AVFormatContext *s, AVPacket *pkt)
}
}
#if FF_API_READ_PACKET
int av_read_packet(AVFormatContext *s, AVPacket *pkt)
{
return ff_read_packet(s, pkt);
}
#endif
/**********************************************************/
static int determinable_frame_size(AVCodecContext *avctx)
@ -1228,7 +1242,7 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
AVPacket cur_pkt;
/* read next packet */
ret = av_read_packet(s, &cur_pkt);
ret = ff_read_packet(s, &cur_pkt);
if (ret < 0) {
if (ret == AVERROR(EAGAIN))
return ret;
@ -1255,7 +1269,7 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
cur_pkt.size);
}
if (s->debug & FF_FDEBUG_TS)
av_log(s, AV_LOG_DEBUG, "av_read_packet stream=%d, pts=%"PRId64", dts=%"PRId64", size=%d, duration=%d, flags=%d\n",
av_log(s, AV_LOG_DEBUG, "ff_read_packet stream=%d, pts=%"PRId64", dts=%"PRId64", size=%d, duration=%d, flags=%d\n",
cur_pkt.stream_index,
cur_pkt.pts,
cur_pkt.dts,
@ -1827,7 +1841,8 @@ static int seek_frame_generic(AVFormatContext *s,
return 0;
}
int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
static int seek_frame_internal(AVFormatContext *s, int stream_index,
int64_t timestamp, int flags)
{
int ret;
AVStream *st;
@ -1872,14 +1887,29 @@ int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int f
return -1;
}
int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
{
int ret = seek_frame_internal(s, stream_index, timestamp, flags);
if (ret >= 0)
queue_attached_pictures(s);
return ret;
}
int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
{
if(min_ts > ts || max_ts < ts)
return -1;
if (s->iformat->read_seek2) {
int ret;
ff_read_frame_flush(s);
return s->iformat->read_seek2(s, stream_index, min_ts, ts, max_ts, flags);
ret = s->iformat->read_seek2(s, stream_index, min_ts, ts, max_ts, flags);
if (ret >= 0)
queue_attached_pictures(s);
return ret;
}
if(s->iformat->read_timestamp){
@ -2071,7 +2101,7 @@ static void estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset)
break;
do {
ret = av_read_packet(ic, pkt);
ret = ff_read_packet(ic, pkt);
} while(ret == AVERROR(EAGAIN));
if (ret != 0)
break;
@ -3354,7 +3384,9 @@ static int ff_interleave_compare_dts(AVFormatContext *s, AVPacket *next, AVPacke
return comp > 0;
}
int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush){
int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush)
{
AVPacketList *pktl;
int stream_count=0, noninterleaved_count=0;
int64_t delta_dts_max = 0;
@ -3413,6 +3445,14 @@ int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, AVPacket *pk
}
}
#if FF_API_INTERLEAVE_PACKET
int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush)
{
return ff_interleave_packet_per_dts(s, out, pkt, flush);
}
#endif
/**
* Interleave an AVPacket correctly so it can be muxed.
* @param out the interleaved packet will be output here
@ -3429,7 +3469,7 @@ static int interleave_packet(AVFormatContext *s, AVPacket *out, AVPacket *in, in
av_free_packet(in);
return ret;
} else
return av_interleave_packet_per_dts(s, out, in, flush);
return ff_interleave_packet_per_dts(s, out, in, flush);
}
int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt){

View File

@ -71,5 +71,11 @@
#ifndef FF_API_APPLEHTTP_PROTO
#define FF_API_APPLEHTTP_PROTO (LIBAVFORMAT_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_READ_PACKET
#define FF_API_READ_PACKET (LIBAVFORMAT_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_INTERLEAVE_PACKET
#define FF_API_INTERLEAVE_PACKET (LIBAVFORMAT_VERSION_MAJOR < 55)
#endif
#endif /* AVFORMAT_VERSION_H */

View File

@ -38,7 +38,6 @@
typedef struct MaxisXADemuxContext {
uint32_t out_size;
uint32_t sent_bytes;
uint32_t audio_frame_counter;
} MaxisXADemuxContext;
static int xa_probe(AVProbeData *p)
@ -81,12 +80,15 @@ static int xa_read_header(AVFormatContext *s)
avio_skip(pb, 2); /* Skip the tag */
st->codec->channels = avio_rl16(pb);
st->codec->sample_rate = avio_rl32(pb);
/* Value in file is average byte rate*/
st->codec->bit_rate = avio_rl32(pb) * 8;
st->codec->block_align = avio_rl16(pb);
st->codec->bits_per_coded_sample = avio_rl16(pb);
avio_skip(pb, 4); /* Skip average byte rate */
avio_skip(pb, 2); /* Skip block align */
avio_skip(pb, 2); /* Skip bits-per-sample */
st->codec->bit_rate = av_clip(15LL * st->codec->channels * 8 *
st->codec->sample_rate / 28, 0, INT_MAX);
avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate);
st->start_time = 0;
return 0;
}
@ -100,8 +102,8 @@ static int xa_read_packet(AVFormatContext *s,
unsigned int packet_size;
int ret;
if(xa->sent_bytes > xa->out_size)
return AVERROR(EIO);
if (xa->sent_bytes >= xa->out_size)
return AVERROR_EOF;
/* 1 byte header and 14 bytes worth of samples * number channels per block */
packet_size = 15*st->codec->channels;
@ -111,9 +113,7 @@ static int xa_read_packet(AVFormatContext *s,
pkt->stream_index = st->index;
xa->sent_bytes += packet_size;
pkt->pts = xa->audio_frame_counter;
/* 14 bytes Samples per channel with 2 samples per byte */
xa->audio_frame_counter += 28 * st->codec->channels;
pkt->duration = 28;
return ret;
}

View File

@ -19,6 +19,9 @@ fate-adpcm-creative-8-4bit: CMD = md5 -i $(SAMPLES)/creative/BBC_4BIT.VOC -f s16
FATE_ADPCM += fate-adpcm-ea-mad-ea-r1
fate-adpcm-ea-mad-ea-r1: CMD = framecrc -i $(SAMPLES)/ea-mad/NFS6LogoE.mad
FATE_ADPCM += fate-adpcm-ea-maxis-xa
fate-adpcm-ea-maxis-xa: CMD = framecrc -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -frames:a 30
FATE_ADPCM += fate-adpcm-ea-tqi
fate-adpcm-ea-tqi: CMD = framecrc -i $(SAMPLES)/ea-wve/networkBackbone-partial.wve -frames:v 26

View File

@ -38,7 +38,7 @@ FATE_DEMUX += fate-lmlm4-demux
fate-lmlm4-demux: CMD = framecrc -i $(SAMPLES)/lmlm4/LMLM4_CIFat30fps.divx -t 3 -acodec copy -vcodec copy
FATE_DEMUX += fate-maxis-xa
fate-maxis-xa: CMD = md5 -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -f s16le
fate-maxis-xa: CMD = framecrc -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -frames:a 30 -c:a copy
FATE_DEMUX += fate-mtv
fate-mtv: CMD = framecrc -i $(SAMPLES)/mtv/comedian_auto-partial.mtv -acodec copy -pix_fmt rgb24

View File

@ -41,6 +41,6 @@ fate-vp8-sign-bias$(1): REF = $(SRC_PATH)/tests/ref/fate/vp8-sign-bias
endef
$(eval $(call FATE_VP8_FULL))
$(eval $(call FATE_VP8_FULL,-emu-edge,-flags emu_edge))
$(eval $(call FATE_VP8_FULL,-emu-edge,-flags +emu_edge))
FATE_TESTS += $(FATE_VP8)
fate-vp8: $(FATE_VP8)

View File

@ -0,0 +1,31 @@
#tb 0: 1/22050
0, 0, 0, 28, 112, 0x291d1be4
0, 28, 28, 28, 112, 0xf08d33cc
0, 56, 56, 28, 112, 0x5b1521de
0, 84, 84, 28, 112, 0x57d209f6
0, 112, 112, 28, 112, 0x00000000
0, 140, 140, 28, 112, 0xa15e03fc
0, 168, 168, 28, 112, 0x73a80bf4
0, 196, 196, 28, 112, 0x916e03fc
0, 224, 224, 28, 112, 0xd92603fc
0, 252, 252, 28, 112, 0x097523dc
0, 280, 280, 28, 112, 0xf7be45ba
0, 308, 308, 28, 112, 0x0fed4db2
0, 336, 336, 28, 112, 0x9fb41be4
0, 364, 364, 28, 112, 0x819a0ff0
0, 392, 392, 28, 112, 0xfe7f3fc0
0, 420, 420, 28, 112, 0x281e1de2
0, 448, 448, 28, 112, 0xa76605fa
0, 476, 476, 28, 112, 0x00000000
0, 504, 504, 28, 112, 0xb84705fa
0, 532, 532, 28, 112, 0xdb5c0ff0
0, 560, 560, 28, 112, 0xbc4305fa
0, 588, 588, 28, 112, 0x7c8305fa
0, 616, 616, 28, 112, 0x54ff21de
0, 644, 644, 28, 112, 0xc6c535ca
0, 672, 672, 28, 112, 0xa4123dc2
0, 700, 700, 28, 112, 0x196523dc
0, 728, 728, 28, 112, 0x80ef25da
0, 756, 756, 28, 112, 0xdf742bd4
0, 784, 784, 28, 112, 0xd78a21de
0, 812, 812, 28, 112, 0x191f0df2

View File

@ -11,312 +11,312 @@
1, 5512, 5512, 1380, 2760, 0x51f35cd4
0, 4, 4, 1, 28800, 0x735a6b15
0, 5, 5, 1, 28800, 0xf7e9dc8b
1, 6892, 6892, 1378, 2756, 0x011c51e5
1, 6891, 6891, 1378, 2756, 0x011c51e5
0, 6, 6, 1, 28800, 0xa108b0cf
1, 8270, 8270, 1378, 2756, 0x8c2c198c
1, 8269, 8269, 1378, 2756, 0x8c2c198c
0, 7, 7, 1, 28800, 0x3d11c138
1, 9648, 9648, 1378, 2756, 0x2b4a3397
1, 9647, 9647, 1378, 2756, 0x2b4a3397
0, 8, 8, 1, 28800, 0xed23afda
1, 11026, 11026, 1378, 2756, 0x63794f22
1, 11025, 11025, 1378, 2756, 0x63794f22
1, 12403, 12403, 1378, 2756, 0xfc363898
0, 9, 9, 1, 28800, 0x713bb2dc
1, 12404, 12404, 1378, 2756, 0xfc363898
1, 13781, 13781, 1378, 2756, 0x0da5486e
0, 10, 10, 1, 28800, 0x551ad51e
1, 13782, 13782, 1378, 2756, 0x0da5486e
1, 15159, 15159, 1378, 2756, 0xbae17a5f
0, 11, 11, 1, 28800, 0x49dfcf2d
1, 15160, 15160, 1378, 2756, 0xbae17a5f
0, 12, 12, 1, 28800, 0x6399d5b3
1, 16538, 16538, 1380, 2760, 0xba266e1b
0, 13, 13, 1, 28800, 0x520ad812
1, 17918, 17918, 1378, 2756, 0xdfb61002
1, 17916, 17916, 1378, 2756, 0xdfb61002
0, 14, 14, 1, 28800, 0xc46ad9da
1, 19296, 19296, 1378, 2756, 0x15d029da
1, 19294, 19294, 1378, 2756, 0x15d029da
0, 15, 15, 1, 28800, 0xe79edb9e
1, 20674, 20674, 1378, 2756, 0x7bc82012
1, 20672, 20672, 1378, 2756, 0x7bc82012
0, 16, 16, 1, 28800, 0xdb1acb30
1, 22052, 22052, 1378, 2756, 0x002e6999
1, 22050, 22050, 1378, 2756, 0x002e6999
1, 23428, 23428, 1378, 2756, 0x96346ba6
0, 17, 17, 1, 28800, 0x050fb669
1, 23430, 23430, 1378, 2756, 0x96346ba6
1, 24806, 24806, 1378, 2756, 0x3d54543b
0, 18, 18, 1, 28800, 0x096ca687
1, 24808, 24808, 1378, 2756, 0x3d54543b
1, 26184, 26184, 1380, 2760, 0x601786e1
0, 19, 19, 1, 28800, 0x0054a6bd
1, 26186, 26186, 1380, 2760, 0x601786e1
1, 27562, 27562, 1378, 2756, 0xf22a5793
0, 20, 20, 1, 28800, 0x6d7daad2
1, 27566, 27566, 1378, 2756, 0xf22a5793
0, 21, 21, 1, 28800, 0x9c10a9dc
1, 28944, 28944, 1378, 2756, 0x21f54d49
1, 28941, 28941, 1378, 2756, 0x21f54d49
0, 22, 22, 1, 28800, 0x89b1a623
1, 30322, 30322, 1378, 2756, 0x0c6d4399
1, 30319, 30319, 1378, 2756, 0x0c6d4399
0, 23, 23, 1, 28800, 0xa0a19c3f
1, 31700, 31700, 1378, 2756, 0x17282f8e
1, 31697, 31697, 1378, 2756, 0x17282f8e
0, 24, 24, 1, 28800, 0x26c898ad
1, 33078, 33078, 1378, 2756, 0xeb698f75
1, 33075, 33075, 1378, 2756, 0xeb698f75
1, 34453, 34453, 1378, 2756, 0x935e1de2
0, 25, 25, 1, 28800, 0x6f639dae
1, 34456, 34456, 1378, 2756, 0x935e1de2
1, 35831, 35831, 1380, 2760, 0xb6fb4293
0, 26, 26, 1, 28800, 0xa173a9b5
1, 35834, 35834, 1380, 2760, 0xb6fb4293
1, 37209, 37209, 1378, 2756, 0x485053dc
0, 27, 27, 1, 28800, 0xa309aa08
1, 37214, 37214, 1378, 2756, 0x485053dc
0, 28, 28, 1, 28800, 0x2059b6c4
1, 38592, 38592, 1378, 2756, 0x24c35027
1, 38588, 38588, 1378, 2756, 0x24c35027
0, 29, 29, 1, 28800, 0x5ae8c761
1, 39970, 39970, 1378, 2756, 0x09f323ee
1, 39966, 39966, 1378, 2756, 0x09f323ee
0, 30, 30, 1, 28800, 0xb780c9c5
1, 41348, 41348, 1378, 2756, 0xbc7d58d5
1, 41344, 41344, 1378, 2756, 0xbc7d58d5
0, 31, 31, 1, 28800, 0xf58ac8fe
1, 42726, 42726, 1378, 2756, 0xaefd487c
1, 42722, 42722, 1378, 2756, 0xaefd487c
0, 32, 32, 1, 28800, 0x9bb307e7
1, 44104, 44104, 1378, 2756, 0xaca16cc0
1, 44100, 44100, 1378, 2756, 0xaca16cc0
1, 45478, 45478, 1380, 2760, 0x98a76091
0, 33, 33, 1, 28800, 0xd32c3e81
1, 45482, 45482, 1380, 2760, 0x98a76091
1, 46856, 46856, 1378, 2756, 0x5d357141
0, 34, 34, 1, 28800, 0x4edd51d2
1, 46862, 46862, 1378, 2756, 0x5d357141
1, 48234, 48234, 1378, 2756, 0x65ea2657
0, 35, 35, 1, 28800, 0x5a88684d
1, 48240, 48240, 1378, 2756, 0x65ea2657
1, 49612, 49612, 1378, 2756, 0xb5e1334a
0, 36, 36, 1, 28800, 0x5bd97f0e
1, 49618, 49618, 1378, 2756, 0xb5e1334a
0, 37, 37, 1, 28800, 0x36d67843
1, 50996, 50996, 1378, 2756, 0x32cd5d91
1, 50991, 50991, 1378, 2756, 0x32cd5d91
0, 38, 38, 1, 28800, 0x0e18781d
1, 52374, 52374, 1378, 2756, 0xdc23722b
1, 52369, 52369, 1378, 2756, 0xdc23722b
0, 39, 39, 1, 28800, 0xa3168807
1, 53752, 53752, 1378, 2756, 0x2ba34684
1, 53747, 53747, 1378, 2756, 0x2ba34684
0, 40, 40, 1, 28800, 0xa7c575b8
1, 55130, 55130, 1378, 2756, 0xf9755ba8
1, 55125, 55125, 1378, 2756, 0xf9755ba8
1, 56503, 56503, 1380, 2760, 0x24221ddb
0, 41, 41, 1, 28800, 0x86367c37
1, 56508, 56508, 1380, 2760, 0x24221ddb
1, 57881, 57881, 1378, 2756, 0xef843aa4
0, 42, 42, 1, 28800, 0xb0f79180
1, 57888, 57888, 1378, 2756, 0xef843aa4
1, 59259, 59259, 1378, 2756, 0x420442fe
0, 43, 43, 1, 28800, 0x61da8c0f
1, 59266, 59266, 1378, 2756, 0x420442fe
0, 44, 44, 1, 28800, 0x9b11948a
1, 60644, 60644, 1378, 2756, 0x5a0933cb
1, 60638, 60638, 1378, 2756, 0x5a0933cb
0, 45, 45, 1, 28800, 0xc53d9b44
1, 62022, 62022, 1378, 2756, 0xef5f6d61
1, 62016, 62016, 1378, 2756, 0xef5f6d61
0, 46, 46, 1, 28800, 0xdc699185
1, 63400, 63400, 1378, 2756, 0xe57e6dc0
1, 63394, 63394, 1378, 2756, 0xe57e6dc0
0, 47, 47, 1, 28800, 0x7b4f92b5
1, 64778, 64778, 1378, 2756, 0xc0f0495a
1, 64772, 64772, 1378, 2756, 0xc0f0495a
0, 48, 48, 1, 28800, 0x40469065
1, 66156, 66156, 1380, 2760, 0x2c3b55df
1, 66150, 66150, 1380, 2760, 0x2c3b55df
1, 67528, 67528, 1378, 2756, 0x39c2586c
0, 49, 49, 1, 28800, 0x737ea07e
1, 67536, 67536, 1378, 2756, 0x39c2586c
1, 68906, 68906, 1378, 2756, 0x7ffc46e5
0, 50, 50, 1, 28800, 0x0db49c8b
1, 68914, 68914, 1378, 2756, 0x7ffc46e5
1, 70284, 70284, 1378, 2756, 0xa2766664
0, 51, 51, 1, 28800, 0x39249f10
1, 70292, 70292, 1378, 2756, 0xa2766664
1, 71662, 71662, 1378, 2756, 0xacb50c6c
0, 52, 52, 1, 28800, 0xc182ab99
1, 71670, 71670, 1378, 2756, 0xacb50c6c
0, 53, 53, 1, 28800, 0xd8f7a7c9
1, 73048, 73048, 1378, 2756, 0x7f659084
1, 73041, 73041, 1378, 2756, 0x7f659084
0, 54, 54, 1, 28800, 0x46789caa
1, 74426, 74426, 1378, 2756, 0xc72e6a12
1, 74419, 74419, 1378, 2756, 0xc72e6a12
0, 55, 55, 1, 28800, 0x4759a374
1, 75804, 75804, 1380, 2760, 0xdb6944df
1, 75797, 75797, 1380, 2760, 0xdb6944df
0, 56, 56, 1, 28800, 0xe621b16a
1, 77184, 77184, 1378, 2756, 0x954f45c1
1, 77175, 77175, 1378, 2756, 0x954f45c1
1, 78553, 78553, 1378, 2756, 0xa9484240
0, 57, 57, 1, 28800, 0xcf47a999
1, 78562, 78562, 1378, 2756, 0xa9484240
1, 79931, 79931, 1378, 2756, 0x1d595349
0, 58, 58, 1, 28800, 0x801dacd4
1, 79940, 79940, 1378, 2756, 0x1d595349
1, 81309, 81309, 1378, 2756, 0xcf2a565e
0, 59, 59, 1, 28800, 0xe580af51
1, 81318, 81318, 1378, 2756, 0xcf2a565e
0, 60, 60, 1, 28800, 0x03d7a887
1, 82696, 82696, 1378, 2756, 0x391028d5
1, 82688, 82688, 1378, 2756, 0x391028d5
0, 61, 61, 1, 28800, 0xa67ea51d
1, 84074, 84074, 1378, 2756, 0x348db7ad
1, 84066, 84066, 1378, 2756, 0x348db7ad
0, 62, 62, 1, 28800, 0x9fee0ec8
1, 85452, 85452, 1380, 2760, 0xb69b5e3a
1, 85444, 85444, 1380, 2760, 0xb69b5e3a
0, 63, 63, 1, 28800, 0x7f602a5e
1, 86832, 86832, 1378, 2756, 0xe3635fbe
1, 86822, 86822, 1378, 2756, 0xe3635fbe
0, 64, 64, 1, 28800, 0x100d432a
1, 88210, 88210, 1378, 2756, 0xdcad3654
1, 88200, 88200, 1378, 2756, 0xdcad3654
1, 89578, 89578, 1378, 2756, 0x5c17abef
0, 65, 65, 1, 28800, 0x42164dfb
1, 89588, 89588, 1378, 2756, 0x5c17abef
1, 90956, 90956, 1378, 2756, 0xb3235184
0, 66, 66, 1, 28800, 0x86c05196
1, 90966, 90966, 1378, 2756, 0xb3235184
1, 92334, 92334, 1378, 2756, 0xdabb64a6
0, 67, 67, 1, 28800, 0xfc225938
1, 92344, 92344, 1378, 2756, 0xdabb64a6
1, 93712, 93712, 1378, 2756, 0xa95dc58d
0, 68, 68, 1, 28800, 0x81085e87
1, 93722, 93722, 1378, 2756, 0xa95dc58d
0, 69, 69, 1, 28800, 0xaa8f5d0a
1, 95100, 95100, 1380, 2760, 0x8e7ac9eb
1, 95091, 95091, 1380, 2760, 0x8e7ac9eb
0, 70, 70, 1, 28800, 0x605a5f9f
1, 96480, 96480, 1378, 2756, 0x492b658e
1, 96469, 96469, 1378, 2756, 0x492b658e
0, 71, 71, 1, 28800, 0x68dc64b2
1, 97858, 97858, 1378, 2756, 0x377483ab
1, 97847, 97847, 1378, 2756, 0x377483ab
0, 72, 72, 1, 28800, 0xd08e710b
1, 99236, 99236, 1378, 2756, 0x2c250279
1, 99225, 99225, 1378, 2756, 0x2c250279
1, 100603, 100603, 1378, 2756, 0x704dbdb3
0, 73, 73, 1, 28800, 0xf8567939
1, 100614, 100614, 1378, 2756, 0x704dbdb3
1, 101981, 101981, 1378, 2756, 0x800d7da2
0, 74, 74, 1, 28800, 0x8dad7a4f
1, 101992, 101992, 1378, 2756, 0x800d7da2
1, 103359, 103359, 1378, 2756, 0x872aa32e
0, 75, 75, 1, 28800, 0x1a19813c
1, 103370, 103370, 1378, 2756, 0x872aa32e
0, 76, 76, 1, 28800, 0x8a157f0e
1, 104748, 104748, 1378, 2756, 0x2d4837fe
1, 104738, 104738, 1378, 2756, 0x2d4837fe
0, 77, 77, 1, 28800, 0xa4fa7b9d
1, 106126, 106126, 1380, 2760, 0xc89ea57e
1, 106116, 106116, 1380, 2760, 0xc89ea57e
0, 78, 78, 1, 28800, 0x093b7b36
1, 107506, 107506, 1378, 2756, 0x6447d7ef
1, 107494, 107494, 1378, 2756, 0x6447d7ef
0, 79, 79, 1, 28800, 0xa925755b
1, 108884, 108884, 1378, 2756, 0x144f59cc
1, 108872, 108872, 1378, 2756, 0x144f59cc
0, 80, 80, 1, 28800, 0xa5968138
1, 110262, 110262, 1378, 2756, 0xc667154e
1, 110250, 110250, 1378, 2756, 0xc667154e
1, 111628, 111628, 1378, 2756, 0xf0de66ae
0, 81, 81, 1, 28800, 0xe00877ac
1, 111640, 111640, 1378, 2756, 0xf0de66ae
1, 113006, 113006, 1378, 2756, 0xeabf3c32
0, 82, 82, 1, 28800, 0xd736183e
1, 113018, 113018, 1378, 2756, 0xeabf3c32
1, 114384, 114384, 1378, 2756, 0xe98e81d1
0, 83, 83, 1, 28800, 0x356f2068
1, 114396, 114396, 1378, 2756, 0xe98e81d1
1, 115762, 115762, 1380, 2760, 0x56aa5889
0, 84, 84, 1, 28800, 0xf9a50f22
1, 115774, 115774, 1380, 2760, 0x56aa5889
0, 85, 85, 1, 28800, 0x92df2ae8
1, 117154, 117154, 1378, 2756, 0x4fd34c0e
1, 117141, 117141, 1378, 2756, 0x4fd34c0e
0, 86, 86, 1, 28800, 0x67a43dc8
1, 118532, 118532, 1378, 2756, 0x67cf6912
1, 118519, 118519, 1378, 2756, 0x67cf6912
0, 87, 87, 1, 28800, 0xf8ce2ead
1, 119910, 119910, 1378, 2756, 0xfa944def
1, 119897, 119897, 1378, 2756, 0xfa944def
0, 88, 88, 1, 28800, 0xf42f37ee
1, 121288, 121288, 1378, 2756, 0xc12f23b2
1, 121275, 121275, 1378, 2756, 0xc12f23b2
1, 122653, 122653, 1378, 2756, 0x5ea325a2
0, 89, 89, 1, 28800, 0x03611f37
1, 122666, 122666, 1378, 2756, 0x5ea325a2
1, 124031, 124031, 1378, 2756, 0x2b245824
0, 90, 90, 1, 28800, 0xddda2327
1, 124044, 124044, 1378, 2756, 0x2b245824
1, 125409, 125409, 1380, 2760, 0x90ac533e
0, 91, 91, 1, 28800, 0xdf073d85
1, 125422, 125422, 1380, 2760, 0x90ac533e
0, 92, 92, 1, 28800, 0xa8331fee
1, 126802, 126802, 1378, 2756, 0xcca34d26
1, 126788, 126788, 1378, 2756, 0xcca34d26
0, 93, 93, 1, 28800, 0x59d3490a
1, 128180, 128180, 1378, 2756, 0xb5f820d0
1, 128166, 128166, 1378, 2756, 0xb5f820d0
0, 94, 94, 1, 28800, 0xa8335be6
1, 129558, 129558, 1378, 2756, 0x27f24335
1, 129544, 129544, 1378, 2756, 0x27f24335
0, 95, 95, 1, 28800, 0xd5483b43
1, 130936, 130936, 1378, 2756, 0x4a9e87b7
1, 130922, 130922, 1378, 2756, 0x4a9e87b7
0, 96, 96, 1, 28800, 0x23422dc9
1, 132314, 132314, 1378, 2756, 0xbd076129
1, 132300, 132300, 1378, 2756, 0xbd076129
1, 133678, 133678, 1378, 2756, 0x2e0e3f2e
0, 97, 97, 1, 28800, 0xc04e4689
1, 133692, 133692, 1378, 2756, 0x2e0e3f2e
1, 135056, 135056, 1380, 2760, 0xdf534478
0, 98, 98, 1, 28800, 0xd4d96372
1, 135070, 135070, 1380, 2760, 0xdf534478
1, 136434, 136434, 1378, 2756, 0xca000a2e
0, 99, 99, 1, 28800, 0x9c814e96
1, 136450, 136450, 1378, 2756, 0xca000a2e
1, 137812, 137812, 1378, 2756, 0x87472df3
0, 100, 100, 1, 28800, 0x7c4b5d3b
1, 137828, 137828, 1378, 2756, 0x87472df3
0, 101, 101, 1, 28800, 0x6bf66c04
1, 139206, 139206, 1378, 2756, 0x16733810
1, 139191, 139191, 1378, 2756, 0x16733810
0, 102, 102, 1, 28800, 0x6e8d4bb6
1, 140584, 140584, 1378, 2756, 0xfa0734b4
1, 140569, 140569, 1378, 2756, 0xfa0734b4
0, 103, 103, 1, 28800, 0xad964d00
1, 141962, 141962, 1378, 2756, 0x5eff3fc4
1, 141947, 141947, 1378, 2756, 0x5eff3fc4
0, 104, 104, 1, 28800, 0x1ff36bd1
1, 143340, 143340, 1378, 2756, 0xf35346bd
1, 143325, 143325, 1378, 2756, 0xf35346bd
1, 144703, 144703, 1378, 2756, 0xac6411c5
0, 105, 105, 1, 28800, 0xa4664c76
1, 144718, 144718, 1378, 2756, 0xac6411c5
1, 146081, 146081, 1380, 2760, 0x478c3c56
0, 106, 106, 1, 28800, 0x50626d82
1, 146096, 146096, 1380, 2760, 0x478c3c56
1, 147459, 147459, 1378, 2756, 0xebd30bdd
0, 107, 107, 1, 28800, 0x81906c5c
1, 147476, 147476, 1378, 2756, 0xebd30bdd
0, 108, 108, 1, 28800, 0x5060543f
1, 148854, 148854, 1378, 2756, 0xaef95a31
1, 148838, 148838, 1378, 2756, 0xaef95a31
0, 109, 109, 1, 28800, 0x231c5a86
1, 150232, 150232, 1378, 2756, 0x8aad29d1
1, 150216, 150216, 1378, 2756, 0x8aad29d1
0, 110, 110, 1, 28800, 0x79775d48
1, 151610, 151610, 1378, 2756, 0x626863f0
1, 151594, 151594, 1378, 2756, 0x626863f0
0, 111, 111, 1, 28800, 0xbb893571
1, 152988, 152988, 1378, 2756, 0x68c05707
1, 152972, 152972, 1378, 2756, 0x68c05707
0, 112, 112, 1, 28800, 0x794c49ed
1, 154366, 154366, 1378, 2756, 0x437c5e8d
1, 154350, 154350, 1378, 2756, 0x437c5e8d
1, 155728, 155728, 1380, 2760, 0x8eca4bdb
0, 113, 113, 1, 28800, 0x70464bac
1, 155744, 155744, 1380, 2760, 0x8eca4bdb
1, 157106, 157106, 1378, 2756, 0x62bd4162
0, 114, 114, 1, 28800, 0xe79549ce
1, 157124, 157124, 1378, 2756, 0x62bd4162
1, 158484, 158484, 1378, 2756, 0x9f744aa4
0, 115, 115, 1, 28800, 0xa6565555
1, 158502, 158502, 1378, 2756, 0x9f744aa4
1, 159862, 159862, 1378, 2756, 0x0f3f6409
0, 116, 116, 1, 28800, 0x2ef1ad6d
1, 159880, 159880, 1378, 2756, 0x0f3f6409
0, 117, 117, 1, 28800, 0xdd22b9aa
1, 161258, 161258, 1378, 2756, 0x3fee827a
1, 161241, 161241, 1378, 2756, 0x3fee827a
0, 118, 118, 1, 28800, 0x26ebaa97
1, 162636, 162636, 1378, 2756, 0x48a0ac19
1, 162619, 162619, 1378, 2756, 0x48a0ac19
0, 119, 119, 1, 28800, 0x32bd979e
1, 164014, 164014, 1378, 2756, 0x8e4ce0d0
1, 163997, 163997, 1378, 2756, 0x8e4ce0d0
0, 120, 120, 1, 28800, 0x4c167c9a
1, 165392, 165392, 1380, 2760, 0xcda82236
1, 165375, 165375, 1380, 2760, 0xcda82236
1, 166753, 166753, 1378, 2756, 0x0e523255
0, 121, 121, 1, 28800, 0xfdf76051
1, 166772, 166772, 1378, 2756, 0x0e523255
1, 168131, 168131, 1378, 2756, 0x84103d30
0, 122, 122, 1, 28800, 0x966938a8
1, 168150, 168150, 1378, 2756, 0x84103d30
1, 169509, 169509, 1378, 2756, 0x13941cde
0, 123, 123, 1, 28800, 0xcea3fbde
1, 169528, 169528, 1378, 2756, 0x13941cde
0, 124, 124, 1, 28800, 0x29a0c213
1, 170906, 170906, 1378, 2756, 0x9fc834c5
1, 170888, 170888, 1378, 2756, 0x9fc834c5
0, 125, 125, 1, 28800, 0x5633a1c2
1, 172284, 172284, 1378, 2756, 0xc0217a77
1, 172266, 172266, 1378, 2756, 0xc0217a77
0, 126, 126, 1, 28800, 0xdc0b9af8
1, 173662, 173662, 1378, 2756, 0x3f643659
1, 173644, 173644, 1378, 2756, 0x3f643659
0, 127, 127, 1, 28800, 0x92138848
1, 175040, 175040, 1380, 2760, 0x9dbd6002
1, 175022, 175022, 1380, 2760, 0x9dbd6002
0, 128, 128, 1, 28800, 0xd7308da5
1, 176420, 176420, 1378, 2756, 0x94f046fb
1, 176400, 176400, 1378, 2756, 0x94f046fb
1, 177778, 177778, 1378, 2756, 0xab01fb12
0, 129, 129, 1, 28800, 0x0c8f9b3f
1, 177798, 177798, 1378, 2756, 0xab01fb12
1, 179156, 179156, 1378, 2756, 0x04cffe5c
0, 130, 130, 1, 28800, 0xd059b5d1
1, 179176, 179176, 1378, 2756, 0x04cffe5c
1, 180534, 180534, 1378, 2756, 0xef661c5e
0, 131, 131, 1, 28800, 0xba6ed9cd
1, 180554, 180554, 1378, 2756, 0xef661c5e
1, 181912, 181912, 1378, 2756, 0x094c5fc5
0, 132, 132, 1, 28800, 0x896c1064
1, 181932, 181932, 1378, 2756, 0x094c5fc5
0, 133, 133, 1, 28800, 0x986e2fc9
1, 183310, 183310, 1378, 2756, 0xe0c1486a
1, 183291, 183291, 1378, 2756, 0xe0c1486a
0, 134, 134, 1, 28800, 0xcba94e4b
1, 184688, 184688, 1380, 2760, 0x8c3535b7
1, 184669, 184669, 1380, 2760, 0x8c3535b7
0, 135, 135, 1, 28800, 0xf3e778ed
1, 186068, 186068, 1378, 2756, 0x594934aa
1, 186047, 186047, 1378, 2756, 0x594934aa
0, 136, 136, 1, 28800, 0xc6cd7d48
1, 187446, 187446, 1378, 2756, 0x74007238
1, 187425, 187425, 1378, 2756, 0x74007238
1, 188803, 188803, 1378, 2756, 0x61f1394d
0, 137, 137, 1, 28800, 0xd9bd84d8
1, 188824, 188824, 1378, 2756, 0x61f1394d
1, 190181, 190181, 1378, 2756, 0x72584f07
0, 138, 138, 1, 28800, 0x391197b4
1, 190202, 190202, 1378, 2756, 0x72584f07
1, 191559, 191559, 1378, 2756, 0xced9acf9
0, 139, 139, 1, 28800, 0xf361a1d9
1, 191580, 191580, 1378, 2756, 0xced9acf9
0, 140, 140, 1, 28800, 0x9a1ea54e
1, 192958, 192958, 1378, 2756, 0x7d2e3ea1
1, 192938, 192938, 1378, 2756, 0x7d2e3ea1
0, 141, 141, 1, 28800, 0x551aab57
1, 194336, 194336, 1378, 2756, 0x56c06897
1, 194316, 194316, 1378, 2756, 0x56c06897
0, 142, 142, 1, 28800, 0x3af8577d
1, 195714, 195714, 1380, 2760, 0x19983bbf
1, 195694, 195694, 1380, 2760, 0x19983bbf
0, 143, 143, 1, 28800, 0x10f76ed0
1, 197094, 197094, 1378, 2756, 0x4f884f27
1, 197072, 197072, 1378, 2756, 0x4f884f27
0, 144, 144, 1, 28800, 0x026a7fde
1, 198472, 198472, 1378, 2756, 0x81ab2f63
1, 198450, 198450, 1378, 2756, 0x81ab2f63
1, 199828, 199828, 1378, 2756, 0x448e681d
0, 145, 145, 1, 28800, 0x3e0e8db8
1, 199850, 199850, 1378, 2756, 0x448e681d
1, 201206, 201206, 1378, 2756, 0x0ba9826e
0, 146, 146, 1, 28800, 0x22998d2d
1, 201228, 201228, 1378, 2756, 0x0ba9826e
1, 202584, 202584, 1378, 2756, 0x049f36fa
0, 147, 147, 1, 28800, 0x05978b12
1, 202606, 202606, 1378, 2756, 0x049f36fa
1, 203962, 203962, 1378, 2756, 0x096a2b62
0, 148, 148, 1, 28800, 0x38b88294
1, 203984, 203984, 1378, 2756, 0x096a2b62
0, 149, 149, 1, 28800, 0x2ef677d6
1, 205362, 205362, 1380, 2760, 0x579e2035
1, 205341, 205341, 1380, 2760, 0x579e2035
0, 150, 150, 1, 28800, 0x0b9a8894
1, 206742, 206742, 1378, 2756, 0xd13e30e1
1, 206719, 206719, 1378, 2756, 0xd13e30e1
0, 151, 151, 1, 28800, 0x2dcb6718
1, 208120, 208120, 1378, 2756, 0x30b6412b
1, 208097, 208097, 1378, 2756, 0x30b6412b
0, 152, 152, 1, 28800, 0xa31b6679
1, 209498, 209498, 1378, 2756, 0xbb1c3268
1, 209475, 209475, 1378, 2756, 0xbb1c3268
1, 210853, 210853, 1378, 2756, 0xbc175b6a
0, 153, 153, 1, 28800, 0x262d6a50
1, 210876, 210876, 1378, 2756, 0xbc175b6a
1, 212231, 212231, 1378, 2756, 0xf8d160e2
0, 154, 154, 1, 28800, 0xff3d6d0d
1, 212254, 212254, 1378, 2756, 0xf8d160e2
1, 213609, 213609, 1378, 2756, 0xc1048154
0, 155, 155, 1, 28800, 0x159d7045
1, 213632, 213632, 1378, 2756, 0xc1048154
0, 156, 156, 1, 28800, 0xf0df7800
1, 215010, 215010, 1380, 2760, 0xb83548f4
1, 214988, 214988, 1380, 2760, 0xb83548f4
0, 157, 157, 1, 28800, 0xbe825ea5
1, 216390, 216390, 1378, 2756, 0x22647962
1, 216366, 216366, 1378, 2756, 0x22647962
0, 158, 158, 1, 28800, 0x80e25d5a
1, 217768, 217768, 1378, 2756, 0x14ca54d3
1, 217744, 217744, 1378, 2756, 0x14ca54d3
0, 159, 159, 1, 28800, 0x8cbe263f
1, 219146, 219146, 1378, 2756, 0x58754b3a
1, 219122, 219122, 1378, 2756, 0x58754b3a

View File

@ -1 +1,31 @@
b4cd52fc080bffefeea94ce7c116046f
#tb 0: 1/22050
0, 0, 0, 28, 30, 0x51750711
0, 28, 28, 28, 30, 0x9ca20c2a
0, 56, 56, 28, 30, 0x7551081f
0, 84, 84, 28, 30, 0x09540063
0, 112, 112, 28, 30, 0x02c40018
0, 140, 140, 28, 30, 0x0f6c0117
0, 168, 168, 28, 30, 0x2aab0315
0, 196, 196, 28, 30, 0x0e6d0117
0, 224, 224, 28, 30, 0x04770036
0, 252, 252, 28, 30, 0x939c090f
0, 280, 280, 28, 30, 0xde511116
0, 308, 308, 28, 30, 0x2f0f13f5
0, 336, 336, 28, 30, 0x65bb0630
0, 364, 364, 28, 30, 0x1f7a0333
0, 392, 392, 28, 30, 0xa3d71008
0, 420, 420, 28, 30, 0x69120801
0, 448, 448, 28, 30, 0x1e7b0207
0, 476, 476, 28, 30, 0x02c40018
0, 504, 504, 28, 30, 0x0d050126
0, 532, 532, 28, 30, 0x41c10333
0, 560, 560, 28, 30, 0x16a10207
0, 588, 588, 28, 30, 0x0f210207
0, 616, 616, 28, 30, 0x4e4b073e
0, 644, 644, 28, 30, 0xa6f20d1a
0, 672, 672, 28, 30, 0xe1e40ff9
0, 700, 700, 28, 30, 0x868b090f
0, 728, 728, 28, 30, 0x8c85091e
0, 756, 756, 28, 30, 0x5a21094b
0, 784, 784, 28, 30, 0x993c0900
0, 812, 812, 28, 30, 0x5b6b04e6

View File

@ -1,124 +1,124 @@
#tb 0: 1/48000
0, 0, 0, 334, 1336, 0x8e3c0abc
0, 334, 334, 334, 1336, 0x99c41108
0, 668, 668, 334, 1336, 0xd65be322
0, 1002, 1002, 334, 1336, 0x15b575fb
0, 1336, 1336, 334, 1336, 0x366f742a
0, 1670, 1670, 334, 1336, 0xed72ad83
0, 2004, 2004, 334, 1336, 0x73f21c93
0, 2338, 2338, 334, 1336, 0x4be7a770
0, 2672, 2672, 334, 1336, 0x69ecf80c
0, 3006, 3006, 334, 1336, 0x835dc0e5
0, 3340, 3340, 334, 1336, 0x3089458d
0, 3674, 3674, 334, 1336, 0xc73b8cdc
0, 4008, 4008, 334, 1336, 0xc1cdaa8f
0, 4342, 4342, 334, 1336, 0x47a49186
0, 4676, 4676, 334, 1336, 0x2db387e2
0, 5010, 5010, 334, 1336, 0x90da9a97
0, 5344, 5344, 334, 1336, 0xcd34a467
0, 5678, 5678, 334, 1336, 0xdca8bd29
0, 6012, 6012, 334, 1336, 0xa09f9da3
0, 6346, 6346, 334, 1336, 0x47c8acf6
0, 6680, 6680, 334, 1336, 0x94dfa20e
0, 7014, 7014, 334, 1336, 0x2123a5f6
0, 7348, 7348, 334, 1336, 0x2f1badde
0, 7682, 7682, 334, 1336, 0x47579528
0, 8016, 8016, 334, 1336, 0x028daa10
0, 8350, 8350, 334, 1336, 0x5ed7adcd
0, 8684, 8684, 334, 1336, 0xc5ee8f10
0, 9018, 9018, 334, 1336, 0xcfacb489
0, 9352, 9352, 334, 1336, 0x07de937b
0, 9686, 9686, 334, 1336, 0x07bd8f8b
0, 10020, 10020, 334, 1336, 0x4660912e
0, 10354, 10354, 334, 1336, 0x047f97ad
0, 10688, 10688, 334, 1336, 0xe0e8a11f
0, 11022, 11022, 334, 1336, 0xcd9898e6
0, 11356, 11356, 334, 1336, 0xccfda786
0, 11690, 11690, 334, 1336, 0xab1b9e40
0, 12024, 12024, 334, 1336, 0x2ea79ea1
0, 12358, 12358, 334, 1336, 0xade2ad7e
0, 12692, 12692, 334, 1336, 0xe5cf9684
0, 13026, 13026, 334, 1336, 0xb57184cf
0, 400, 400, 334, 1336, 0x99c41108
0, 720, 720, 334, 1336, 0xd65be322
0, 1040, 1040, 334, 1336, 0x15b575fb
0, 1360, 1360, 334, 1336, 0x366f742a
0, 1680, 1680, 334, 1336, 0xed72ad83
0, 2000, 2000, 334, 1336, 0x73f21c93
0, 2400, 2400, 334, 1336, 0x4be7a770
0, 2720, 2720, 334, 1336, 0x69ecf80c
0, 3040, 3040, 334, 1336, 0x835dc0e5
0, 3360, 3360, 334, 1336, 0x3089458d
0, 3680, 3680, 334, 1336, 0xc73b8cdc
0, 4080, 4080, 334, 1336, 0xc1cdaa8f
0, 4400, 4400, 334, 1336, 0x47a49186
0, 4720, 4720, 334, 1336, 0x2db387e2
0, 5040, 5040, 334, 1336, 0x90da9a97
0, 5360, 5360, 334, 1336, 0xcd34a467
0, 5680, 5680, 334, 1336, 0xdca8bd29
0, 6080, 6080, 334, 1336, 0xa09f9da3
0, 6400, 6400, 334, 1336, 0x47c8acf6
0, 6720, 6720, 334, 1336, 0x94dfa20e
0, 7040, 7040, 334, 1336, 0x2123a5f6
0, 7360, 7360, 334, 1336, 0x2f1badde
0, 7680, 7680, 334, 1336, 0x47579528
0, 8080, 8080, 334, 1336, 0x028daa10
0, 8400, 8400, 334, 1336, 0x5ed7adcd
0, 8720, 8720, 334, 1336, 0xc5ee8f10
0, 9040, 9040, 334, 1336, 0xcfacb489
0, 9360, 9360, 334, 1336, 0x07de937b
0, 9760, 9760, 334, 1336, 0x07bd8f8b
0, 10080, 10080, 334, 1336, 0x4660912e
0, 10400, 10400, 334, 1336, 0x047f97ad
0, 10720, 10720, 334, 1336, 0xe0e8a11f
0, 11040, 11040, 334, 1336, 0xcd9898e6
0, 11360, 11360, 334, 1336, 0xccfda786
0, 11760, 11760, 334, 1336, 0xab1b9e40
0, 12080, 12080, 334, 1336, 0x2ea79ea1
0, 12400, 12400, 334, 1336, 0xade2ad7e
0, 12720, 12720, 334, 1336, 0xe5cf9684
0, 13040, 13040, 334, 1336, 0xb57184cf
0, 13360, 13360, 334, 1336, 0x0668a5ce
0, 13694, 13694, 334, 1336, 0x643a9d96
0, 14028, 14028, 334, 1336, 0x97dc8ecc
0, 14362, 14362, 334, 1336, 0x72c2b174
0, 14696, 14696, 334, 1336, 0xe39d8fc3
0, 15030, 15030, 334, 1336, 0x56fc76d2
0, 15364, 15364, 334, 1336, 0x91a884b3
0, 15698, 15698, 334, 1336, 0x7b039a4e
0, 16032, 16032, 334, 1336, 0x3770a9dd
0, 16366, 16366, 334, 1336, 0x317c9cb8
0, 16700, 16700, 334, 1336, 0xdd97ad48
0, 17034, 17034, 334, 1336, 0x98066c1b
0, 17368, 17368, 334, 1336, 0xecd3a31c
0, 17702, 17702, 334, 1336, 0x0578b329
0, 18036, 18036, 334, 1336, 0x6942881c
0, 18370, 18370, 334, 1336, 0x56b5af29
0, 18704, 18704, 334, 1336, 0xf111a48a
0, 19038, 19038, 334, 1336, 0x1f5a8d45
0, 19372, 19372, 334, 1336, 0x39abdded
0, 19706, 19706, 334, 1336, 0xdb997fe8
0, 20040, 20040, 334, 1336, 0xd7f0d0b2
0, 20374, 20374, 334, 1336, 0xf3219413
0, 20708, 20708, 334, 1336, 0x9d80899d
0, 21042, 21042, 334, 1336, 0x7238bd63
0, 21376, 21376, 334, 1336, 0x7376703e
0, 21710, 21710, 334, 1336, 0x0fd56d02
0, 22044, 22044, 334, 1336, 0xa6c0951e
0, 22378, 22378, 334, 1336, 0xfacb674e
0, 22712, 22712, 334, 1336, 0x805bd289
0, 23046, 23046, 334, 1336, 0xa2a51a12
0, 23380, 23380, 334, 1336, 0x8a75d91b
0, 23714, 23714, 334, 1336, 0x34b1ef80
0, 24048, 24048, 334, 1336, 0x902921e0
0, 24382, 24382, 334, 1336, 0xc2db7895
0, 24716, 24716, 334, 1336, 0x7a0db9e1
0, 25050, 25050, 334, 1336, 0x66a93277
0, 25384, 25384, 334, 1336, 0x30830a83
0, 25718, 25718, 334, 1336, 0x251cf132
0, 26052, 26052, 334, 1336, 0x08dd852c
0, 26386, 26386, 334, 1336, 0x22ea164c
0, 13760, 13760, 334, 1336, 0x643a9d96
0, 14080, 14080, 334, 1336, 0x97dc8ecc
0, 14400, 14400, 334, 1336, 0x72c2b174
0, 14720, 14720, 334, 1336, 0xe39d8fc3
0, 15040, 15040, 334, 1336, 0x56fc76d2
0, 15360, 15360, 334, 1336, 0x91a884b3
0, 15760, 15760, 334, 1336, 0x7b039a4e
0, 16080, 16080, 334, 1336, 0x3770a9dd
0, 16400, 16400, 334, 1336, 0x317c9cb8
0, 16720, 16720, 334, 1336, 0xdd97ad48
0, 17040, 17040, 334, 1336, 0x98066c1b
0, 17440, 17440, 334, 1336, 0xecd3a31c
0, 17760, 17760, 334, 1336, 0x0578b329
0, 18080, 18080, 334, 1336, 0x6942881c
0, 18400, 18400, 334, 1336, 0x56b5af29
0, 18720, 18720, 334, 1336, 0xf111a48a
0, 19040, 19040, 334, 1336, 0x1f5a8d45
0, 19440, 19440, 334, 1336, 0x39abdded
0, 19760, 19760, 334, 1336, 0xdb997fe8
0, 20080, 20080, 334, 1336, 0xd7f0d0b2
0, 20400, 20400, 334, 1336, 0xf3219413
0, 20720, 20720, 334, 1336, 0x9d80899d
0, 21040, 21040, 334, 1336, 0x7238bd63
0, 21440, 21440, 334, 1336, 0x7376703e
0, 21760, 21760, 334, 1336, 0x0fd56d02
0, 22080, 22080, 334, 1336, 0xa6c0951e
0, 22400, 22400, 334, 1336, 0xfacb674e
0, 22720, 22720, 334, 1336, 0x805bd289
0, 23120, 23120, 334, 1336, 0xa2a51a12
0, 23440, 23440, 334, 1336, 0x8a75d91b
0, 23760, 23760, 334, 1336, 0x34b1ef80
0, 24080, 24080, 334, 1336, 0x902921e0
0, 24400, 24400, 334, 1336, 0xc2db7895
0, 24720, 24720, 334, 1336, 0x7a0db9e1
0, 25120, 25120, 334, 1336, 0x66a93277
0, 25440, 25440, 334, 1336, 0x30830a83
0, 25760, 25760, 334, 1336, 0x251cf132
0, 26080, 26080, 334, 1336, 0x08dd852c
0, 26400, 26400, 334, 1336, 0x22ea164c
0, 26720, 26720, 334, 1336, 0x3bdd91c4
0, 27054, 27054, 334, 1336, 0xa4c0fbd7
0, 27388, 27388, 334, 1336, 0x83aa81bd
0, 27722, 27722, 334, 1336, 0x8a7b0fdb
0, 28056, 28056, 334, 1336, 0x35c37b01
0, 28390, 28390, 334, 1336, 0xdede811e
0, 28724, 28724, 334, 1336, 0x7473a657
0, 29058, 29058, 334, 1336, 0x5b917e2b
0, 29392, 29392, 334, 1336, 0x1c5a7cfc
0, 29726, 29726, 334, 1336, 0xeb7bab0d
0, 30060, 30060, 334, 1336, 0x7337795c
0, 30394, 30394, 334, 1336, 0x68da9d08
0, 30728, 30728, 334, 1336, 0xe93b87fe
0, 31062, 31062, 334, 1336, 0xd4639f00
0, 31396, 31396, 334, 1336, 0x1070a91d
0, 31730, 31730, 334, 1336, 0x50e3788f
0, 32064, 32064, 334, 1336, 0x1dac6691
0, 32398, 32398, 334, 1336, 0xf62c709d
0, 32732, 32732, 334, 1336, 0x2369648d
0, 33066, 33066, 334, 1336, 0xbfc792e6
0, 33400, 33400, 334, 1336, 0x975eb8e3
0, 33734, 33734, 334, 1336, 0x35c49ba6
0, 34068, 34068, 334, 1336, 0xe6198aa9
0, 34402, 34402, 334, 1336, 0x99f37d9d
0, 34736, 34736, 334, 1336, 0x4815aff1
0, 35070, 35070, 334, 1336, 0x4fd366ca
0, 35404, 35404, 334, 1336, 0x43cf7bb4
0, 35738, 35738, 334, 1336, 0x14a576ac
0, 36072, 36072, 334, 1336, 0xc6986978
0, 36406, 36406, 334, 1336, 0x10f67dc4
0, 36740, 36740, 334, 1336, 0xcca07f7a
0, 37074, 37074, 334, 1336, 0x6d0a5dfe
0, 37408, 37408, 334, 1336, 0x4e0761ef
0, 37742, 37742, 334, 1336, 0x31368e66
0, 38076, 38076, 334, 1336, 0x14b895c1
0, 38410, 38410, 334, 1336, 0x4bb7c111
0, 38744, 38744, 334, 1336, 0x1676a8bb
0, 39078, 39078, 334, 1336, 0xddaaa459
0, 39412, 39412, 334, 1336, 0xc43eabce
0, 39746, 39746, 334, 1336, 0x4d9f8d54
0, 27120, 27120, 334, 1336, 0xa4c0fbd7
0, 27440, 27440, 334, 1336, 0x83aa81bd
0, 27760, 27760, 334, 1336, 0x8a7b0fdb
0, 28080, 28080, 334, 1336, 0x35c37b01
0, 28400, 28400, 334, 1336, 0xdede811e
0, 28720, 28720, 334, 1336, 0x7473a657
0, 29120, 29120, 334, 1336, 0x5b917e2b
0, 29440, 29440, 334, 1336, 0x1c5a7cfc
0, 29760, 29760, 334, 1336, 0xeb7bab0d
0, 30080, 30080, 334, 1336, 0x7337795c
0, 30400, 30400, 334, 1336, 0x68da9d08
0, 30800, 30800, 334, 1336, 0xe93b87fe
0, 31120, 31120, 334, 1336, 0xd4639f00
0, 31440, 31440, 334, 1336, 0x1070a91d
0, 31760, 31760, 334, 1336, 0x50e3788f
0, 32080, 32080, 334, 1336, 0x1dac6691
0, 32400, 32400, 334, 1336, 0xf62c709d
0, 32800, 32800, 334, 1336, 0x2369648d
0, 33120, 33120, 334, 1336, 0xbfc792e6
0, 33440, 33440, 334, 1336, 0x975eb8e3
0, 33760, 33760, 334, 1336, 0x35c49ba6
0, 34080, 34080, 334, 1336, 0xe6198aa9
0, 34400, 34400, 334, 1336, 0x99f37d9d
0, 34800, 34800, 334, 1336, 0x4815aff1
0, 35120, 35120, 334, 1336, 0x4fd366ca
0, 35440, 35440, 334, 1336, 0x43cf7bb4
0, 35760, 35760, 334, 1336, 0x14a576ac
0, 36080, 36080, 334, 1336, 0xc6986978
0, 36480, 36480, 334, 1336, 0x10f67dc4
0, 36800, 36800, 334, 1336, 0xcca07f7a
0, 37120, 37120, 334, 1336, 0x6d0a5dfe
0, 37440, 37440, 334, 1336, 0x4e0761ef
0, 37760, 37760, 334, 1336, 0x31368e66
0, 38080, 38080, 334, 1336, 0x14b895c1
0, 38480, 38480, 334, 1336, 0x4bb7c111
0, 38800, 38800, 334, 1336, 0x1676a8bb
0, 39120, 39120, 334, 1336, 0xddaaa459
0, 39440, 39440, 334, 1336, 0xc43eabce
0, 39760, 39760, 334, 1336, 0x4d9f8d54
0, 40080, 40080, 334, 1336, 0x0ac292cb
0, 40414, 40414, 334, 1336, 0x2d9c74e4
0, 40748, 40748, 334, 1336, 0xe73da38f
0, 40480, 40480, 334, 1336, 0x2d9c74e4
0, 40800, 40800, 334, 1336, 0xe73da38f

View File

@ -2,424 +2,424 @@
#tb 1: 1/22050
0, 0, 0, 0, 734, 0x5a042c2c
1, 0, 0, 512, 1024, 0x00000000
1, 512, 512, 512, 1024, 0x00000000
1, 1024, 1024, 512, 1024, 0xd89a448e
1, 1536, 1536, 512, 1024, 0x695b369c
1, 2048, 2048, 512, 1024, 0xc8ba5707
1, 507, 507, 512, 1024, 0x00000000
1, 1014, 1014, 512, 1024, 0xd89a448e
1, 1521, 1521, 512, 1024, 0x695b369c
1, 2029, 2029, 512, 1024, 0xc8ba5707
0, 111, 111, 0, 763, 0xb5893f2f
1, 2560, 2560, 512, 1024, 0xdf241fc6
1, 3072, 3072, 512, 1024, 0x61cf4166
1, 3584, 3584, 512, 1024, 0x97cbc386
1, 4096, 4096, 512, 1024, 0x44899d04
1, 4608, 4608, 512, 1024, 0xa7cbaa62
1, 2558, 2558, 512, 1024, 0xdf241fc6
1, 3065, 3065, 512, 1024, 0x61cf4166
1, 3572, 3572, 512, 1024, 0x97cbc386
1, 4079, 4079, 512, 1024, 0x44899d04
1, 4586, 4586, 512, 1024, 0xa7cbaa62
0, 222, 222, 0, 3023, 0x0f3907d3
1, 5120, 5120, 512, 1024, 0xa7aea60c
1, 5632, 5632, 512, 1024, 0xd7b18a89
1, 6144, 6144, 512, 1024, 0x268e81f6
1, 6656, 6656, 512, 1024, 0x9cf83a2f
1, 7168, 7168, 512, 1024, 0x5559b508
1, 5116, 5116, 512, 1024, 0xa7aea60c
1, 5623, 5623, 512, 1024, 0xd7b18a89
1, 6130, 6130, 512, 1024, 0x268e81f6
1, 6637, 6637, 512, 1024, 0x9cf83a2f
1, 7166, 7166, 512, 1024, 0x5559b508
0, 333, 333, 0, 4800, 0x22e6e18a
1, 7680, 7680, 512, 1024, 0xe1b9e71c
1, 8192, 8192, 512, 1024, 0xdcee733e
1, 8704, 8704, 512, 1024, 0xe5918f60
1, 9216, 9216, 512, 1024, 0x29dbd209
1, 9728, 9728, 512, 1024, 0x9bcbcf16
1, 7673, 7673, 512, 1024, 0xe1b9e71c
1, 8181, 8181, 512, 1024, 0xdcee733e
1, 8688, 8688, 512, 1024, 0xe5918f60
1, 9195, 9195, 512, 1024, 0x29dbd209
1, 9724, 9724, 512, 1024, 0x9bcbcf16
0, 444, 444, 0, 6417, 0x427adde5
1, 10240, 10240, 512, 1024, 0x86f5f458
1, 10752, 10752, 512, 1024, 0xabcbda86
1, 11264, 11264, 512, 1024, 0xc51f77b9
1, 11776, 11776, 512, 1024, 0xf6b3a504
1, 10231, 10231, 512, 1024, 0x86f5f458
1, 10738, 10738, 512, 1024, 0xabcbda86
1, 11246, 11246, 512, 1024, 0xc51f77b9
1, 11775, 11775, 512, 1024, 0xf6b3a504
0, 555, 555, 0, 6776, 0x7a74c6ad
1, 12288, 12288, 512, 1024, 0x1af3e40e
1, 12800, 12800, 512, 1024, 0x3866b03b
1, 13312, 13312, 512, 1024, 0xbc005403
1, 13824, 13824, 512, 1024, 0xe9dfcc51
1, 14336, 14336, 512, 1024, 0x83c837cb
1, 12282, 12282, 512, 1024, 0x1af3e40e
1, 12789, 12789, 512, 1024, 0x3866b03b
1, 13296, 13296, 512, 1024, 0xbc005403
1, 13803, 13803, 512, 1024, 0xe9dfcc51
1, 14332, 14332, 512, 1024, 0x83c837cb
0, 666, 666, 0, 6808, 0x1f6eb7c3
1, 14848, 14848, 512, 1024, 0xfa649580
1, 15360, 15360, 512, 1024, 0x519452ea
1, 15872, 15872, 512, 1024, 0xd4978774
1, 16384, 16384, 512, 1024, 0xe2a3b1cd
1, 16896, 16896, 512, 1024, 0x9a9472ad
1, 14840, 14840, 512, 1024, 0xfa649580
1, 15347, 15347, 512, 1024, 0x519452ea
1, 15854, 15854, 512, 1024, 0xd4978774
1, 16383, 16383, 512, 1024, 0xe2a3b1cd
1, 16890, 16890, 512, 1024, 0x9a9472ad
0, 777, 777, 0, 6726, 0x452087e6
1, 17408, 17408, 512, 1024, 0xa12d4060
1, 17920, 17920, 512, 1024, 0x31fb0646
1, 18432, 18432, 512, 1024, 0xfc44343f
1, 18944, 18944, 512, 1024, 0x0847751a
1, 19456, 19456, 512, 1024, 0x227968a2
1, 17397, 17397, 512, 1024, 0xa12d4060
1, 17905, 17905, 512, 1024, 0x31fb0646
1, 18412, 18412, 512, 1024, 0xfc44343f
1, 18941, 18941, 512, 1024, 0x0847751a
1, 19448, 19448, 512, 1024, 0x227968a2
0, 888, 888, 0, 6829, 0xee82b109
1, 19968, 19968, 512, 1024, 0x7cce9f1c
1, 20480, 20480, 512, 1024, 0xb8356713
1, 19955, 19955, 512, 1024, 0x7cce9f1c
1, 20462, 20462, 512, 1024, 0xb8356713
1, 20992, 20992, 512, 1024, 0xb29f6e6f
1, 21504, 21504, 512, 1024, 0x9e1430ab
1, 22016, 22016, 512, 1024, 0x26d85423
1, 21499, 21499, 512, 1024, 0x9e1430ab
1, 22006, 22006, 512, 1024, 0x26d85423
0, 999, 999, 0, 7055, 0xf41f1108
1, 22528, 22528, 512, 1024, 0x6496547d
1, 23040, 23040, 512, 1024, 0x316b1a86
1, 23552, 23552, 512, 1024, 0x3cd83afc
1, 24064, 24064, 512, 1024, 0x993ff633
1, 22513, 22513, 512, 1024, 0x6496547d
1, 23020, 23020, 512, 1024, 0x316b1a86
1, 23549, 23549, 512, 1024, 0x3cd83afc
1, 24057, 24057, 512, 1024, 0x993ff633
0, 1111, 1111, 0, 6977, 0xf8fe1ede
1, 24576, 24576, 512, 1024, 0x0708d1a2
1, 25088, 25088, 512, 1024, 0xd7230db9
1, 25600, 25600, 512, 1024, 0xbb0779ca
1, 26112, 26112, 512, 1024, 0xc6094e1b
1, 26624, 26624, 512, 1024, 0x15a8b039
1, 24564, 24564, 512, 1024, 0x0708d1a2
1, 25071, 25071, 512, 1024, 0xd7230db9
1, 25578, 25578, 512, 1024, 0xbb0779ca
1, 26107, 26107, 512, 1024, 0xc6094e1b
1, 26614, 26614, 512, 1024, 0x15a8b039
0, 1222, 1222, 0, 6942, 0x9ad105c6
1, 27136, 27136, 512, 1024, 0xd6dbe88c
1, 27648, 27648, 512, 1024, 0x7e8d1140
1, 28160, 28160, 512, 1024, 0xef88e525
1, 28672, 28672, 512, 1024, 0x44e21149
1, 29184, 29184, 512, 1024, 0x65b0f5f4
1, 27122, 27122, 512, 1024, 0xd6dbe88c
1, 27629, 27629, 512, 1024, 0x7e8d1140
1, 28158, 28158, 512, 1024, 0xef88e525
1, 28665, 28665, 512, 1024, 0x44e21149
1, 29172, 29172, 512, 1024, 0x65b0f5f4
0, 1333, 1333, 0, 6926, 0xe239dad6
1, 29696, 29696, 512, 1024, 0xb955f687
1, 30208, 30208, 512, 1024, 0xc85fba9c
1, 30720, 30720, 512, 1024, 0xf59655ad
1, 31232, 31232, 512, 1024, 0x6de80bf1
1, 31744, 31744, 512, 1024, 0x2dcf6e41
1, 29679, 29679, 512, 1024, 0xb955f687
1, 30186, 30186, 512, 1024, 0xc85fba9c
1, 30716, 30716, 512, 1024, 0xf59655ad
1, 31223, 31223, 512, 1024, 0x6de80bf1
1, 31730, 31730, 512, 1024, 0x2dcf6e41
0, 1444, 1444, 0, 6966, 0x81dcfab1
1, 32256, 32256, 512, 1024, 0xd0ddcf8a
1, 32768, 32768, 512, 1024, 0x00135c2d
1, 33280, 33280, 512, 1024, 0x697f8efd
1, 33792, 33792, 512, 1024, 0x7a9bada5
1, 32237, 32237, 512, 1024, 0xd0ddcf8a
1, 32766, 32766, 512, 1024, 0x00135c2d
1, 33273, 33273, 512, 1024, 0x697f8efd
1, 33781, 33781, 512, 1024, 0x7a9bada5
0, 1555, 1555, 0, 6896, 0x31e6cc02
1, 34304, 34304, 512, 1024, 0x0d22783c
1, 34816, 34816, 512, 1024, 0x7726d07d
1, 35328, 35328, 512, 1024, 0xa2f14f67
1, 35840, 35840, 512, 1024, 0x7f51060d
1, 36352, 36352, 512, 1024, 0xc4ec6aea
1, 34288, 34288, 512, 1024, 0x0d22783c
1, 34795, 34795, 512, 1024, 0x7726d07d
1, 35324, 35324, 512, 1024, 0xa2f14f67
1, 35831, 35831, 512, 1024, 0x7f51060d
1, 36338, 36338, 512, 1024, 0xc4ec6aea
0, 1666, 1666, 0, 6889, 0x1cc1006e
1, 36864, 36864, 512, 1024, 0x9bb37ca4
1, 37376, 37376, 512, 1024, 0x9b085577
1, 37888, 37888, 512, 1024, 0x8812f8af
1, 38400, 38400, 512, 1024, 0x788f5221
1, 38912, 38912, 512, 1024, 0x3a2ce642
1, 36846, 36846, 512, 1024, 0x9bb37ca4
1, 37375, 37375, 512, 1024, 0x9b085577
1, 37882, 37882, 512, 1024, 0x8812f8af
1, 38389, 38389, 512, 1024, 0x788f5221
1, 38896, 38896, 512, 1024, 0x3a2ce642
0, 1777, 1777, 0, 6933, 0xc303f87f
1, 39424, 39424, 512, 1024, 0x72415692
1, 39936, 39936, 512, 1024, 0xe3dcc105
1, 40448, 40448, 512, 1024, 0xb26c0599
1, 40960, 40960, 512, 1024, 0x5c9e55eb
1, 41472, 41472, 512, 1024, 0x8fe88707
1, 39403, 39403, 512, 1024, 0x72415692
1, 39933, 39933, 512, 1024, 0xe3dcc105
1, 40440, 40440, 512, 1024, 0xb26c0599
1, 40947, 40947, 512, 1024, 0x5c9e55eb
1, 41454, 41454, 512, 1024, 0x8fe88707
0, 1888, 1888, 0, 7034, 0xb4970a20
1, 41984, 41984, 512, 1024, 0xc5d7beb6
1, 42496, 42496, 512, 1024, 0xe1d3a3b4
1, 43008, 43008, 512, 1024, 0x012da0c6
1, 43520, 43520, 512, 1024, 0x8d010922
1, 44032, 44032, 512, 1024, 0x3366eb0d
1, 41983, 41983, 512, 1024, 0xc5d7beb6
1, 42490, 42490, 512, 1024, 0xe1d3a3b4
1, 42998, 42998, 512, 1024, 0x012da0c6
1, 43505, 43505, 512, 1024, 0x8d010922
1, 44012, 44012, 512, 1024, 0x3366eb0d
0, 1999, 1999, 0, 6961, 0xf064095d
1, 44544, 44544, 512, 1024, 0xc9381a27
1, 45056, 45056, 512, 1024, 0x0774f685
1, 45568, 45568, 512, 1024, 0xc5cae0a5
1, 46080, 46080, 512, 1024, 0xa6f4737c
1, 44541, 44541, 512, 1024, 0xc9381a27
1, 45048, 45048, 512, 1024, 0x0774f685
1, 45555, 45555, 512, 1024, 0xc5cae0a5
1, 46062, 46062, 512, 1024, 0xa6f4737c
0, 2111, 2111, 0, 7089, 0x5ba350f9
1, 46592, 46592, 512, 1024, 0x8fb6d0d1
1, 47104, 47104, 512, 1024, 0x05f579c2
1, 47616, 47616, 512, 1024, 0x56905d99
1, 48128, 48128, 512, 1024, 0x002ee18d
1, 48640, 48640, 512, 1024, 0xeb37ef51
1, 47099, 47099, 512, 1024, 0x05f579c2
1, 47606, 47606, 512, 1024, 0x56905d99
1, 48113, 48113, 512, 1024, 0x002ee18d
1, 48620, 48620, 512, 1024, 0xeb37ef51
0, 2222, 2222, 0, 7078, 0xa83f3e88
1, 49152, 49152, 512, 1024, 0x38025635
1, 49664, 49664, 512, 1024, 0x4fe643c8
1, 50176, 50176, 512, 1024, 0x11d66ab1
1, 50688, 50688, 512, 1024, 0xcc3051e9
1, 51200, 51200, 512, 1024, 0xcd93e854
1, 49149, 49149, 512, 1024, 0x38025635
1, 49657, 49657, 512, 1024, 0x4fe643c8
1, 50164, 50164, 512, 1024, 0x11d66ab1
1, 50671, 50671, 512, 1024, 0xcc3051e9
1, 51178, 51178, 512, 1024, 0xcd93e854
0, 2333, 2333, 0, 7147, 0xcda66cfc
1, 51712, 51712, 512, 1024, 0x38f1196d
1, 52224, 52224, 512, 1024, 0x657a15fc
1, 52736, 52736, 512, 1024, 0x669ce2a9
1, 53248, 53248, 512, 1024, 0x95862dda
1, 53760, 53760, 512, 1024, 0x1726a7b2
1, 51707, 51707, 512, 1024, 0x38f1196d
1, 52214, 52214, 512, 1024, 0x657a15fc
1, 52722, 52722, 512, 1024, 0x669ce2a9
1, 53229, 53229, 512, 1024, 0x95862dda
1, 53758, 53758, 512, 1024, 0x1726a7b2
0, 2444, 2444, 0, 7173, 0xb7455859
1, 54272, 54272, 512, 1024, 0xd6ece2a1
1, 54784, 54784, 512, 1024, 0x33ab9553
1, 55296, 55296, 512, 1024, 0xd50c73a6
1, 55808, 55808, 512, 1024, 0xfe25b63a
1, 56320, 56320, 512, 1024, 0x7e2959e3
1, 54265, 54265, 512, 1024, 0xd6ece2a1
1, 54772, 54772, 512, 1024, 0x33ab9553
1, 55279, 55279, 512, 1024, 0xd50c73a6
1, 55786, 55786, 512, 1024, 0xfe25b63a
1, 56316, 56316, 512, 1024, 0x7e2959e3
0, 2555, 2555, 0, 7213, 0x97b89994
1, 56832, 56832, 512, 1024, 0xa4c07b34
1, 57344, 57344, 512, 1024, 0xd6d8f15c
1, 57856, 57856, 512, 1024, 0x1eccddd7
1, 58368, 58368, 512, 1024, 0x2b69f9cb
1, 56823, 56823, 512, 1024, 0xa4c07b34
1, 57330, 57330, 512, 1024, 0xd6d8f15c
1, 57837, 57837, 512, 1024, 0x1eccddd7
1, 58366, 58366, 512, 1024, 0x2b69f9cb
0, 2666, 2666, 0, 7170, 0xca8b2948
1, 58880, 58880, 512, 1024, 0x667b775f
1, 59392, 59392, 512, 1024, 0xad3b84e9
1, 59904, 59904, 512, 1024, 0x4f29fc67
1, 60416, 60416, 512, 1024, 0x8d611ab7
1, 60928, 60928, 512, 1024, 0x278966ea
1, 58874, 58874, 512, 1024, 0x667b775f
1, 59381, 59381, 512, 1024, 0xad3b84e9
1, 59888, 59888, 512, 1024, 0x4f29fc67
1, 60395, 60395, 512, 1024, 0x8d611ab7
1, 60924, 60924, 512, 1024, 0x278966ea
0, 2777, 2777, 0, 7174, 0xc7cc6bbb
1, 61440, 61440, 512, 1024, 0xaf33812b
1, 61952, 61952, 512, 1024, 0xa55f4265
1, 62464, 62464, 512, 1024, 0x023cb51c
1, 62976, 62976, 512, 1024, 0x1d1f1005
1, 63488, 63488, 512, 1024, 0x874cccf7
1, 61431, 61431, 512, 1024, 0xaf33812b
1, 61938, 61938, 512, 1024, 0xa55f4265
1, 62446, 62446, 512, 1024, 0x023cb51c
1, 62975, 62975, 512, 1024, 0x1d1f1005
1, 63482, 63482, 512, 1024, 0x874cccf7
0, 2888, 2888, 0, 7235, 0xc2e68d2b
1, 64000, 64000, 512, 1024, 0xda705428
1, 64512, 64512, 512, 1024, 0x48d9b440
1, 65024, 65024, 512, 1024, 0xa14e0712
1, 65536, 65536, 512, 1024, 0x7efbad1f
1, 66048, 66048, 512, 1024, 0xdb82c17f
1, 63989, 63989, 512, 1024, 0xda705428
1, 64496, 64496, 512, 1024, 0x48d9b440
1, 65003, 65003, 512, 1024, 0xa14e0712
1, 65533, 65533, 512, 1024, 0x7efbad1f
1, 66040, 66040, 512, 1024, 0xdb82c17f
0, 3000, 3000, 0, 7261, 0x8204a423
1, 66560, 66560, 512, 1024, 0xcbe87613
1, 67072, 67072, 512, 1024, 0x3a63df1d
1, 67584, 67584, 512, 1024, 0xd5636bba
1, 68096, 68096, 512, 1024, 0x9397af23
1, 66547, 66547, 512, 1024, 0xcbe87613
1, 67054, 67054, 512, 1024, 0x3a63df1d
1, 67583, 67583, 512, 1024, 0xd5636bba
1, 68090, 68090, 512, 1024, 0x9397af23
0, 3111, 3111, 0, 7353, 0xacc7e7c0
1, 68608, 68608, 512, 1024, 0x32a07c98
1, 69120, 69120, 512, 1024, 0x202ca667
1, 69632, 69632, 512, 1024, 0xdf969011
1, 70144, 70144, 512, 1024, 0xc434d238
1, 70656, 70656, 512, 1024, 0xe9ad7562
1, 68598, 68598, 512, 1024, 0x32a07c98
1, 69105, 69105, 512, 1024, 0x202ca667
1, 69612, 69612, 512, 1024, 0xdf969011
1, 70141, 70141, 512, 1024, 0xc434d238
1, 70648, 70648, 512, 1024, 0xe9ad7562
0, 3222, 3222, 0, 7065, 0x45035c5c
1, 71168, 71168, 512, 1024, 0xb51b6b50
1, 71680, 71680, 512, 1024, 0xe70aecd3
1, 71155, 71155, 512, 1024, 0xb51b6b50
1, 71662, 71662, 512, 1024, 0xe70aecd3
1, 72192, 72192, 512, 1024, 0x03c816b2
1, 72704, 72704, 512, 1024, 0x869fdf25
1, 73216, 73216, 512, 1024, 0xd40a0a62
1, 72699, 72699, 512, 1024, 0x869fdf25
1, 73206, 73206, 512, 1024, 0xd40a0a62
0, 3333, 3333, 0, 7269, 0x72edbb76
1, 73728, 73728, 512, 1024, 0x5af7dd35
1, 74240, 74240, 512, 1024, 0x891ffc72
1, 74752, 74752, 512, 1024, 0x1ff68a08
1, 75264, 75264, 512, 1024, 0x5a7517a9
1, 75776, 75776, 512, 1024, 0x0f959f74
1, 73713, 73713, 512, 1024, 0x5af7dd35
1, 74220, 74220, 512, 1024, 0x891ffc72
1, 74750, 74750, 512, 1024, 0x1ff68a08
1, 75257, 75257, 512, 1024, 0x5a7517a9
1, 75764, 75764, 512, 1024, 0x0f959f74
0, 3444, 3444, 0, 7220, 0xb926772f
1, 76288, 76288, 512, 1024, 0xe92a12a2
1, 76800, 76800, 512, 1024, 0x38000e55
1, 77312, 77312, 512, 1024, 0x39fbdd70
1, 77824, 77824, 512, 1024, 0xca3d9184
1, 78336, 78336, 512, 1024, 0x66c8995b
1, 76271, 76271, 512, 1024, 0xe92a12a2
1, 76778, 76778, 512, 1024, 0x38000e55
1, 77307, 77307, 512, 1024, 0x39fbdd70
1, 77814, 77814, 512, 1024, 0xca3d9184
1, 78322, 78322, 512, 1024, 0x66c8995b
0, 3555, 3555, 0, 7326, 0x0a66c632
1, 78848, 78848, 512, 1024, 0xac25acea
1, 79360, 79360, 512, 1024, 0x3cd1046c
1, 79872, 79872, 512, 1024, 0x6a1df31c
1, 80384, 80384, 512, 1024, 0x21ca10a1
1, 78829, 78829, 512, 1024, 0xac25acea
1, 79358, 79358, 512, 1024, 0x3cd1046c
1, 79865, 79865, 512, 1024, 0x6a1df31c
1, 80372, 80372, 512, 1024, 0x21ca10a1
0, 3666, 3666, 0, 7225, 0xe39076ab
1, 80896, 80896, 512, 1024, 0x1aeccedc
1, 81408, 81408, 512, 1024, 0xddea1335
1, 81920, 81920, 512, 1024, 0x19f5ca9f
1, 82432, 82432, 512, 1024, 0x88e95e43
1, 82944, 82944, 512, 1024, 0x726284fe
1, 80879, 80879, 512, 1024, 0x1aeccedc
1, 81387, 81387, 512, 1024, 0xddea1335
1, 81916, 81916, 512, 1024, 0x19f5ca9f
1, 82423, 82423, 512, 1024, 0x88e95e43
1, 82930, 82930, 512, 1024, 0x726284fe
0, 3777, 3777, 0, 7265, 0xe0209036
1, 83456, 83456, 512, 1024, 0x6b85b40e
1, 83968, 83968, 512, 1024, 0x111fee2a
1, 84480, 84480, 512, 1024, 0x3656b588
1, 84992, 84992, 512, 1024, 0xa5a2b552
1, 85504, 85504, 512, 1024, 0x38fb2467
1, 83437, 83437, 512, 1024, 0x6b85b40e
1, 83966, 83966, 512, 1024, 0x111fee2a
1, 84474, 84474, 512, 1024, 0x3656b588
1, 84981, 84981, 512, 1024, 0xa5a2b552
1, 85488, 85488, 512, 1024, 0x38fb2467
0, 3888, 3888, 0, 7337, 0x7a5dc093
1, 86016, 86016, 512, 1024, 0xaa919ccc
1, 86528, 86528, 512, 1024, 0x15993dbc
1, 87040, 87040, 512, 1024, 0xbe01a7b9
1, 87552, 87552, 512, 1024, 0xefe93c09
1, 88064, 88064, 512, 1024, 0x1bb566e5
1, 85995, 85995, 512, 1024, 0xaa919ccc
1, 86524, 86524, 512, 1024, 0x15993dbc
1, 87031, 87031, 512, 1024, 0xbe01a7b9
1, 87538, 87538, 512, 1024, 0xefe93c09
1, 88046, 88046, 512, 1024, 0x1bb566e5
0, 4000, 4000, 0, 7246, 0x519a7a3c
1, 88576, 88576, 512, 1024, 0x15ce6237
1, 89088, 89088, 512, 1024, 0xa8552e66
1, 89600, 89600, 512, 1024, 0x9d80187e
1, 90112, 90112, 512, 1024, 0x5df3fc30
1, 90624, 90624, 512, 1024, 0x1a312aa5
1, 88575, 88575, 512, 1024, 0x15ce6237
1, 89082, 89082, 512, 1024, 0xa8552e66
1, 89589, 89589, 512, 1024, 0x9d80187e
1, 90096, 90096, 512, 1024, 0x5df3fc30
1, 90603, 90603, 512, 1024, 0x1a312aa5
0, 4111, 4111, 0, 7266, 0x352c8078
1, 91136, 91136, 512, 1024, 0x6bb8e302
1, 91648, 91648, 512, 1024, 0xbd9684bb
1, 92160, 92160, 512, 1024, 0x78b0b166
1, 92672, 92672, 512, 1024, 0xd9af5eae
1, 91133, 91133, 512, 1024, 0x6bb8e302
1, 91640, 91640, 512, 1024, 0xbd9684bb
1, 92147, 92147, 512, 1024, 0x78b0b166
1, 92654, 92654, 512, 1024, 0xd9af5eae
0, 4222, 4222, 0, 7323, 0xcaf69d7c
1, 93184, 93184, 512, 1024, 0xdb90fe82
1, 93696, 93696, 512, 1024, 0x327614e9
1, 94208, 94208, 512, 1024, 0x1f19b7fe
1, 94720, 94720, 512, 1024, 0x46c53f96
1, 95232, 95232, 512, 1024, 0x921b2189
1, 93183, 93183, 512, 1024, 0xdb90fe82
1, 93690, 93690, 512, 1024, 0x327614e9
1, 94198, 94198, 512, 1024, 0x1f19b7fe
1, 94705, 94705, 512, 1024, 0x46c53f96
1, 95212, 95212, 512, 1024, 0x921b2189
0, 4333, 4333, 0, 7309, 0x98c1e6f7
1, 95744, 95744, 512, 1024, 0xa8fbc85a
1, 96256, 96256, 512, 1024, 0xabfdaaae
1, 96768, 96768, 512, 1024, 0x6acc7387
1, 97280, 97280, 512, 1024, 0x0d9c27b5
1, 95741, 95741, 512, 1024, 0xa8fbc85a
1, 96248, 96248, 512, 1024, 0xabfdaaae
1, 96755, 96755, 512, 1024, 0x6acc7387
1, 97263, 97263, 512, 1024, 0x0d9c27b5
1, 97792, 97792, 512, 1024, 0xba4dd809
0, 4444, 4444, 0, 7121, 0x913d5bd6
1, 98304, 98304, 512, 1024, 0x2a2ad521
1, 98816, 98816, 512, 1024, 0x892de38a
1, 99328, 99328, 512, 1024, 0xdc97a2eb
1, 99840, 99840, 512, 1024, 0x4f614ca4
1, 100352, 100352, 512, 1024, 0x9c8a77ea
1, 98299, 98299, 512, 1024, 0x2a2ad521
1, 98806, 98806, 512, 1024, 0x892de38a
1, 99313, 99313, 512, 1024, 0xdc97a2eb
1, 99820, 99820, 512, 1024, 0x4f614ca4
1, 100350, 100350, 512, 1024, 0x9c8a77ea
0, 4555, 4555, 111, 7088, 0x56302362
1, 100864, 100864, 512, 1024, 0x2d30e646
1, 101376, 101376, 512, 1024, 0x74e800a7
1, 101888, 101888, 512, 1024, 0x1e01fb02
1, 102400, 102400, 512, 1024, 0x4ed2c1d8
1, 100857, 100857, 512, 1024, 0x2d30e646
1, 101364, 101364, 512, 1024, 0x74e800a7
1, 101871, 101871, 512, 1024, 0x1e01fb02
1, 102378, 102378, 512, 1024, 0x4ed2c1d8
0, 4666, 4666, 111, 7104, 0xc0d14f78
1, 102912, 102912, 512, 1024, 0xf2fdbe63
1, 103424, 103424, 512, 1024, 0x8d6f63a1
1, 103936, 103936, 512, 1024, 0xded468d9
1, 104448, 104448, 512, 1024, 0xccad839e
1, 104960, 104960, 512, 1024, 0xdde7c082
1, 102907, 102907, 512, 1024, 0xf2fdbe63
1, 103414, 103414, 512, 1024, 0x8d6f63a1
1, 103922, 103922, 512, 1024, 0xded468d9
1, 104429, 104429, 512, 1024, 0xccad839e
1, 104958, 104958, 512, 1024, 0xdde7c082
0, 4777, 4777, 111, 7169, 0xd03c825b
1, 105472, 105472, 512, 1024, 0x548613c5
1, 105984, 105984, 512, 1024, 0x383909bd
1, 106496, 106496, 512, 1024, 0xfd37627b
1, 107008, 107008, 512, 1024, 0x6d95a481
1, 107520, 107520, 512, 1024, 0x56aa87fa
1, 105465, 105465, 512, 1024, 0x548613c5
1, 105972, 105972, 512, 1024, 0x383909bd
1, 106479, 106479, 512, 1024, 0xfd37627b
1, 106987, 106987, 512, 1024, 0x6d95a481
1, 107516, 107516, 512, 1024, 0x56aa87fa
0, 4888, 4888, 111, 7038, 0x1ecc201d
1, 108032, 108032, 512, 1024, 0x7b67258c
1, 108544, 108544, 512, 1024, 0x7dd99a92
1, 109056, 109056, 512, 1024, 0x4a66d102
1, 109568, 109568, 512, 1024, 0x7b3fce51
1, 110080, 110080, 512, 1024, 0xbbd968aa
1, 108023, 108023, 512, 1024, 0x7b67258c
1, 108530, 108530, 512, 1024, 0x7dd99a92
1, 109037, 109037, 512, 1024, 0x4a66d102
1, 109566, 109566, 512, 1024, 0x7b3fce51
1, 110074, 110074, 512, 1024, 0xbbd968aa
0, 5000, 5000, 111, 7015, 0x83c94454
1, 110592, 110592, 512, 1024, 0x8283ec36
1, 111104, 111104, 512, 1024, 0x3c96493d
1, 111616, 111616, 512, 1024, 0xfa4f8cf8
1, 112128, 112128, 512, 1024, 0xe2cf872d
1, 112640, 112640, 512, 1024, 0x0a9e7aa6
1, 110581, 110581, 512, 1024, 0x8283ec36
1, 111088, 111088, 512, 1024, 0x3c96493d
1, 111595, 111595, 512, 1024, 0xfa4f8cf8
1, 112124, 112124, 512, 1024, 0xe2cf872d
1, 112631, 112631, 512, 1024, 0x0a9e7aa6
0, 5111, 5111, 111, 6983, 0x9e51f54d
1, 113152, 113152, 512, 1024, 0x6e7a0550
1, 113664, 113664, 512, 1024, 0x3acfea2f
1, 114176, 114176, 512, 1024, 0x7111d0fa
1, 114688, 114688, 512, 1024, 0xe9a1eca9
1, 113139, 113139, 512, 1024, 0x6e7a0550
1, 113646, 113646, 512, 1024, 0x3acfea2f
1, 114175, 114175, 512, 1024, 0x7111d0fa
1, 114682, 114682, 512, 1024, 0xe9a1eca9
0, 5222, 5222, 111, 7088, 0x70d33de1
1, 115200, 115200, 512, 1024, 0x24da6c46
1, 115712, 115712, 512, 1024, 0x117cff37
1, 116224, 116224, 512, 1024, 0x0f27cab6
1, 116736, 116736, 512, 1024, 0x69b6b4e6
1, 117248, 117248, 512, 1024, 0x1e6cc841
1, 115189, 115189, 512, 1024, 0x24da6c46
1, 115696, 115696, 512, 1024, 0x117cff37
1, 116204, 116204, 512, 1024, 0x0f27cab6
1, 116733, 116733, 512, 1024, 0x69b6b4e6
1, 117240, 117240, 512, 1024, 0x1e6cc841
0, 5333, 5333, 111, 7096, 0x4d0f81b5
1, 117760, 117760, 512, 1024, 0xb01e2365
1, 118272, 118272, 512, 1024, 0x14e200d3
1, 118784, 118784, 512, 1024, 0xd1184c98
1, 119296, 119296, 512, 1024, 0xef9140e9
1, 119808, 119808, 512, 1024, 0x4cbb645e
1, 117747, 117747, 512, 1024, 0xb01e2365
1, 118254, 118254, 512, 1024, 0x14e200d3
1, 118783, 118783, 512, 1024, 0xd1184c98
1, 119290, 119290, 512, 1024, 0xef9140e9
1, 119798, 119798, 512, 1024, 0x4cbb645e
0, 5444, 5444, 111, 7106, 0xd1a83ddc
1, 120320, 120320, 512, 1024, 0xe7fe2f06
1, 120832, 120832, 512, 1024, 0xf8c45028
1, 121344, 121344, 512, 1024, 0x561358f4
1, 121856, 121856, 512, 1024, 0xd0129b77
1, 122368, 122368, 512, 1024, 0xcc636e88
1, 120305, 120305, 512, 1024, 0xe7fe2f06
1, 120812, 120812, 512, 1024, 0xf8c45028
1, 121341, 121341, 512, 1024, 0x561358f4
1, 121848, 121848, 512, 1024, 0xd0129b77
1, 122355, 122355, 512, 1024, 0xcc636e88
0, 5555, 5555, 111, 7219, 0x20f47fe4
1, 122880, 122880, 512, 1024, 0xe9406321
1, 122863, 122863, 512, 1024, 0xe9406321
1, 123392, 123392, 512, 1024, 0x9f16a041
1, 123904, 123904, 512, 1024, 0x468bf409
1, 124416, 124416, 512, 1024, 0x3df70f7b
1, 124928, 124928, 512, 1024, 0xa880b11b
1, 123899, 123899, 512, 1024, 0x468bf409
1, 124406, 124406, 512, 1024, 0x3df70f7b
1, 124913, 124913, 512, 1024, 0xa880b11b
0, 5666, 5666, 111, 7184, 0x45dc6a0e
1, 125440, 125440, 512, 1024, 0x3286c489
1, 125952, 125952, 512, 1024, 0x39fe9ebc
1, 126464, 126464, 512, 1024, 0xc533d83b
1, 126976, 126976, 512, 1024, 0x153b195d
1, 125420, 125420, 512, 1024, 0x3286c489
1, 125950, 125950, 512, 1024, 0x39fe9ebc
1, 126457, 126457, 512, 1024, 0xc533d83b
1, 126964, 126964, 512, 1024, 0x153b195d
0, 5777, 5777, 111, 7222, 0x488c6499
1, 127488, 127488, 512, 1024, 0xd84786a1
1, 128000, 128000, 512, 1024, 0xdc295aaa
1, 128512, 128512, 512, 1024, 0xfb764d8c
1, 129024, 129024, 512, 1024, 0xeebc9db9
1, 129536, 129536, 512, 1024, 0x7ba9403e
1, 127471, 127471, 512, 1024, 0xd84786a1
1, 127978, 127978, 512, 1024, 0xdc295aaa
1, 128507, 128507, 512, 1024, 0xfb764d8c
1, 129015, 129015, 512, 1024, 0xeebc9db9
1, 129522, 129522, 512, 1024, 0x7ba9403e
0, 5888, 5888, 111, 7254, 0xbd097ba7
1, 130048, 130048, 512, 1024, 0x4e5571ec
1, 130560, 130560, 512, 1024, 0xd965fad4
1, 131072, 131072, 512, 1024, 0x87e259f2
1, 131584, 131584, 512, 1024, 0xae7e533b
1, 132096, 132096, 512, 1024, 0x313cf4d6
1, 130029, 130029, 512, 1024, 0x4e5571ec
1, 130558, 130558, 512, 1024, 0xd965fad4
1, 131065, 131065, 512, 1024, 0x87e259f2
1, 131572, 131572, 512, 1024, 0xae7e533b
1, 132080, 132080, 512, 1024, 0x313cf4d6
0, 6000, 6000, 111, 7189, 0x46e06d43
1, 132608, 132608, 512, 1024, 0xe1844c90
1, 133120, 133120, 512, 1024, 0xbb057b44
1, 133632, 133632, 512, 1024, 0xa5099687
1, 134144, 134144, 512, 1024, 0xbff10707
1, 134656, 134656, 512, 1024, 0x37c4ffc0
1, 132587, 132587, 512, 1024, 0xe1844c90
1, 133116, 133116, 512, 1024, 0xbb057b44
1, 133623, 133623, 512, 1024, 0xa5099687
1, 134130, 134130, 512, 1024, 0xbff10707
1, 134637, 134637, 512, 1024, 0x37c4ffc0
0, 6111, 6111, 111, 7283, 0x19dd7319
1, 135168, 135168, 512, 1024, 0xf9fb6caa
1, 135680, 135680, 512, 1024, 0x3b6a3a1f
1, 136192, 136192, 512, 1024, 0x83431edb
1, 136704, 136704, 512, 1024, 0x1eb713cf
1, 135166, 135166, 512, 1024, 0xf9fb6caa
1, 135674, 135674, 512, 1024, 0x3b6a3a1f
1, 136181, 136181, 512, 1024, 0x83431edb
1, 136688, 136688, 512, 1024, 0x1eb713cf
1, 137195, 137195, 512, 1024, 0xd7b07a6d
0, 6222, 6222, 111, 7161, 0x23171d02
1, 137216, 137216, 512, 1024, 0xd7b07a6d
1, 137728, 137728, 512, 1024, 0x81ae3391
1, 138240, 138240, 512, 1024, 0xf150130a
1, 138752, 138752, 512, 1024, 0x09678eaa
1, 139264, 139264, 512, 1024, 0xb94e06f1
1, 137724, 137724, 512, 1024, 0x81ae3391
1, 138231, 138231, 512, 1024, 0xf150130a
1, 138739, 138739, 512, 1024, 0x09678eaa
1, 139246, 139246, 512, 1024, 0xb94e06f1
0, 6333, 6333, 111, 6976, 0xcc610c26
1, 139776, 139776, 512, 1024, 0x67b1dbc9
1, 140288, 140288, 512, 1024, 0xd6edc235
1, 140800, 140800, 512, 1024, 0x34e4c499
1, 141312, 141312, 512, 1024, 0xeefd89c0
1, 141824, 141824, 512, 1024, 0x38afdaf1
1, 139775, 139775, 512, 1024, 0x67b1dbc9
1, 140282, 140282, 512, 1024, 0xd6edc235
1, 140789, 140789, 512, 1024, 0x34e4c499
1, 141296, 141296, 512, 1024, 0xeefd89c0
1, 141804, 141804, 512, 1024, 0x38afdaf1
0, 6444, 6444, 111, 7056, 0x6cd917b0
1, 142336, 142336, 512, 1024, 0x29a60d76
1, 142848, 142848, 512, 1024, 0xe28a4372
1, 143360, 143360, 512, 1024, 0x7089454d
1, 143872, 143872, 512, 1024, 0x0c01bb7b
1, 144384, 144384, 512, 1024, 0xbd776a72
1, 142333, 142333, 512, 1024, 0x29a60d76
1, 142840, 142840, 512, 1024, 0xe28a4372
1, 143347, 143347, 512, 1024, 0x7089454d
1, 143854, 143854, 512, 1024, 0x0c01bb7b
1, 144383, 144383, 512, 1024, 0xbd776a72
0, 6555, 6555, 111, 6736, 0x02b78951
1, 144896, 144896, 512, 1024, 0x86776fd0
1, 145408, 145408, 512, 1024, 0xb37c88f7
1, 145920, 145920, 512, 1024, 0x5f90aaf8
1, 146432, 146432, 512, 1024, 0x203d4222
1, 146944, 146944, 512, 1024, 0x382692a6
1, 144891, 144891, 512, 1024, 0x86776fd0
1, 145398, 145398, 512, 1024, 0xb37c88f7
1, 145905, 145905, 512, 1024, 0x5f90aaf8
1, 146412, 146412, 512, 1024, 0x203d4222
1, 146941, 146941, 512, 1024, 0x382692a6
0, 6666, 6666, 111, 6540, 0x767e0854
1, 147456, 147456, 512, 1024, 0xf37c95fd
1, 147968, 147968, 512, 1024, 0x6c0b8877
1, 148480, 148480, 512, 1024, 0x2e54a8b6
1, 147448, 147448, 512, 1024, 0xf37c95fd
1, 147956, 147956, 512, 1024, 0x6c0b8877
1, 148463, 148463, 512, 1024, 0x2e54a8b6
1, 148992, 148992, 512, 1024, 0x7f266488
0, 6777, 6777, 111, 6170, 0xc84962fb
1, 149504, 149504, 512, 1024, 0xfbf20f9a
1, 150016, 150016, 512, 1024, 0xf2985cc0
1, 150528, 150528, 512, 1024, 0xc7075340
1, 151040, 151040, 512, 1024, 0xe4585695
1, 151552, 151552, 512, 1024, 0xbdffa380
1, 149499, 149499, 512, 1024, 0xfbf20f9a
1, 150006, 150006, 512, 1024, 0xf2985cc0
1, 150513, 150513, 512, 1024, 0xc7075340
1, 151020, 151020, 512, 1024, 0xe4585695
1, 151550, 151550, 512, 1024, 0xbdffa380
0, 6888, 6888, 111, 6169, 0x27e06c03
1, 152064, 152064, 512, 1024, 0x2422a8a9
1, 152576, 152576, 512, 1024, 0x59cbd75f
1, 153088, 153088, 512, 1024, 0x04ad1a8c
1, 153600, 153600, 512, 1024, 0x33c09191
1, 154112, 154112, 512, 1024, 0x55efa6fd
1, 152057, 152057, 512, 1024, 0x2422a8a9
1, 152564, 152564, 512, 1024, 0x59cbd75f
1, 153071, 153071, 512, 1024, 0x04ad1a8c
1, 153578, 153578, 512, 1024, 0x33c09191
1, 154107, 154107, 512, 1024, 0x55efa6fd
0, 7000, 7000, 111, 5864, 0xd14db83f
1, 154624, 154624, 512, 1024, 0xf73d0e5d
1, 155136, 155136, 512, 1024, 0x6141ebae
1, 155648, 155648, 512, 1024, 0x7db17a68
1, 156160, 156160, 512, 1024, 0xa6c690b6
1, 156672, 156672, 512, 1024, 0xa6fd6725
1, 154615, 154615, 512, 1024, 0xf73d0e5d
1, 155122, 155122, 512, 1024, 0x6141ebae
1, 155629, 155629, 512, 1024, 0x7db17a68
1, 156158, 156158, 512, 1024, 0xa6c690b6
1, 156665, 156665, 512, 1024, 0xa6fd6725
0, 7111, 7111, 111, 5375, 0x4a21055d
1, 157184, 157184, 512, 1024, 0x50a90b9b
1, 157696, 157696, 512, 1024, 0xef990dc8
1, 158208, 158208, 512, 1024, 0x75adf6b5
1, 158720, 158720, 512, 1024, 0x61eac43e
1, 159232, 159232, 512, 1024, 0x67797a19
1, 157172, 157172, 512, 1024, 0x50a90b9b
1, 157680, 157680, 512, 1024, 0xef990dc8
1, 158187, 158187, 512, 1024, 0x75adf6b5
1, 158716, 158716, 512, 1024, 0x61eac43e
1, 159223, 159223, 512, 1024, 0x67797a19
0, 7222, 7222, 111, 5206, 0x95ead3cb
1, 159744, 159744, 512, 1024, 0xf325277a
1, 160256, 160256, 512, 1024, 0x18bf254a
1, 160768, 160768, 512, 1024, 0x2ce6bee3
1, 161280, 161280, 512, 1024, 0x8d320860
1, 159730, 159730, 512, 1024, 0xf325277a
1, 160237, 160237, 512, 1024, 0x18bf254a
1, 160767, 160767, 512, 1024, 0x2ce6bee3
1, 161274, 161274, 512, 1024, 0x8d320860
0, 7333, 7333, 111, 5220, 0xcfdcc37e
1, 161792, 161792, 512, 1024, 0xc979b6e8
1, 162304, 162304, 512, 1024, 0xdb644b41
1, 162816, 162816, 512, 1024, 0xe1b368ba
1, 163328, 163328, 512, 1024, 0xacc53d15
1, 163840, 163840, 512, 1024, 0x42ea8c18
1, 161781, 161781, 512, 1024, 0xc979b6e8
1, 162288, 162288, 512, 1024, 0xdb644b41
1, 162795, 162795, 512, 1024, 0xe1b368ba
1, 163324, 163324, 512, 1024, 0xacc53d15
1, 163832, 163832, 512, 1024, 0x42ea8c18
0, 7444, 7444, 111, 4946, 0x2d864a77
1, 164352, 164352, 512, 1024, 0xe52c99a4
1, 164864, 164864, 512, 1024, 0xd7db54a6
1, 165376, 165376, 512, 1024, 0x7f27a7e3
1, 165888, 165888, 512, 1024, 0xf7ffeaa9
1, 166400, 166400, 512, 1024, 0x792b6088
1, 164339, 164339, 512, 1024, 0xe52c99a4
1, 164846, 164846, 512, 1024, 0xd7db54a6
1, 165375, 165375, 512, 1024, 0x7f27a7e3
1, 165882, 165882, 512, 1024, 0xf7ffeaa9
1, 166389, 166389, 512, 1024, 0x792b6088
0, 7555, 7555, 111, 4390, 0x2ab9f462
1, 166912, 166912, 512, 1024, 0x61d99724
1, 167424, 167424, 512, 1024, 0x5213720e
1, 167936, 167936, 512, 1024, 0xac09dd30
1, 168448, 168448, 512, 1024, 0x960bf6bb
1, 168960, 168960, 512, 1024, 0xc90168e1
1, 166896, 166896, 512, 1024, 0x61d99724
1, 167404, 167404, 512, 1024, 0x5213720e
1, 167933, 167933, 512, 1024, 0xac09dd30
1, 168440, 168440, 512, 1024, 0x960bf6bb
1, 168947, 168947, 512, 1024, 0xc90168e1
0, 7666, 7666, 111, 4051, 0x1d09592e
1, 169472, 169472, 512, 1024, 0x43b45768
1, 169984, 169984, 512, 1024, 0x935d60a1
1, 170496, 170496, 512, 1024, 0x9a342ef2
1, 171008, 171008, 512, 1024, 0xc894709f
1, 169454, 169454, 512, 1024, 0x43b45768
1, 169983, 169983, 512, 1024, 0x935d60a1
1, 170491, 170491, 512, 1024, 0x9a342ef2
1, 170998, 170998, 512, 1024, 0xc894709f
0, 7777, 7777, 111, 3680, 0x39bd6a12
1, 171520, 171520, 512, 1024, 0x59b43b07
1, 172032, 172032, 512, 1024, 0x36a1a98d
1, 172544, 172544, 512, 1024, 0x9e1a121c
1, 173056, 173056, 512, 1024, 0x02208b78
1, 173568, 173568, 512, 1024, 0xd1d7b274
1, 171505, 171505, 512, 1024, 0x59b43b07
1, 172012, 172012, 512, 1024, 0x36a1a98d
1, 172541, 172541, 512, 1024, 0x9e1a121c
1, 173048, 173048, 512, 1024, 0x02208b78
1, 173556, 173556, 512, 1024, 0xd1d7b274
0, 7888, 7888, 111, 2910, 0x6337ece9
1, 174080, 174080, 512, 1024, 0xdacd5096
1, 174063, 174063, 512, 1024, 0xdacd5096
1, 174592, 174592, 512, 1024, 0x51b71ead
1, 175104, 175104, 512, 1024, 0xd009a7ca
1, 175616, 175616, 512, 1024, 0xb6d5a938
1, 176128, 176128, 512, 1024, 0xf3d45e47
1, 175099, 175099, 512, 1024, 0xd009a7ca
1, 175606, 175606, 512, 1024, 0xb6d5a938
1, 176113, 176113, 512, 1024, 0xf3d45e47
0, 8000, 8000, 111, 2153, 0xf4e3bc17
1, 176640, 176640, 512, 1024, 0xea8e04fc
1, 177152, 177152, 512, 1024, 0x0b928bd8
1, 177664, 177664, 512, 1024, 0x0f02caec
1, 178176, 178176, 512, 1024, 0xe2b137a8
1, 178688, 178688, 512, 1024, 0xd5f94892
1, 176620, 176620, 512, 1024, 0xea8e04fc
1, 177150, 177150, 512, 1024, 0x0b928bd8
1, 177657, 177657, 512, 1024, 0x0f02caec
1, 178164, 178164, 512, 1024, 0xe2b137a8
1, 178671, 178671, 512, 1024, 0xd5f94892

View File

@ -16,205 +16,205 @@
0, 6, 6, 1, 161280, 0x79d717ae
1, 18956, 18956, 2708, 10832, 0x401ed099
0, 7, 7, 1, 161280, 0x1a87e2cb
1, 21664, 21664, 2708, 10832, 0x432a53bd
1, 21665, 21665, 2708, 10832, 0x432a53bd
0, 8, 8, 1, 161280, 0xe5c000ac
1, 24372, 24372, 2708, 10832, 0xc4276bfd
1, 24373, 24373, 2708, 10832, 0xc4276bfd
0, 9, 9, 1, 161280, 0xa5827077
1, 27080, 27080, 2708, 10832, 0x51f0fa8c
1, 27081, 27081, 2708, 10832, 0x51f0fa8c
0, 10, 10, 1, 161280, 0xfd0615ee
1, 29788, 29788, 2708, 10832, 0xcebae622
1, 29789, 29789, 2708, 10832, 0xcebae622
0, 11, 11, 1, 161280, 0xc6fdc861
1, 32496, 32496, 2708, 10832, 0xe9f6dc1f
1, 35204, 35204, 2708, 10832, 0xda087fee
1, 32497, 32497, 2708, 10832, 0xe9f6dc1f
1, 35205, 35205, 2708, 10832, 0xda087fee
0, 12, 12, 1, 161280, 0xaa007c7e
1, 37912, 37912, 2708, 10832, 0x67a621bb
1, 37913, 37913, 2708, 10832, 0x67a621bb
0, 13, 13, 1, 161280, 0xf15e3a96
1, 40620, 40620, 2708, 10832, 0xd7be207f
1, 40621, 40621, 2708, 10832, 0xd7be207f
0, 14, 14, 1, 161280, 0xce827ae1
1, 43328, 43328, 2708, 10832, 0x19d32507
1, 43329, 43329, 2708, 10832, 0x19d32507
0, 15, 15, 1, 161280, 0xf379fc13
1, 46036, 46036, 2708, 10832, 0xe1a3fbfa
1, 46037, 46037, 2708, 10832, 0xe1a3fbfa
0, 16, 16, 1, 161280, 0x89686a0c
1, 48744, 48744, 2708, 10832, 0xd10df779
1, 48745, 48745, 2708, 10832, 0xd10df779
0, 17, 17, 1, 161280, 0x7e8342bd
1, 51452, 51452, 2708, 10832, 0x4428e1a7
1, 51453, 51453, 2708, 10832, 0x4428e1a7
0, 18, 18, 1, 161280, 0x640dab86
1, 54160, 54160, 2708, 10832, 0x7ea9b33d
1, 54161, 54161, 2708, 10832, 0x7ea9b33d
0, 19, 19, 1, 161280, 0xc6a86456
1, 56868, 56868, 2708, 10832, 0x6852a5a5
1, 56869, 56869, 2708, 10832, 0x6852a5a5
0, 20, 20, 1, 161280, 0xe360b538
1, 59576, 59576, 2708, 10832, 0xfeb78863
1, 59578, 59578, 2708, 10832, 0xfeb78863
0, 21, 21, 1, 161280, 0xbcc21064
1, 62284, 62284, 2708, 10832, 0xf157f928
1, 62286, 62286, 2708, 10832, 0xf157f928
0, 22, 22, 1, 161280, 0x95bc4e63
1, 64992, 64992, 2708, 10832, 0x86414b3e
1, 64994, 64994, 2708, 10832, 0x86414b3e
0, 23, 23, 1, 161280, 0x390fa1bd
1, 67700, 67700, 2708, 10832, 0x2e28cdf6
1, 70408, 70408, 2708, 10832, 0x00212e44
1, 67702, 67702, 2708, 10832, 0x2e28cdf6
1, 70410, 70410, 2708, 10832, 0x00212e44
0, 24, 24, 1, 161280, 0xa35b3bb9
1, 73116, 73116, 2708, 10832, 0x2d7f9378
1, 73118, 73118, 2708, 10832, 0x2d7f9378
0, 25, 25, 1, 161280, 0x730b0779
1, 75824, 75824, 2708, 10832, 0x84cb25d7
1, 75826, 75826, 2708, 10832, 0x84cb25d7
0, 26, 26, 1, 161280, 0xf3c3a3eb
1, 78532, 78532, 2708, 10832, 0x3aca41fa
1, 78534, 78534, 2708, 10832, 0x3aca41fa
0, 27, 27, 1, 161280, 0x676ecbaa
1, 81240, 81240, 2708, 10832, 0x27ad34b9
1, 81242, 81242, 2708, 10832, 0x27ad34b9
0, 28, 28, 1, 161280, 0x06c4a4e5
1, 83948, 83948, 2708, 10832, 0xe665144a
1, 83950, 83950, 2708, 10832, 0xe665144a
0, 29, 29, 1, 161280, 0x177d26d9
1, 86656, 86656, 2708, 10832, 0xf9546626
1, 86658, 86658, 2708, 10832, 0xf9546626
0, 30, 30, 1, 161280, 0xdaf69ebe
1, 89364, 89364, 2708, 10832, 0xe71c4f22
1, 89366, 89366, 2708, 10832, 0xe71c4f22
0, 31, 31, 1, 161280, 0xabadc296
1, 92072, 92072, 2708, 10832, 0x5e61869c
1, 92074, 92074, 2708, 10832, 0x5e61869c
0, 32, 32, 1, 161280, 0xec144665
1, 94780, 94780, 2708, 10832, 0x571d2c10
1, 94782, 94782, 2708, 10832, 0x571d2c10
0, 33, 33, 1, 161280, 0x6785aa48
1, 97488, 97488, 2708, 10832, 0xf0e08cd5
1, 97490, 97490, 2708, 10832, 0xf0e08cd5
0, 34, 34, 1, 161280, 0x2a0cfcaf
1, 100196, 100196, 2708, 10832, 0x66650e49
1, 100199, 100199, 2708, 10832, 0x66650e49
0, 35, 35, 1, 161280, 0x9288d513
1, 102904, 102904, 2708, 10832, 0x4024deaf
1, 105612, 105612, 2708, 10832, 0xda7bdb14
1, 102907, 102907, 2708, 10832, 0x4024deaf
1, 105615, 105615, 2708, 10832, 0xda7bdb14
0, 36, 36, 1, 161280, 0x1d295ad0
1, 108320, 108320, 2708, 10832, 0xc27a342f
1, 108323, 108323, 2708, 10832, 0xc27a342f
0, 37, 37, 1, 161280, 0xb9fd8406
1, 111028, 111028, 2708, 10832, 0x574fe679
1, 111031, 111031, 2708, 10832, 0x574fe679
0, 38, 38, 1, 161280, 0x98bced49
1, 113736, 113736, 2708, 10832, 0x37db464e
1, 113739, 113739, 2708, 10832, 0x37db464e
0, 39, 39, 1, 161280, 0x42e6fbae
1, 116444, 116444, 2708, 10832, 0xb1fa2a83
1, 116447, 116447, 2708, 10832, 0xb1fa2a83
0, 40, 40, 1, 161280, 0xfd218209
1, 119152, 119152, 2708, 10832, 0x3d98d9b7
1, 119155, 119155, 2708, 10832, 0x3d98d9b7
0, 41, 41, 1, 161280, 0x21c2ef31
1, 121860, 121860, 2708, 10832, 0xb7c908e2
1, 121863, 121863, 2708, 10832, 0xb7c908e2
0, 42, 42, 1, 161280, 0xce4be932
1, 124568, 124568, 2708, 10832, 0x9f7e44d8
1, 124571, 124571, 2708, 10832, 0x9f7e44d8
0, 43, 43, 1, 161280, 0xd5c0d5fc
1, 127276, 127276, 2708, 10832, 0xae9b8774
1, 127279, 127279, 2708, 10832, 0xae9b8774
0, 44, 44, 1, 161280, 0xf8d13076
1, 129984, 129984, 2708, 10832, 0x36916e3f
1, 129987, 129987, 2708, 10832, 0x36916e3f
0, 45, 45, 1, 161280, 0xdbf86007
1, 132692, 132692, 2708, 10832, 0xd785f5ef
1, 132695, 132695, 2708, 10832, 0xd785f5ef
0, 46, 46, 1, 161280, 0x9475a651
1, 135400, 135400, 2708, 10832, 0x2a3a5673
1, 138108, 138108, 2708, 10832, 0x7320e379
1, 135403, 135403, 2708, 10832, 0x2a3a5673
1, 138112, 138112, 2708, 10832, 0x7320e379
0, 47, 47, 1, 161280, 0x41bf1542
1, 140816, 140816, 2708, 10832, 0xec787be5
1, 140820, 140820, 2708, 10832, 0xec787be5
0, 48, 48, 1, 161280, 0x6945297f
1, 143524, 143524, 2708, 10832, 0xd0d13aa0
1, 143528, 143528, 2708, 10832, 0xd0d13aa0
0, 49, 49, 1, 161280, 0x2282025e
1, 146232, 146232, 2708, 10832, 0x34dfcb17
1, 146236, 146236, 2708, 10832, 0x34dfcb17
0, 50, 50, 1, 161280, 0x55aace0c
1, 148940, 148940, 2708, 10832, 0x1a9c29f1
1, 148944, 148944, 2708, 10832, 0x1a9c29f1
0, 51, 51, 1, 161280, 0xc78aa51c
1, 151648, 151648, 2708, 10832, 0x3e73dcc1
1, 151652, 151652, 2708, 10832, 0x3e73dcc1
0, 52, 52, 1, 161280, 0xb4b84e6c
1, 154356, 154356, 2708, 10832, 0x7855b053
1, 154360, 154360, 2708, 10832, 0x7855b053
0, 53, 53, 1, 161280, 0x3bbb3e44
1, 157064, 157064, 2708, 10832, 0x5588df8f
1, 157068, 157068, 2708, 10832, 0x5588df8f
0, 54, 54, 1, 161280, 0x4dd89d80
1, 159772, 159772, 2708, 10832, 0x6f621299
1, 159776, 159776, 2708, 10832, 0x6f621299
0, 55, 55, 1, 161280, 0xa446a5c5
1, 162480, 162480, 2708, 10832, 0xce7f39c2
1, 162484, 162484, 2708, 10832, 0xce7f39c2
0, 56, 56, 1, 161280, 0x8f56b1d6
1, 165188, 165188, 2708, 10832, 0xd88e6552
1, 165192, 165192, 2708, 10832, 0xd88e6552
0, 57, 57, 1, 161280, 0xa170df87
1, 167896, 167896, 2708, 10832, 0xddc63597
1, 167900, 167900, 2708, 10832, 0xddc63597
0, 58, 58, 1, 161280, 0x4740a4df
1, 170604, 170604, 2708, 10832, 0xe3071865
1, 173312, 173312, 2708, 10832, 0x2a44a123
1, 170608, 170608, 2708, 10832, 0xe3071865
1, 173316, 173316, 2708, 10832, 0x2a44a123
0, 59, 59, 1, 161280, 0x86608ee7
1, 176020, 176020, 2708, 10832, 0x08d85d45
1, 176024, 176024, 2708, 10832, 0x08d85d45
0, 60, 60, 1, 161280, 0x629b4543
1, 178728, 178728, 2708, 10832, 0x4dc5f83a
1, 178733, 178733, 2708, 10832, 0x4dc5f83a
0, 61, 61, 1, 161280, 0x697fb952
1, 181436, 181436, 2708, 10832, 0x89497812
1, 181441, 181441, 2708, 10832, 0x89497812
0, 62, 62, 1, 161280, 0x98e84a51
1, 184144, 184144, 2708, 10832, 0x9ee1db54
1, 184149, 184149, 2708, 10832, 0x9ee1db54
0, 63, 63, 1, 161280, 0x97949a90
1, 186852, 186852, 2708, 10832, 0x5277d611
1, 186857, 186857, 2708, 10832, 0x5277d611
0, 64, 64, 1, 161280, 0x6a8c9b96
1, 189560, 189560, 2708, 10832, 0x570a619c
1, 189565, 189565, 2708, 10832, 0x570a619c
0, 65, 65, 1, 161280, 0xafa714ab
1, 192268, 192268, 2708, 10832, 0xa217d70f
1, 192273, 192273, 2708, 10832, 0xa217d70f
0, 66, 66, 1, 161280, 0x0cf39314
1, 194976, 194976, 2708, 10832, 0x6f0ecbf4
1, 194981, 194981, 2708, 10832, 0x6f0ecbf4
0, 67, 67, 1, 161280, 0x9ccc8171
1, 197684, 197684, 2708, 10832, 0x2704b114
1, 197689, 197689, 2708, 10832, 0x2704b114
0, 68, 68, 1, 161280, 0x8232d5a8
1, 200392, 200392, 2708, 10832, 0xf24e679f
1, 200397, 200397, 2708, 10832, 0xf24e679f
0, 69, 69, 1, 161280, 0x250dd5cb
1, 203100, 203100, 2708, 10832, 0x05572099
1, 203105, 203105, 2708, 10832, 0x05572099
0, 70, 70, 1, 161280, 0xf764e43a
1, 205808, 205808, 2708, 10832, 0x33942d0c
1, 208516, 208516, 2708, 10832, 0xa77ea674
1, 205813, 205813, 2708, 10832, 0x33942d0c
1, 208521, 208521, 2708, 10832, 0xa77ea674
0, 71, 71, 1, 161280, 0x2f4bec00
1, 211224, 211224, 2708, 10832, 0xeba663bc
1, 211229, 211229, 2708, 10832, 0xeba663bc
0, 72, 72, 1, 161280, 0x76f1598b
1, 213932, 213932, 2708, 10832, 0x1338524a
1, 213937, 213937, 2708, 10832, 0x1338524a
0, 73, 73, 1, 161280, 0xa91b84da
1, 216640, 216640, 2708, 10832, 0x6182b0b3
1, 216645, 216645, 2708, 10832, 0x6182b0b3
0, 74, 74, 1, 161280, 0x011a77fb
1, 219348, 219348, 2708, 10832, 0xa410a364
1, 219354, 219354, 2708, 10832, 0xa410a364
0, 75, 75, 1, 161280, 0xdbf5341c
1, 222056, 222056, 2708, 10832, 0x2f4374b0
1, 222062, 222062, 2708, 10832, 0x2f4374b0
0, 76, 76, 1, 161280, 0x40d5abfa
1, 224764, 224764, 2708, 10832, 0xf41f3a07
1, 224770, 224770, 2708, 10832, 0xf41f3a07
0, 77, 77, 1, 161280, 0x9fb8360c
1, 227472, 227472, 2708, 10832, 0x2b1c50c6
1, 227478, 227478, 2708, 10832, 0x2b1c50c6
0, 78, 78, 1, 161280, 0xabc5fba8
1, 230180, 230180, 2708, 10832, 0x3692ac89
1, 230186, 230186, 2708, 10832, 0x3692ac89
0, 79, 79, 1, 161280, 0x98090909
1, 232888, 232888, 2708, 10832, 0x5d6bc87e
1, 232894, 232894, 2708, 10832, 0x5d6bc87e
0, 80, 80, 1, 161280, 0x9a3613bd
1, 235596, 235596, 2708, 10832, 0x1b1cda0c
1, 235602, 235602, 2708, 10832, 0x1b1cda0c
0, 81, 81, 1, 161280, 0x9071024f
1, 238304, 238304, 2708, 10832, 0x11eaa15f
1, 241012, 241012, 2708, 10832, 0x73c7d7ef
1, 238310, 238310, 2708, 10832, 0x11eaa15f
1, 241018, 241018, 2708, 10832, 0x73c7d7ef
0, 82, 82, 1, 161280, 0x4df39487
1, 243720, 243720, 2708, 10832, 0x65d7e3be
1, 243726, 243726, 2708, 10832, 0x65d7e3be
0, 83, 83, 1, 161280, 0x17658524
1, 246428, 246428, 2708, 10832, 0xb9c00688
1, 246434, 246434, 2708, 10832, 0xb9c00688
0, 84, 84, 1, 161280, 0xbcd794df
1, 249136, 249136, 2708, 10832, 0x0b98c125
1, 249142, 249142, 2708, 10832, 0x0b98c125
0, 85, 85, 1, 161280, 0x2a14ae05
1, 251844, 251844, 2708, 10832, 0x331ed413
1, 251850, 251850, 2708, 10832, 0x331ed413
0, 86, 86, 1, 161280, 0x664feab2
1, 254552, 254552, 2708, 10832, 0x9b68f485
1, 254558, 254558, 2708, 10832, 0x9b68f485
0, 87, 87, 1, 161280, 0xf6b721f4
1, 257260, 257260, 2708, 10832, 0x1b865c55
1, 257267, 257267, 2708, 10832, 0x1b865c55
0, 88, 88, 1, 161280, 0xfec565f3
1, 259968, 259968, 2708, 10832, 0x68cef565
1, 259975, 259975, 2708, 10832, 0x68cef565
0, 89, 89, 1, 161280, 0xd39aabee
1, 262676, 262676, 2708, 10832, 0x3a605f15
1, 262683, 262683, 2708, 10832, 0x3a605f15
0, 90, 90, 1, 161280, 0x1f3d5de7
1, 265384, 265384, 2708, 10832, 0xd72ff22e
1, 265391, 265391, 2708, 10832, 0xd72ff22e
0, 91, 91, 1, 161280, 0xaf97f50c
1, 268092, 268092, 2708, 10832, 0x1c672b67
1, 268099, 268099, 2708, 10832, 0x1c672b67
0, 92, 92, 1, 161280, 0xe34b6b6a
1, 270800, 270800, 2708, 10832, 0xfd1a7e7e
1, 270807, 270807, 2708, 10832, 0xfd1a7e7e
0, 93, 93, 1, 161280, 0x4117371e
1, 273508, 273508, 2708, 10832, 0x9bf20ead
1, 276216, 276216, 2708, 10832, 0x00000000
1, 273515, 273515, 2708, 10832, 0x9bf20ead
1, 276223, 276223, 2708, 10832, 0x00000000
0, 94, 94, 1, 161280, 0x4117371e
1, 278924, 278924, 2708, 10832, 0x00000000
1, 278931, 278931, 2708, 10832, 0x00000000
0, 95, 95, 1, 161280, 0xe555b55e
1, 281632, 281632, 2708, 10832, 0x00000000
1, 281639, 281639, 2708, 10832, 0x00000000
0, 96, 96, 1, 161280, 0xe555b55e
1, 284340, 284340, 2708, 10832, 0x00000000
1, 284347, 284347, 2708, 10832, 0x00000000
0, 97, 97, 1, 161280, 0xe555b55e
1, 287048, 287048, 2708, 10832, 0x00000000
1, 287055, 287055, 2708, 10832, 0x00000000
0, 98, 98, 1, 161280, 0xe555b55e
1, 289756, 289756, 2708, 10832, 0x00000000
1, 289763, 289763, 2708, 10832, 0x00000000
0, 99, 99, 1, 161280, 0xe555b55e
1, 292464, 292464, 2708, 10832, 0x00000000
1, 292471, 292471, 2708, 10832, 0x00000000
0, 100, 100, 1, 161280, 0xe555b55e
1, 295172, 295172, 2708, 10832, 0x00000000
1, 295179, 295179, 2708, 10832, 0x00000000
0, 101, 101, 1, 161280, 0xe555b55e
1, 297880, 297880, 2708, 10832, 0x00000000
1, 297888, 297888, 2708, 10832, 0x00000000
0, 102, 102, 1, 161280, 0xe555b55e
1, 300588, 300588, 2708, 10832, 0x00000000
1, 300596, 300596, 2708, 10832, 0x00000000
0, 103, 103, 1, 161280, 0xe555b55e
1, 303296, 303296, 2708, 10832, 0x00000000
1, 303304, 303304, 2708, 10832, 0x00000000
0, 104, 104, 1, 161280, 0xe555b55e

View File

@ -16,31 +16,31 @@
0, 6, 6, 1, 69120, 0x433bb6f6
1, 18956, 18956, 2708, 10832, 0x88f5271a
0, 7, 7, 1, 69120, 0xdbac8bee
1, 21664, 21664, 2708, 10832, 0x55c6bbe5
1, 21665, 21665, 2708, 10832, 0x55c6bbe5
0, 8, 8, 1, 69120, 0x88e2a799
1, 24372, 24372, 2708, 10832, 0x9b51ae82
1, 24373, 24373, 2708, 10832, 0x9b51ae82
0, 9, 9, 1, 69120, 0x49617b26
1, 27080, 27080, 2708, 10832, 0xcdf2409b
1, 27081, 27081, 2708, 10832, 0xcdf2409b
0, 10, 10, 1, 69120, 0xeb44ca01
1, 29788, 29788, 2708, 10832, 0x0933b1a4
1, 29789, 29789, 2708, 10832, 0x0933b1a4
0, 11, 11, 1, 69120, 0x6fea37e8
1, 32496, 32496, 2708, 10832, 0x24b77006
1, 35204, 35204, 2708, 10832, 0xf612fa8a
1, 32497, 32497, 2708, 10832, 0x24b77006
1, 35205, 35205, 2708, 10832, 0xf612fa8a
0, 12, 12, 1, 69120, 0xf55d74c7
1, 37912, 37912, 2708, 10832, 0x99884b06
1, 37913, 37913, 2708, 10832, 0x99884b06
0, 13, 13, 1, 69120, 0xb5082ca7
1, 40620, 40620, 2708, 10832, 0x3c746fbe
1, 40621, 40621, 2708, 10832, 0x3c746fbe
0, 14, 14, 1, 69120, 0x5876d758
1, 43328, 43328, 2708, 10832, 0x05f3b08a
1, 43329, 43329, 2708, 10832, 0x05f3b08a
0, 15, 15, 1, 69120, 0x45e7dd5c
1, 46036, 46036, 2708, 10832, 0xa6560483
1, 48744, 48744, 2708, 10832, 0xd98a8e19
1, 51452, 51452, 2708, 10832, 0xf98a0b2e
1, 54160, 54160, 2708, 10832, 0xb1039582
1, 56868, 56868, 2708, 10832, 0x85dd5c3f
1, 59576, 59576, 2708, 10832, 0x19fc801a
1, 62284, 62284, 2708, 10832, 0x95805089
1, 64992, 64992, 2708, 10832, 0x576fdec3
1, 67700, 67700, 2708, 10832, 0x704a0905
1, 70408, 70408, 2708, 10832, 0xf87ce1fa
1, 73116, 73116, 2708, 10832, 0xfc0076b9
1, 46037, 46037, 2708, 10832, 0xa6560483
1, 48745, 48745, 2708, 10832, 0xd98a8e19
1, 51453, 51453, 2708, 10832, 0xf98a0b2e
1, 54161, 54161, 2708, 10832, 0xb1039582
1, 56869, 56869, 2708, 10832, 0x85dd5c3f
1, 59578, 59578, 2708, 10832, 0x19fc801a
1, 62286, 62286, 2708, 10832, 0x95805089
1, 64994, 64994, 2708, 10832, 0x576fdec3
1, 67702, 67702, 2708, 10832, 0x704a0905
1, 70410, 70410, 2708, 10832, 0xf87ce1fa
1, 73118, 73118, 2708, 10832, 0xfc0076b9