44 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
45 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
46 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
47 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
48 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
49 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
50 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
51 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
52 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
53 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
54 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
55 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
56 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1,
57 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
58 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
59 -1, -1, -1, -1, -1, -1, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0,
63 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
64 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
65 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
68 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
69 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
70 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
71 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
72 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
73 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
74 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
75 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
76 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
77 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
78 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1,
82 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
83 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
84 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
85 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,
86 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
87 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
88 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
89 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
90 -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
91 -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
92 -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
93 -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
94 -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -3,
95 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
96 -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
97 -2, -2, -2, -2, -1, -1, -1, -1, -1, -1, -1, -1, -0, -0, -0, -0,
101 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
102 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
103 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
104 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
105 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
106 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
107 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
108 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
109 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
110 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
111 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
112 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
113 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
114 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -4, -4,
115 -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
116 -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -3, -2, -2, -2, -1,
120 0, 10, 10, 10, 10, 16, 16, 16, 28, 16, 16, 29, 42, 49, 20, 49,
121 59, 25, 26, 26, 27, 31, 33, 33, 33, 34, 34, 37, 67, 38, 39, 39,
122 40, 40, 41, 79, 43, 44, 45, 45, 48, 48, 64, 50, 51, 52, 88, 52,
123 53, 74, 55, 57, 58, 58, 74, 60, 101, 61, 62, 84, 66, 66, 68, 69,
124 87, 82, 71, 97, 73, 73, 82, 75, 111, 77, 94, 78, 87, 81, 83, 97,
125 85, 83, 94, 86, 99, 89, 90, 99, 111, 92, 93, 134, 95, 98, 105, 98,
126 105, 110, 102, 108, 102, 118, 103, 106, 106, 113, 109, 112, 114, 112, 116, 125,
127 115, 116, 117, 117, 126, 119, 125, 121, 121, 123, 145, 124, 126, 131, 127, 129,
128 165, 130, 132, 138, 133, 135, 145, 136, 137, 139, 146, 141, 143, 142, 144, 148,
129 147, 155, 151, 149, 151, 150, 152, 157, 153, 154, 156, 168, 158, 162, 161, 160,
130 172, 163, 169, 164, 166, 184, 167, 170, 177, 174, 171, 173, 182, 176, 180, 178,
131 175, 189, 179, 181, 186, 183, 192, 185, 200, 187, 191, 188, 190, 197, 193, 196,
132 197, 194, 195, 196, 198, 202, 199, 201, 210, 203, 207, 204, 205, 206, 208, 214,
133 209, 211, 221, 212, 213, 215, 224, 216, 217, 218, 219, 220, 222, 228, 223, 225,
134 226, 224, 227, 229, 240, 230, 231, 232, 233, 234, 235, 236, 238, 239, 237, 242,
135 241, 243, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 252, 253, 254, 255,
139 const uint8_t one_state[256])
144 for (
i = 1;
i < 256;
i++)
145 l2tab[
i] = -
log2(
i / 256.0) * ((1
U << 31) / 8);
147 for (
i = 0;
i < 256;
i++) {
148 uint64_t best_len[256];
150 for (j = 0; j < 256; j++)
151 best_len[j] = UINT64_MAX;
153 for (j =
FFMAX(
i - 10, 1); j <
FFMIN(
i + 11, 256); j++) {
154 uint32_t occ[256] = { 0 };
161 for (k = 0; k < 256; k++) {
162 uint32_t newocc[256] = { 0 };
163 for (m = 1; m < 256; m++)
165 len += (occ[m]*((
i *(uint64_t)l2tab[ m]
166 + (256-
i)*(uint64_t)l2tab[256-m])>>8)) >> 8;
168 if (
len < best_len[k]) {
170 best_state[
i][k] = j;
172 for (m = 1; m < 256; m++)
174 newocc[ one_state[ m]] += occ[m] * (uint64_t)
i >> 8;
175 newocc[256 - one_state[256 - m]] += occ[m] * (uint64_t)(256 -
i) >> 8;
177 memcpy(occ, newocc,
sizeof(occ));
184 uint8_t *
state,
int v,
186 uint64_t rc_stat[256][2],
187 uint64_t rc_stat2[32][2])
191 #define put_rac(C, S, B) \
194 rc_stat[*(S)][B]++; \
195 rc_stat2[(S) - state][B]++; \
205 for (
i = 0;
i < e;
i++)
209 for (
i = e - 1;
i >= 0;
i--)
215 for (
i = 0;
i < e;
i++)
219 for (
i = e - 1;
i >= 0;
i--)
232 int v,
int is_signed)
246 while (i < state->error_sum) {
255 ff_dlog(
NULL,
"v:%d/%d bias:%d error:%d drift:%d count:%d k:%d\n", v,
code,
263 #define RENAME(name) name
269 #define RENAME(name) name ## 32
273 const uint8_t *
src,
int w,
int h,
274 int stride,
int plane_index,
int pixel_stride)
277 const int ac =
f->ac;
279 const int ring_size =
f->context_model ? 3 : 2;
285 for (y = 0; y <
h; y++) {
291 if (
f->bits_per_raw_sample <= 8) {
292 for (x = 0; x <
w; x++)
297 if (
f->packed_at_lsb) {
298 for (x = 0; x <
w; x++) {
302 for (x = 0; x <
w; x++) {
303 sample[0][x] = ((uint16_t*)(
src +
stride*y))[x] >> (16 -
f->bits_per_raw_sample);
320 for (
i = 1;
i < 128;
i++)
332 for (
i = 0;
i < 5;
i++)
341 for (
int i = 0;
i < nb_contexts;
i++)
343 if (initial_state[
i][j] != 128)
356 if (
f->version < 2) {
360 for (
i = 1;
i < 256;
i++)
362 f->state_transition[
i] -
c->one_state[
i], 1);
373 }
else if (
f->version < 3) {
375 for (
i = 0;
i <
f->slice_count;
i++) {
378 (
fs->slice_x + 1) *
f->num_h_slices /
f->width, 0);
380 (
fs->slice_y + 1) *
f->num_v_slices /
f->height, 0);
382 (
fs->slice_width + 1) *
f->num_h_slices /
f->width - 1,
385 (
fs->slice_height + 1) *
f->num_v_slices /
f->height - 1,
387 for (j = 0; j <
f->plane_count; j++) {
389 av_assert0(
fs->plane[j].quant_table_index ==
f->context_model);
403 memset(state2, 128,
sizeof(state2));
406 f->avctx->extradata_size = 10000 + 4 +
407 (11 * 11 * 5 * 5 * 5 + 11 * 11 * 11) * 32;
409 if (!
f->avctx->extradata)
415 if (
f->version > 2) {
416 if (
f->version == 3) {
417 f->micro_version = 4;
418 }
else if (
f->version == 4)
419 f->micro_version = 2;
425 for (
i = 1;
i < 256;
i++)
438 for (
i = 0;
i <
f->quant_table_count;
i++)
441 for (
i = 0;
i <
f->quant_table_count;
i++) {
444 for (j = 0; j <
f->context_count[
i]; j++)
446 int pred = j ?
f->initial_states[
i][j - 1][k] : 128;
448 (int8_t)(
f->initial_states[
i][j][k] -
pred), 1);
455 if (
f->version > 2) {
462 AV_WL32(
f->avctx->extradata +
f->avctx->extradata_size, v);
463 f->avctx->extradata_size += 4;
470 int i, i2, changed,
print = 0;
474 for (
i = 12;
i < 244;
i++) {
475 for (i2 =
i + 1; i2 < 245 && i2 <
i + 4; i2++) {
477 #define COST(old, new) \
478 s->rc_stat[old][0] * -log2((256 - (new)) / 256.0) + \
479 s->rc_stat[old][1] * -log2((new) / 256.0)
481 #define COST2(old, new) \
482 COST(old, new) + COST(256 - (old), 256 - (new))
486 if (size0 - sizeX > size0*(1e-14) &&
i != 128 && i2 != 128) {
489 FFSWAP(
int,
s->rc_stat[
i][0],
s->rc_stat[i2][0]);
490 FFSWAP(
int,
s->rc_stat[
i][1],
s->rc_stat[i2][1]);
492 FFSWAP(
int, stt[256 -
i], stt[256 - i2]);
493 FFSWAP(
int,
s->rc_stat[256 -
i][0],
s->rc_stat[256 - i2][0]);
494 FFSWAP(
int,
s->rc_stat[256 -
i][1],
s->rc_stat[256 - i2][1]);
496 for (j = 1; j < 256; j++) {
499 else if (stt[j] == i2)
502 if (stt[256 - j] == 256 -
i)
503 stt[256 - j] = 256 - i2;
504 else if (stt[256 - j] == 256 - i2)
505 stt[256 - j] = 256 -
i;
529 s->version =
FFMAX(
s->version, 2);
533 s->version =
FFMAX(
s->version, 2);
535 if (avctx->
level <= 0 &&
s->version == 2) {
539 if (avctx->
level <
s->version) {
540 av_log(avctx,
AV_LOG_ERROR,
"Version %d needed for requested features but %d requested\n",
s->version, avctx->
level);
543 s->version = avctx->
level;
547 s->ec = (
s->version >= 3);
552 s->version =
FFMAX(
s->version, 3);
555 av_log(avctx,
AV_LOG_ERROR,
"Version 2 needed for requested features but version 2 is experimental and not enabled\n");
574 s->bits_per_raw_sample = 9;
584 s->bits_per_raw_sample = 10;
593 s->bits_per_raw_sample = 12;
599 s->bits_per_raw_sample = 14;
600 s->packed_at_lsb = 1;
609 s->bits_per_raw_sample = 16;
610 }
else if (!
s->bits_per_raw_sample) {
613 if (
s->bits_per_raw_sample <= 8) {
617 s->version =
FFMAX(
s->version, 1);
629 s->chroma_planes =
desc->nb_components < 3 ? 0 : 1;
633 s->bits_per_raw_sample = 8;
634 else if (!
s->bits_per_raw_sample)
635 s->bits_per_raw_sample = 8;
640 s->chroma_planes = 1;
641 s->bits_per_raw_sample = 8;
646 s->chroma_planes = 1;
647 s->bits_per_raw_sample = 16;
649 s->version =
FFMAX(
s->version, 1);
653 s->chroma_planes = 1;
654 s->bits_per_raw_sample = 16;
656 s->version =
FFMAX(
s->version, 1);
660 s->chroma_planes = 1;
661 s->bits_per_raw_sample = 8;
665 s->bits_per_raw_sample = 9;
669 s->bits_per_raw_sample = 10;
673 s->bits_per_raw_sample = 12;
677 s->bits_per_raw_sample = 14;
681 s->bits_per_raw_sample = 16;
682 else if (!
s->bits_per_raw_sample)
686 s->chroma_planes = 1;
687 if (
s->bits_per_raw_sample >= 16) {
690 s->version =
FFMAX(
s->version, 1);
698 if (
s->bits_per_raw_sample > 8) {
701 "bits_per_raw_sample > 8, forcing range coder\n");
707 for (
i = 1;
i < 256;
i++)
712 for (
i = 1;
i < 256;
i++)
713 s->state_transition[
i] =
c.one_state[
i];
716 for (
i = 0;
i < 256;
i++) {
717 s->quant_table_count = 2;
718 if (
s->bits_per_raw_sample <= 8) {
724 s->quant_tables[1][2][
i]= 11*11*
quant5 [
i];
725 s->quant_tables[1][3][
i]= 5*11*11*
quant5 [
i];
726 s->quant_tables[1][4][
i]= 5*5*11*11*
quant5 [
i];
738 s->context_count[0] = (11 * 11 * 11 + 1) / 2;
739 s->context_count[1] = (11 * 11 * 5 * 5 * 5 + 1) / 2;
744 if (!
s->transparency)
746 if (!
s->chroma_planes &&
s->version > 3)
753 s->picture_number = 0;
756 for (
i = 0;
i <
s->quant_table_count;
i++) {
758 sizeof(*
s->rc_stat2[
i]));
774 for (j = 0; j < 256; j++)
775 for (
i = 0;
i < 2;
i++) {
776 s->rc_stat[j][
i] = strtol(p, &next, 0);
779 "2Pass file invalid at %d %d [%s]\n", j,
i, p);
785 for (
i = 0;
i <
s->quant_table_count;
i++)
786 for (j = 0; j <
s->context_count[
i]; j++) {
787 for (k = 0; k < 32; k++)
788 for (m = 0; m < 2; m++) {
789 s->rc_stat2[
i][j][k][m] = strtol(p, &next, 0);
792 "2Pass file invalid at %d %d %d %d [%s]\n",
800 gob_count = strtol(p, &next, 0);
801 if (next == p || gob_count <= 0) {
807 while (*p ==
'\n' || *p ==
' ')
817 for (
i = 0;
i <
s->quant_table_count;
i++) {
818 for (k = 0; k < 32; k++) {
821 for (j = 0; j <
s->context_count[
i]; j++) {
823 if (
s->rc_stat2[
i][j][k][0] +
s->rc_stat2[
i][j][k][1] > 200 && j ||
a+
b > 200) {
825 p = 256.0 *
b / (
a +
b);
826 s->initial_states[
i][jp][k] =
828 for(jp++; jp<j; jp++)
829 s->initial_states[
i][jp][k] =
s->initial_states[
i][jp-1][k];
832 a +=
s->rc_stat2[
i][j][k][0];
833 b +=
s->rc_stat2[
i][j][k][1];
835 p = 256.0 *
b / (
a +
b);
837 s->initial_states[
i][j][k] =
845 if (
s->version > 1) {
846 int plane_count = 1 + 2*
s->chroma_planes +
s->transparency;
849 s->num_v_slices = (avctx->
width > 352 || avctx->
height > 288 || !avctx->
slices) ? 2 : 1;
851 s->num_v_slices =
FFMIN(
s->num_v_slices, max_v_slices);
853 for (;
s->num_v_slices < 32;
s->num_v_slices++) {
854 for (
s->num_h_slices =
s->num_v_slices;
s->num_h_slices < 2*
s->num_v_slices;
s->num_h_slices++) {
855 int maxw = (avctx->
width +
s->num_h_slices - 1) /
s->num_h_slices;
856 int maxh = (avctx->
height +
s->num_v_slices - 1) /
s->num_v_slices;
857 if (
s->num_h_slices > max_h_slices ||
s->num_v_slices > max_v_slices)
859 if (maxw * maxh * (
int64_t)(
s->bits_per_raw_sample+1) * plane_count > 8<<24)
866 "Unsupported number %d of slices requested, please specify a "
867 "supported number with -slices (ex:4,6,9,12,16, ...)\n",
877 s->slice_count =
s->max_slice_count;
879 for (
int j = 0; j <
s->slice_count; j++) {
880 for (
int i = 0;
i <
s->plane_count;
i++) {
893 #define STATS_OUT_SIZE 1024 * 1024 * 6
898 for (
i = 0;
i <
s->quant_table_count;
i++)
899 for (j = 0; j <
s->max_slice_count; j++) {
923 for (j=0; j<
f->plane_count; j++) {
933 if (
f->version > 3) {
946 const uint8_t *
src[3],
const int stride[3],
int w,
int h)
948 #define NB_Y_COEFF 15
949 static const int rct_y_coeff[15][2] = {
969 int x, y,
i, p, best;
971 int lbd =
f->bits_per_raw_sample <= 8;
973 for (y = 0; y <
h; y++) {
974 int lastr=0, lastg=0, lastb=0;
975 for (p = 0; p < 3; p++)
978 for (x = 0; x <
w; x++) {
982 unsigned v = *((
const uint32_t*)(
src[0] + x*4 +
stride[0]*y));
985 r = (v >> 16) & 0xFF;
987 b = *((
const uint16_t*)(
src[0] + x*2 +
stride[0]*y));
988 g = *((
const uint16_t*)(
src[1] + x*2 +
stride[1]*y));
989 r = *((
const uint16_t*)(
src[2] + x*2 +
stride[2]*y));
996 int bg = ag -
sample[0][x];
997 int bb = ab -
sample[1][x];
998 int br = ar -
sample[2][x];
1004 stat[
i] +=
FFABS(bg + ((br*rct_y_coeff[
i][0] + bb*rct_y_coeff[
i][1])>>2));
1020 if (stat[
i] < stat[best])
1036 const AVFrame *
const p =
f->cur_enc_frame;
1046 if (
f->version > 3) {
1056 if (
f->version > 2) {
1069 const int cx = x >>
f->chroma_h_shift;
1070 const int cy = y >>
f->chroma_v_shift;
1074 if (
f->chroma_planes) {
1078 if (
f->transparency)
1083 }
else if (
f->use32bit) {
1091 if (
f->version < 4 || !
f->ac) {
1105 const AVFrame *pict,
int *got_packet)
1109 uint8_t keystate = 128;
1121 memset(
f->rc_stat, 0,
sizeof(
f->rc_stat));
1122 for (
i = 0;
i <
f->quant_table_count;
i++)
1123 memset(
f->rc_stat2[
i], 0,
f->context_count[
i] *
sizeof(*
f->rc_stat2[
i]));
1126 for (j = 0; j <
f->slice_count; j++) {
1128 for (
i = 0;
i < 256;
i++) {
1132 for (
i = 0;
i <
f->quant_table_count;
i++) {
1133 for (k = 0; k <
f->context_count[
i]; k++)
1134 for (m = 0; m < 32; m++) {
1135 f->rc_stat2[
i][k][m][0] += sc->
rc_stat2[
i][k][m][0];
1136 f->rc_stat2[
i][k][m][1] += sc->
rc_stat2[
i][k][m][1];
1141 for (j = 0; j < 256; j++) {
1142 snprintf(p, end - p,
"%" PRIu64
" %" PRIu64
" ",
1143 f->rc_stat[j][0],
f->rc_stat[j][1]);
1148 for (
i = 0;
i <
f->quant_table_count;
i++) {
1149 for (j = 0; j <
f->context_count[
i]; j++)
1150 for (m = 0; m < 32; m++) {
1151 snprintf(p, end - p,
"%" PRIu64
" %" PRIu64
" ",
1152 f->rc_stat2[
i][j][m][0],
f->rc_stat2[
i][j][m][1]);
1156 snprintf(p, end - p,
"%d\n",
f->gob_count);
1165 av_log(avctx,
AV_LOG_WARNING,
"Cannot allocate worst case packet size, the encoding could fail\n");
1175 f->cur_enc_frame = pict;
1189 for (
i = 1;
i < 256;
i++) {
1190 c->one_state[
i] =
f->state_transition[
i];
1191 c->zero_state[256 -
i] = 256 -
c->one_state[
i];
1195 for (
i = 0;
i <
f->slice_count;
i++) {
1208 f->slice_count,
sizeof(*
f->slices));
1211 for (
i = 0;
i <
f->slice_count;
i++) {
1221 if (
i > 0 ||
f->version > 2) {
1225 AV_WB24(buf_p + bytes, bytes);
1241 f->picture_number++;
1249 #define OFFSET(x) offsetof(FFV1Context, x)
1250 #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
1254 { .i64 = 0 }, -2, 2,
VE, .unit =
"coder" },
1261 {
"ac",
"Range with custom table (the ac option exists for compatibility and is deprecated)", 0,
AV_OPT_TYPE_CONST,
1262 { .i64 = 1 }, INT_MIN, INT_MAX,
VE, .unit =
"coder" },
1264 { .i64 = 0 }, 0, 1,
VE },