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]++; \
201 const unsigned a = is_signed ?
FFABS(v) : v;
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);
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);
538 s->version =
FFMAX(
s->version, 2);
540 if (avctx->
level <= 0 &&
s->version == 2) {
544 if (avctx->
level <
s->version) {
545 av_log(avctx,
AV_LOG_ERROR,
"Version %d needed for requested features but %d requested\n",
s->version, avctx->
level);
548 s->version = avctx->
level;
552 s->ec = (
s->version >= 3);
557 s->version =
FFMAX(
s->version, 3);
560 av_log(avctx,
AV_LOG_ERROR,
"Version 2 or 4 needed for requested features but version 2 or 4 is experimental and not enabled\n");
579 s->bits_per_raw_sample = 9;
589 s->bits_per_raw_sample = 10;
598 s->bits_per_raw_sample = 12;
604 s->bits_per_raw_sample = 14;
605 s->packed_at_lsb = 1;
614 s->bits_per_raw_sample = 16;
615 }
else if (!
s->bits_per_raw_sample) {
618 if (
s->bits_per_raw_sample <= 8) {
622 s->version =
FFMAX(
s->version, 1);
634 s->chroma_planes =
desc->nb_components < 3 ? 0 : 1;
638 s->bits_per_raw_sample = 8;
639 else if (!
s->bits_per_raw_sample)
640 s->bits_per_raw_sample = 8;
645 s->chroma_planes = 1;
646 s->bits_per_raw_sample = 8;
651 s->chroma_planes = 1;
652 s->bits_per_raw_sample = 16;
654 s->version =
FFMAX(
s->version, 1);
658 s->chroma_planes = 1;
659 s->bits_per_raw_sample = 16;
661 s->version =
FFMAX(
s->version, 1);
665 s->chroma_planes = 1;
666 s->bits_per_raw_sample = 8;
670 s->bits_per_raw_sample = 9;
674 s->bits_per_raw_sample = 10;
678 s->bits_per_raw_sample = 12;
682 s->bits_per_raw_sample = 14;
686 s->bits_per_raw_sample = 16;
687 else if (!
s->bits_per_raw_sample)
691 s->chroma_planes = 1;
692 if (
s->bits_per_raw_sample >= 16) {
695 s->version =
FFMAX(
s->version, 1);
703 if (
s->bits_per_raw_sample > 8) {
706 "bits_per_raw_sample > 8, forcing range coder\n");
712 for (
i = 1;
i < 256;
i++)
717 for (
i = 1;
i < 256;
i++)
718 s->state_transition[
i] =
c.one_state[
i];
722 s->quant_table_count = 2;
723 if (
s->bits_per_raw_sample <= 8) {
729 s->quant_tables[1][2][
i]= 11*11*
quant5 [
i];
730 s->quant_tables[1][3][
i]= 5*11*11*
quant5 [
i];
731 s->quant_tables[1][4][
i]= 5*5*11*11*
quant5 [
i];
732 s->context_count[0] = (11 * 11 * 11 + 1) / 2;
733 s->context_count[1] = (11 * 11 * 5 * 5 * 5 + 1) / 2;
743 s->context_count[0] = (9 * 9 * 9 + 1) / 2;
744 s->context_count[1] = (9 * 9 * 5 * 5 * 5 + 1) / 2;
751 if (!
s->transparency)
753 if (!
s->chroma_planes &&
s->version > 3)
760 s->picture_number = 0;
763 for (
i = 0;
i <
s->quant_table_count;
i++) {
765 sizeof(*
s->rc_stat2[
i]));
781 for (j = 0; j < 256; j++)
782 for (
i = 0;
i < 2;
i++) {
783 s->rc_stat[j][
i] = strtol(p, &next, 0);
786 "2Pass file invalid at %d %d [%s]\n", j,
i, p);
792 for (
i = 0;
i <
s->quant_table_count;
i++)
793 for (j = 0; j <
s->context_count[
i]; j++) {
794 for (k = 0; k < 32; k++)
795 for (m = 0; m < 2; m++) {
796 s->rc_stat2[
i][j][k][m] = strtol(p, &next, 0);
799 "2Pass file invalid at %d %d %d %d [%s]\n",
807 gob_count = strtol(p, &next, 0);
808 if (next == p || gob_count <= 0) {
814 while (*p ==
'\n' || *p ==
' ')
824 for (
i = 0;
i <
s->quant_table_count;
i++) {
825 for (k = 0; k < 32; k++) {
828 for (j = 0; j <
s->context_count[
i]; j++) {
830 if (
s->rc_stat2[
i][j][k][0] +
s->rc_stat2[
i][j][k][1] > 200 && j ||
a+
b > 200) {
832 p = 256.0 *
b / (
a +
b);
833 s->initial_states[
i][jp][k] =
835 for(jp++; jp<j; jp++)
836 s->initial_states[
i][jp][k] =
s->initial_states[
i][jp-1][k];
839 a +=
s->rc_stat2[
i][j][k][0];
840 b +=
s->rc_stat2[
i][j][k][1];
842 p = 256.0 *
b / (
a +
b);
844 s->initial_states[
i][j][k] =
852 if (
s->version > 1) {
853 int plane_count = 1 + 2*
s->chroma_planes +
s->transparency;
856 s->num_v_slices = (avctx->
width > 352 || avctx->
height > 288 || !avctx->
slices) ? 2 : 1;
858 s->num_v_slices =
FFMIN(
s->num_v_slices, max_v_slices);
860 for (;
s->num_v_slices < 32;
s->num_v_slices++) {
861 for (
s->num_h_slices =
s->num_v_slices;
s->num_h_slices < 2*
s->num_v_slices;
s->num_h_slices++) {
862 int maxw = (avctx->
width +
s->num_h_slices - 1) /
s->num_h_slices;
863 int maxh = (avctx->
height +
s->num_v_slices - 1) /
s->num_v_slices;
864 if (
s->num_h_slices > max_h_slices ||
s->num_v_slices > max_v_slices)
866 if (maxw * maxh * (
int64_t)(
s->bits_per_raw_sample+1) * plane_count > 8<<24)
877 "Unsupported number %d of slices requested, please specify a "
878 "supported number with -slices (ex:4,6,9,12,16, ...)\n",
888 s->slice_count =
s->max_slice_count;
890 for (
int j = 0; j <
s->slice_count; j++) {
891 for (
int i = 0;
i <
s->plane_count;
i++) {
904 #define STATS_OUT_SIZE 1024 * 1024 * 6
909 for (
i = 0;
i <
s->quant_table_count;
i++)
910 for (j = 0; j <
s->max_slice_count; j++) {
934 for (j=0; j<
f->plane_count; j++) {
944 if (
f->version > 3) {
957 const uint8_t *
src[3],
const int stride[3],
int w,
int h)
959 #define NB_Y_COEFF 15
960 static const int rct_y_coeff[15][2] = {
980 int x, y,
i, p, best;
982 int lbd =
f->bits_per_raw_sample <= 8;
983 int packed = !
src[1];
984 int transparency =
f->transparency;
985 int packed_size = (3 + transparency)*2;
987 for (y = 0; y <
h; y++) {
988 int lastr=0, lastg=0, lastb=0;
989 for (p = 0; p < 3; p++)
992 for (x = 0; x <
w; x++) {
996 unsigned v = *((
const uint32_t*)(
src[0] + x*4 +
stride[0]*y));
999 r = (v >> 16) & 0xFF;
1000 }
else if (packed) {
1001 const uint16_t *p = ((
const uint16_t*)(
src[0] + x*packed_size +
stride[0]*y));
1005 }
else if (
f->use32bit || transparency) {
1006 g = *((
const uint16_t *)(
src[0] + x*2 +
stride[0]*y));
1007 b = *((
const uint16_t *)(
src[1] + x*2 +
stride[1]*y));
1008 r = *((
const uint16_t *)(
src[2] + x*2 +
stride[2]*y));
1010 b = *((
const uint16_t*)(
src[0] + x*2 +
stride[0]*y));
1011 g = *((
const uint16_t*)(
src[1] + x*2 +
stride[1]*y));
1012 r = *((
const uint16_t*)(
src[2] + x*2 +
stride[2]*y));
1019 int bg = ag -
sample[0][x];
1020 int bb = ab -
sample[1][x];
1021 int br = ar -
sample[2][x];
1027 stat[
i] +=
FFABS(bg + ((br*rct_y_coeff[
i][0] + bb*rct_y_coeff[
i][1])>>2));
1043 if (stat[
i] < stat[best])
1059 const AVFrame *
const p =
f->cur_enc_frame;
1069 if (
f->version > 3 &&
f->colorspace == 1) {
1079 if (
f->version > 2) {
1092 const int cx = x >>
f->chroma_h_shift;
1093 const int cy = y >>
f->chroma_v_shift;
1097 if (
f->chroma_planes) {
1101 if (
f->transparency)
1106 }
else if (
f->use32bit) {
1121 if (
f->version < 4 || !
f->ac) {
1135 const AVFrame *pict,
int *got_packet)
1139 uint8_t keystate = 128;
1151 memset(
f->rc_stat, 0,
sizeof(
f->rc_stat));
1152 for (
i = 0;
i <
f->quant_table_count;
i++)
1153 memset(
f->rc_stat2[
i], 0,
f->context_count[
i] *
sizeof(*
f->rc_stat2[
i]));
1156 for (j = 0; j <
f->slice_count; j++) {
1158 for (
i = 0;
i < 256;
i++) {
1162 for (
i = 0;
i <
f->quant_table_count;
i++) {
1163 for (k = 0; k <
f->context_count[
i]; k++)
1164 for (m = 0; m < 32; m++) {
1165 f->rc_stat2[
i][k][m][0] += sc->
rc_stat2[
i][k][m][0];
1166 f->rc_stat2[
i][k][m][1] += sc->
rc_stat2[
i][k][m][1];
1171 for (j = 0; j < 256; j++) {
1172 snprintf(p, end - p,
"%" PRIu64
" %" PRIu64
" ",
1173 f->rc_stat[j][0],
f->rc_stat[j][1]);
1178 for (
i = 0;
i <
f->quant_table_count;
i++) {
1179 for (j = 0; j <
f->context_count[
i]; j++)
1180 for (m = 0; m < 32; m++) {
1181 snprintf(p, end - p,
"%" PRIu64
" %" PRIu64
" ",
1182 f->rc_stat2[
i][j][m][0],
f->rc_stat2[
i][j][m][1]);
1186 snprintf(p, end - p,
"%d\n",
f->gob_count);
1195 av_log(avctx,
AV_LOG_WARNING,
"Cannot allocate worst case packet size, the encoding could fail\n");
1205 f->cur_enc_frame = pict;
1219 for (
i = 1;
i < 256;
i++) {
1220 c->one_state[
i] =
f->state_transition[
i];
1221 c->zero_state[256 -
i] = 256 -
c->one_state[
i];
1225 for (
i = 0;
i <
f->slice_count;
i++) {
1238 f->slice_count,
sizeof(*
f->slices));
1241 for (
i = 0;
i <
f->slice_count;
i++) {
1244 if (
i > 0 ||
f->version > 2) {
1248 AV_WB24(buf_p + bytes, bytes);
1264 f->picture_number++;
1272 #define OFFSET(x) offsetof(FFV1Context, x)
1273 #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
1277 { .i64 = 0 }, -2, 2,
VE, .unit =
"coder" },
1284 {
"ac",
"Range with custom table (the ac option exists for compatibility and is deprecated)", 0,
AV_OPT_TYPE_CONST,
1285 { .i64 = 1 }, INT_MIN, INT_MAX,
VE, .unit =
"coder" },
1287 { .i64 = 0 }, 0, 1,
VE },