45 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
48 1, 1, 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, -2,
57 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
60 -1, -1, -1, -1, -1, -1, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0,
64 0, 1, 1, 1, 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, -2, -2, -2,
79 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1,
83 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
84 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
85 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
86 3, 3, 3, 3, 3, 3, 3, 3, 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, -4, -4, -4, -4, -4, -4, -4,
95 -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -3,
96 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
97 -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
98 -2, -2, -2, -2, -1, -1, -1, -1, -1, -1, -1, -1, -0, -0, -0, -0,
102 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
103 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
104 4, 4, 4, 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, -5, -5,
115 -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -4, -4,
116 -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
117 -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -3, -2, -2, -2, -1,
121 0, 10, 10, 10, 10, 16, 16, 16, 28, 16, 16, 29, 42, 49, 20, 49,
122 59, 25, 26, 26, 27, 31, 33, 33, 33, 34, 34, 37, 67, 38, 39, 39,
123 40, 40, 41, 79, 43, 44, 45, 45, 48, 48, 64, 50, 51, 52, 88, 52,
124 53, 74, 55, 57, 58, 58, 74, 60, 101, 61, 62, 84, 66, 66, 68, 69,
125 87, 82, 71, 97, 73, 73, 82, 75, 111, 77, 94, 78, 87, 81, 83, 97,
126 85, 83, 94, 86, 99, 89, 90, 99, 111, 92, 93, 134, 95, 98, 105, 98,
127 105, 110, 102, 108, 102, 118, 103, 106, 106, 113, 109, 112, 114, 112, 116, 125,
128 115, 116, 117, 117, 126, 119, 125, 121, 121, 123, 145, 124, 126, 131, 127, 129,
129 165, 130, 132, 138, 133, 135, 145, 136, 137, 139, 146, 141, 143, 142, 144, 148,
130 147, 155, 151, 149, 151, 150, 152, 157, 153, 154, 156, 168, 158, 162, 161, 160,
131 172, 163, 169, 164, 166, 184, 167, 170, 177, 174, 171, 173, 182, 176, 180, 178,
132 175, 189, 179, 181, 186, 183, 192, 185, 200, 187, 191, 188, 190, 197, 193, 196,
133 197, 194, 195, 196, 198, 202, 199, 201, 210, 203, 207, 204, 205, 206, 208, 214,
134 209, 211, 221, 212, 213, 215, 224, 216, 217, 218, 219, 220, 222, 228, 223, 225,
135 226, 224, 227, 229, 240, 230, 231, 232, 233, 234, 235, 236, 238, 239, 237, 242,
136 241, 243, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 252, 253, 254, 255,
140 const uint8_t one_state[256])
145 for (
i = 1;
i < 256;
i++)
146 l2tab[
i] =
log2(
i / 256.0);
148 for (
i = 0;
i < 256;
i++) {
149 double best_len[256];
150 double p =
i / 256.0;
152 for (j = 0; j < 256; j++)
153 best_len[j] = 1 << 30;
155 for (j =
FFMAX(
i - 10, 1); j <
FFMIN(
i + 11, 256); j++) {
156 double occ[256] = { 0 };
163 for (k = 0; k < 256; k++) {
164 double newocc[256] = { 0 };
165 for (m = 1; m < 256; m++)
167 len -=occ[m]*( p *l2tab[ m]
168 + (1-p)*l2tab[256-m]);
170 if (
len < best_len[k]) {
172 best_state[
i][k] = j;
174 for (m = 1; m < 256; m++)
176 newocc[ one_state[ m]] += occ[m] * p;
177 newocc[256 - one_state[256 - m]] += occ[m] * (1 - p);
179 memcpy(occ, newocc,
sizeof(occ));
186 uint8_t *
state,
int v,
193 #define put_rac(C, S, B) \
196 rc_stat[*(S)][B]++; \
197 rc_stat2[(S) - state][B]++; \
207 for (
i = 0;
i < e;
i++)
211 for (
i = e - 1;
i >= 0;
i--)
217 for (
i = 0;
i < e;
i++)
221 for (
i = e - 1;
i >= 0;
i--)
234 int v,
int is_signed)
248 while (i < state->error_sum) {
257 ff_dlog(
NULL,
"v:%d/%d bias:%d error:%d drift:%d count:%d k:%d\n", v,
code,
265 #define RENAME(name) name
271 #define RENAME(name) name ## 32
275 int stride,
int plane_index,
int pixel_stride)
278 const int ring_size =
s->context_model ? 3 : 2;
282 memset(
s->sample_buffer, 0,
ring_size * (
w + 6) *
sizeof(*
s->sample_buffer));
284 for (y = 0; y <
h; y++) {
290 if (
s->bits_per_raw_sample <= 8) {
291 for (x = 0; x <
w; x++)
293 if((
ret = encode_line(
s,
w,
sample, plane_index, 8)) < 0)
296 if (
s->packed_at_lsb) {
297 for (x = 0; x <
w; x++) {
301 for (x = 0; x <
w; x++) {
302 sample[0][x] = ((uint16_t*)(
src +
stride*y))[x] >> (16 -
s->bits_per_raw_sample);
305 if((
ret = encode_line(
s,
w,
sample, plane_index,
s->bits_per_raw_sample)) < 0)
319 for (
i = 1;
i < 128;
i++)
331 for (
i = 0;
i < 5;
i++)
340 for (
int i = 0;
i < nb_contexts;
i++)
342 if (initial_state[
i][j] != 128)
355 if (
f->version < 2) {
359 for (
i = 1;
i < 256;
i++)
361 f->state_transition[
i] -
c->one_state[
i], 1);
372 }
else if (
f->version < 3) {
374 for (
i = 0;
i <
f->slice_count;
i++) {
377 (
fs->slice_x + 1) *
f->num_h_slices /
f->width, 0);
379 (
fs->slice_y + 1) *
f->num_v_slices /
f->height, 0);
381 (
fs->slice_width + 1) *
f->num_h_slices /
f->width - 1,
384 (
fs->slice_height + 1) *
f->num_v_slices /
f->height - 1,
386 for (j = 0; j <
f->plane_count; j++) {
388 av_assert0(
f->plane[j].quant_table_index ==
f->context_model);
402 memset(state2, 128,
sizeof(state2));
405 f->avctx->extradata_size = 10000 + 4 +
406 (11 * 11 * 5 * 5 * 5 + 11 * 11 * 11) * 32;
408 if (!
f->avctx->extradata)
414 if (
f->version > 2) {
415 if (
f->version == 3) {
416 f->micro_version = 4;
417 }
else if (
f->version == 4)
418 f->micro_version = 2;
424 for (
i = 1;
i < 256;
i++)
437 for (
i = 0;
i <
f->quant_table_count;
i++)
440 for (
i = 0;
i <
f->quant_table_count;
i++) {
443 for (j = 0; j <
f->context_count[
i]; j++)
445 int pred = j ?
f->initial_states[
i][j - 1][k] : 128;
447 (int8_t)(
f->initial_states[
i][j][k] -
pred), 1);
454 if (
f->version > 2) {
461 AV_WL32(
f->avctx->extradata +
f->avctx->extradata_size, v);
462 f->avctx->extradata_size += 4;
469 int i, i2, changed,
print = 0;
473 for (
i = 12;
i < 244;
i++) {
474 for (i2 =
i + 1; i2 < 245 && i2 <
i + 4; i2++) {
476 #define COST(old, new) \
477 s->rc_stat[old][0] * -log2((256 - (new)) / 256.0) + \
478 s->rc_stat[old][1] * -log2((new) / 256.0)
480 #define COST2(old, new) \
481 COST(old, new) + COST(256 - (old), 256 - (new))
485 if (size0 - sizeX > size0*(1e-14) &&
i != 128 && i2 != 128) {
488 FFSWAP(
int,
s->rc_stat[
i][0],
s->rc_stat[i2][0]);
489 FFSWAP(
int,
s->rc_stat[
i][1],
s->rc_stat[i2][1]);
491 FFSWAP(
int, stt[256 -
i], stt[256 - i2]);
492 FFSWAP(
int,
s->rc_stat[256 -
i][0],
s->rc_stat[256 - i2][0]);
493 FFSWAP(
int,
s->rc_stat[256 -
i][1],
s->rc_stat[256 - i2][1]);
495 for (j = 1; j < 256; j++) {
498 else if (stt[j] == i2)
501 if (stt[256 - j] == 256 -
i)
502 stt[256 - j] = 256 - i2;
503 else if (stt[256 - j] == 256 - i2)
504 stt[256 - j] = 256 -
i;
528 s->version =
FFMAX(
s->version, 2);
532 s->version =
FFMAX(
s->version, 2);
546 s->ec = (
s->version >= 3);
551 s->version =
FFMAX(
s->version, 3);
554 av_log(
avctx,
AV_LOG_ERROR,
"Version 2 needed for requested features but version 2 is experimental and not enabled\n");
573 s->bits_per_raw_sample = 9;
583 s->bits_per_raw_sample = 10;
590 s->bits_per_raw_sample = 12;
595 s->bits_per_raw_sample = 14;
596 s->packed_at_lsb = 1;
605 s->bits_per_raw_sample = 16;
606 }
else if (!
s->bits_per_raw_sample) {
609 if (
s->bits_per_raw_sample <= 8) {
613 s->version =
FFMAX(
s->version, 1);
625 s->chroma_planes =
desc->nb_components < 3 ? 0 : 1;
629 s->bits_per_raw_sample = 8;
630 else if (!
s->bits_per_raw_sample)
631 s->bits_per_raw_sample = 8;
636 s->chroma_planes = 1;
637 s->bits_per_raw_sample = 8;
642 s->chroma_planes = 1;
643 s->bits_per_raw_sample = 16;
645 s->version =
FFMAX(
s->version, 1);
649 s->chroma_planes = 1;
650 s->bits_per_raw_sample = 16;
652 s->version =
FFMAX(
s->version, 1);
656 s->chroma_planes = 1;
657 s->bits_per_raw_sample = 8;
661 s->bits_per_raw_sample = 9;
665 s->bits_per_raw_sample = 10;
669 s->bits_per_raw_sample = 12;
672 s->bits_per_raw_sample = 14;
676 s->bits_per_raw_sample = 16;
677 else if (!
s->bits_per_raw_sample)
681 s->chroma_planes = 1;
682 if (
s->bits_per_raw_sample >= 16) {
685 s->version =
FFMAX(
s->version, 1);
693 if (
s->bits_per_raw_sample > 8) {
696 "bits_per_raw_sample > 8, forcing range coder\n");
702 for (
i = 1;
i < 256;
i++)
707 for (
i = 1;
i < 256;
i++)
708 s->state_transition[
i] =
c.one_state[
i];
711 for (
i = 0;
i < 256;
i++) {
712 s->quant_table_count = 2;
713 if (
s->bits_per_raw_sample <= 8) {
719 s->quant_tables[1][2][
i]= 11*11*
quant5 [
i];
720 s->quant_tables[1][3][
i]= 5*11*11*
quant5 [
i];
721 s->quant_tables[1][4][
i]= 5*5*11*11*
quant5 [
i];
733 s->context_count[0] = (11 * 11 * 11 + 1) / 2;
734 s->context_count[1] = (11 * 11 * 5 * 5 * 5 + 1) / 2;
735 memcpy(
s->quant_table,
s->quant_tables[
s->context_model],
736 sizeof(
s->quant_table));
738 for (
i = 0;
i <
s->plane_count;
i++) {
749 if (!
s->transparency)
751 if (!
s->chroma_planes &&
s->version > 3)
758 s->picture_number = 0;
761 for (
i = 0;
i <
s->quant_table_count;
i++) {
763 sizeof(*
s->rc_stat2[
i]));
779 for (j = 0; j < 256; j++)
780 for (
i = 0;
i < 2;
i++) {
781 s->rc_stat[j][
i] = strtol(p, &next, 0);
784 "2Pass file invalid at %d %d [%s]\n", j,
i, p);
790 for (
i = 0;
i <
s->quant_table_count;
i++)
791 for (j = 0; j <
s->context_count[
i]; j++) {
792 for (k = 0; k < 32; k++)
793 for (m = 0; m < 2; m++) {
794 s->rc_stat2[
i][j][k][m] = strtol(p, &next, 0);
797 "2Pass file invalid at %d %d %d %d [%s]\n",
812 while (*p ==
'\n' || *p ==
' ')
822 for (
i = 0;
i <
s->quant_table_count;
i++) {
823 for (k = 0; k < 32; k++) {
826 for (j = 0; j <
s->context_count[
i]; j++) {
828 if (
s->rc_stat2[
i][j][k][0] +
s->rc_stat2[
i][j][k][1] > 200 && j ||
a+
b > 200) {
830 p = 256.0 *
b / (
a +
b);
831 s->initial_states[
i][jp][k] =
833 for(jp++; jp<j; jp++)
834 s->initial_states[
i][jp][k] =
s->initial_states[
i][jp-1][k];
837 a +=
s->rc_stat2[
i][j][k][0];
838 b +=
s->rc_stat2[
i][j][k][1];
840 p = 256.0 *
b / (
a +
b);
842 s->initial_states[
i][j][k] =
850 if (
s->version > 1) {
856 s->num_v_slices =
FFMIN(
s->num_v_slices, max_v_slices);
858 for (;
s->num_v_slices < 32;
s->num_v_slices++) {
859 for (
s->num_h_slices =
s->num_v_slices;
s->num_h_slices < 2*
s->num_v_slices;
s->num_h_slices++) {
860 int maxw = (
avctx->
width +
s->num_h_slices - 1) /
s->num_h_slices;
861 int maxh = (
avctx->
height +
s->num_v_slices - 1) /
s->num_v_slices;
862 if (
s->num_h_slices > max_h_slices ||
s->num_v_slices > max_v_slices)
864 if (maxw * maxh * (int64_t)(
s->bits_per_raw_sample+1) *
plane_count > 8<<24)
871 "Unsupported number %d of slices requested, please specify a "
872 "supported number with -slices (ex:4,6,9,12,16, ...)\n",
882 s->slice_count =
s->max_slice_count;
886 #define STATS_OUT_SIZE 1024 * 1024 * 6
891 for (
i = 0;
i <
s->quant_table_count;
i++)
892 for (j = 0; j <
s->max_slice_count; j++) {
916 for (j=0; j<
f->plane_count; j++) {
918 av_assert0(
f->plane[j].quant_table_index ==
f->context_model);
920 if (!
f->picture.f->interlaced_frame)
926 if (
f->version > 3) {
928 if (
fs->slice_coding_mode == 1)
931 if (
fs->slice_coding_mode != 1) {
940 #define NB_Y_COEFF 15
941 static const int rct_y_coeff[15][2] = {
961 int x, y,
i, p, best;
963 int lbd =
fs->bits_per_raw_sample <= 8;
965 for (y = 0; y <
h; y++) {
966 int lastr=0, lastg=0, lastb=0;
967 for (p = 0; p < 3; p++)
970 for (x = 0; x <
w; x++) {
974 unsigned v = *((
const uint32_t*)(
src[0] + x*4 +
stride[0]*y));
977 r = (v >> 16) & 0xFF;
979 b = *((
const uint16_t*)(
src[0] + x*2 +
stride[0]*y));
980 g = *((
const uint16_t*)(
src[1] + x*2 +
stride[1]*y));
981 r = *((
const uint16_t*)(
src[2] + x*2 +
stride[2]*y));
988 int bg = ag -
sample[0][x];
989 int bb = ab -
sample[1][x];
990 int br = ar -
sample[2][x];
996 stat[
i] +=
FFABS(bg + ((br*rct_y_coeff[
i][0] + bb*rct_y_coeff[
i][1])>>2));
1012 if (stat[
i] < stat[best])
1016 fs->slice_rct_by_coef = rct_y_coeff[best][1];
1017 fs->slice_rct_ry_coef = rct_y_coeff[best][0];
1026 int x =
fs->slice_x;
1027 int y =
fs->slice_y;
1028 const AVFrame *
const p =
f->picture.f;
1037 fs->slice_coding_mode = 0;
1038 if (
f->version > 3) {
1041 fs->slice_rct_by_coef = 1;
1042 fs->slice_rct_ry_coef = 1;
1048 if (
f->version > 2) {
1054 fs->c.bytestream_start +
fs->ac_byte_count,
1055 fs->c.bytestream_end -
fs->c.bytestream_start -
fs->ac_byte_count);
1061 const int cx = x >>
f->chroma_h_shift;
1062 const int cy = y >>
f->chroma_v_shift;
1066 if (
f->chroma_planes) {
1070 if (
fs->transparency)
1075 }
else if (
f->use32bit) {
1084 if (
fs->version < 4 || !
fs->ac) {
1089 fs->slice_coding_mode = 1;
1098 const AVFrame *pict,
int *got_packet)
1103 uint8_t keystate = 128;
1115 memset(
f->rc_stat, 0,
sizeof(
f->rc_stat));
1116 for (
i = 0;
i <
f->quant_table_count;
i++)
1117 memset(
f->rc_stat2[
i], 0,
f->context_count[
i] *
sizeof(*
f->rc_stat2[
i]));
1120 for (j = 0; j <
f->slice_count; j++) {
1122 for (
i = 0;
i < 256;
i++) {
1123 f->rc_stat[
i][0] +=
fs->rc_stat[
i][0];
1124 f->rc_stat[
i][1] +=
fs->rc_stat[
i][1];
1126 for (
i = 0;
i <
f->quant_table_count;
i++) {
1127 for (k = 0; k <
f->context_count[
i]; k++)
1128 for (m = 0; m < 32; m++) {
1129 f->rc_stat2[
i][k][m][0] +=
fs->rc_stat2[
i][k][m][0];
1130 f->rc_stat2[
i][k][m][1] +=
fs->rc_stat2[
i][k][m][1];
1135 for (j = 0; j < 256; j++) {
1136 snprintf(p, end - p,
"%" PRIu64
" %" PRIu64
" ",
1137 f->rc_stat[j][0],
f->rc_stat[j][1]);
1142 for (
i = 0;
i <
f->quant_table_count;
i++) {
1143 for (j = 0; j <
f->context_count[
i]; j++)
1144 for (m = 0; m < 32; m++) {
1145 snprintf(p, end - p,
"%" PRIu64
" %" PRIu64
" ",
1146 f->rc_stat2[
i][j][m][0],
f->rc_stat2[
i][j][m][1]);
1150 snprintf(p, end - p,
"%d\n",
f->gob_count);
1185 for (
i = 1;
i < 256;
i++) {
1186 c->one_state[
i] =
f->state_transition[
i];
1187 c->zero_state[256 -
i] = 256 -
c->one_state[
i];
1191 for (
i = 0;
i <
f->slice_count;
i++) {
1200 fs->c.bytestream_end =
fs->c.bytestream_start +
len;
1204 f->slice_count,
sizeof(
void *));
1207 for (
i = 0;
i <
f->slice_count;
i++) {
1217 if (
i > 0 ||
f->version > 2) {
1219 memmove(buf_p,
fs->c.bytestream_start, bytes);
1221 AV_WB24(buf_p + bytes, bytes);
1237 f->picture_number++;
1253 #define OFFSET(x) offsetof(FFV1Context, x)
1254 #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
1258 { .i64 = 0 }, -2, 2,
VE,
"coder" },
1265 {
"ac",
"Range with custom table (the ac option exists for compatibility and is deprecated)", 0,
AV_OPT_TYPE_CONST,
1266 { .i64 = 1 }, INT_MIN, INT_MAX,
VE,
"coder" },
1268 { .i64 = 0 }, 0, 1,
VE },