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) * ((1
U << 31) / 8);
148 for (
i = 0;
i < 256;
i++) {
149 uint64_t best_len[256];
151 for (j = 0; j < 256; j++)
152 best_len[j] = UINT64_MAX;
154 for (j =
FFMAX(
i - 10, 1); j <
FFMIN(
i + 11, 256); j++) {
155 uint32_t occ[256] = { 0 };
162 for (k = 0; k < 256; k++) {
163 uint32_t newocc[256] = { 0 };
164 for (m = 1; m < 256; m++)
166 len += (occ[m]*((
i *(uint64_t)l2tab[ m]
167 + (256-
i)*(uint64_t)l2tab[256-m])>>8)) >> 8;
169 if (
len < best_len[k]) {
171 best_state[
i][k] = j;
173 for (m = 1; m < 256; m++)
175 newocc[ one_state[ m]] += occ[m] * (uint64_t)
i >> 8;
176 newocc[256 - one_state[256 - m]] += occ[m] * (uint64_t)(256 -
i) >> 8;
178 memcpy(occ, newocc,
sizeof(occ));
185 uint8_t *
state,
int v,
192 #define put_rac(C, S, B) \
195 rc_stat[*(S)][B]++; \
196 rc_stat2[(S) - state][B]++; \
206 for (
i = 0;
i < e;
i++)
210 for (
i = e - 1;
i >= 0;
i--)
216 for (
i = 0;
i < e;
i++)
220 for (
i = e - 1;
i >= 0;
i--)
233 int v,
int is_signed)
247 while (i < state->error_sum) {
256 ff_dlog(
NULL,
"v:%d/%d bias:%d error:%d drift:%d count:%d k:%d\n", v,
code,
264 #define RENAME(name) name
270 #define RENAME(name) name ## 32
274 int stride,
int plane_index,
int pixel_stride)
277 const int ring_size =
s->context_model ? 3 : 2;
281 memset(
s->sample_buffer, 0,
ring_size * (
w + 6) *
sizeof(*
s->sample_buffer));
283 for (y = 0; y <
h; y++) {
289 if (
s->bits_per_raw_sample <= 8) {
290 for (x = 0; x <
w; x++)
292 if((
ret = encode_line(
s,
w,
sample, plane_index, 8)) < 0)
295 if (
s->packed_at_lsb) {
296 for (x = 0; x <
w; x++) {
300 for (x = 0; x <
w; x++) {
301 sample[0][x] = ((uint16_t*)(
src +
stride*y))[x] >> (16 -
s->bits_per_raw_sample);
304 if((
ret = encode_line(
s,
w,
sample, plane_index,
s->bits_per_raw_sample)) < 0)
318 for (
i = 1;
i < 128;
i++)
330 for (
i = 0;
i < 5;
i++)
339 for (
int i = 0;
i < nb_contexts;
i++)
341 if (initial_state[
i][j] != 128)
354 if (
f->version < 2) {
358 for (
i = 1;
i < 256;
i++)
360 f->state_transition[
i] -
c->one_state[
i], 1);
371 }
else if (
f->version < 3) {
373 for (
i = 0;
i <
f->slice_count;
i++) {
376 (
fs->slice_x + 1) *
f->num_h_slices /
f->width, 0);
378 (
fs->slice_y + 1) *
f->num_v_slices /
f->height, 0);
380 (
fs->slice_width + 1) *
f->num_h_slices /
f->width - 1,
383 (
fs->slice_height + 1) *
f->num_v_slices /
f->height - 1,
385 for (j = 0; j <
f->plane_count; j++) {
387 av_assert0(
f->plane[j].quant_table_index ==
f->context_model);
401 memset(state2, 128,
sizeof(state2));
404 f->avctx->extradata_size = 10000 + 4 +
405 (11 * 11 * 5 * 5 * 5 + 11 * 11 * 11) * 32;
407 if (!
f->avctx->extradata)
413 if (
f->version > 2) {
414 if (
f->version == 3) {
415 f->micro_version = 4;
416 }
else if (
f->version == 4)
417 f->micro_version = 2;
423 for (
i = 1;
i < 256;
i++)
436 for (
i = 0;
i <
f->quant_table_count;
i++)
439 for (
i = 0;
i <
f->quant_table_count;
i++) {
442 for (j = 0; j <
f->context_count[
i]; j++)
444 int pred = j ?
f->initial_states[
i][j - 1][k] : 128;
446 (int8_t)(
f->initial_states[
i][j][k] -
pred), 1);
453 if (
f->version > 2) {
460 AV_WL32(
f->avctx->extradata +
f->avctx->extradata_size, v);
461 f->avctx->extradata_size += 4;
468 int i, i2, changed,
print = 0;
472 for (
i = 12;
i < 244;
i++) {
473 for (i2 =
i + 1; i2 < 245 && i2 <
i + 4; i2++) {
475 #define COST(old, new) \
476 s->rc_stat[old][0] * -log2((256 - (new)) / 256.0) + \
477 s->rc_stat[old][1] * -log2((new) / 256.0)
479 #define COST2(old, new) \
480 COST(old, new) + COST(256 - (old), 256 - (new))
484 if (size0 - sizeX > size0*(1e-14) &&
i != 128 && i2 != 128) {
487 FFSWAP(
int,
s->rc_stat[
i][0],
s->rc_stat[i2][0]);
488 FFSWAP(
int,
s->rc_stat[
i][1],
s->rc_stat[i2][1]);
490 FFSWAP(
int, stt[256 -
i], stt[256 - i2]);
491 FFSWAP(
int,
s->rc_stat[256 -
i][0],
s->rc_stat[256 - i2][0]);
492 FFSWAP(
int,
s->rc_stat[256 -
i][1],
s->rc_stat[256 - i2][1]);
494 for (j = 1; j < 256; j++) {
497 else if (stt[j] == i2)
500 if (stt[256 - j] == 256 -
i)
501 stt[256 - j] = 256 - i2;
502 else if (stt[256 - j] == 256 - i2)
503 stt[256 - j] = 256 -
i;
527 s->version =
FFMAX(
s->version, 2);
531 s->version =
FFMAX(
s->version, 2);
545 s->ec = (
s->version >= 3);
550 s->version =
FFMAX(
s->version, 3);
553 av_log(
avctx,
AV_LOG_ERROR,
"Version 2 needed for requested features but version 2 is experimental and not enabled\n");
572 s->bits_per_raw_sample = 9;
582 s->bits_per_raw_sample = 10;
589 s->bits_per_raw_sample = 12;
594 s->bits_per_raw_sample = 14;
595 s->packed_at_lsb = 1;
604 s->bits_per_raw_sample = 16;
605 }
else if (!
s->bits_per_raw_sample) {
608 if (
s->bits_per_raw_sample <= 8) {
612 s->version =
FFMAX(
s->version, 1);
624 s->chroma_planes =
desc->nb_components < 3 ? 0 : 1;
628 s->bits_per_raw_sample = 8;
629 else if (!
s->bits_per_raw_sample)
630 s->bits_per_raw_sample = 8;
635 s->chroma_planes = 1;
636 s->bits_per_raw_sample = 8;
641 s->chroma_planes = 1;
642 s->bits_per_raw_sample = 16;
644 s->version =
FFMAX(
s->version, 1);
648 s->chroma_planes = 1;
649 s->bits_per_raw_sample = 16;
651 s->version =
FFMAX(
s->version, 1);
655 s->chroma_planes = 1;
656 s->bits_per_raw_sample = 8;
660 s->bits_per_raw_sample = 9;
664 s->bits_per_raw_sample = 10;
668 s->bits_per_raw_sample = 12;
671 s->bits_per_raw_sample = 14;
675 s->bits_per_raw_sample = 16;
676 else if (!
s->bits_per_raw_sample)
680 s->chroma_planes = 1;
681 if (
s->bits_per_raw_sample >= 16) {
684 s->version =
FFMAX(
s->version, 1);
692 if (
s->bits_per_raw_sample > 8) {
695 "bits_per_raw_sample > 8, forcing range coder\n");
701 for (
i = 1;
i < 256;
i++)
706 for (
i = 1;
i < 256;
i++)
707 s->state_transition[
i] =
c.one_state[
i];
710 for (
i = 0;
i < 256;
i++) {
711 s->quant_table_count = 2;
712 if (
s->bits_per_raw_sample <= 8) {
718 s->quant_tables[1][2][
i]= 11*11*
quant5 [
i];
719 s->quant_tables[1][3][
i]= 5*11*11*
quant5 [
i];
720 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;
734 memcpy(
s->quant_table,
s->quant_tables[
s->context_model],
735 sizeof(
s->quant_table));
737 for (
i = 0;
i <
s->plane_count;
i++) {
748 if (!
s->transparency)
750 if (!
s->chroma_planes &&
s->version > 3)
757 s->picture_number = 0;
760 for (
i = 0;
i <
s->quant_table_count;
i++) {
762 sizeof(*
s->rc_stat2[
i]));
778 for (j = 0; j < 256; j++)
779 for (
i = 0;
i < 2;
i++) {
780 s->rc_stat[j][
i] = strtol(p, &next, 0);
783 "2Pass file invalid at %d %d [%s]\n", j,
i, p);
789 for (
i = 0;
i <
s->quant_table_count;
i++)
790 for (j = 0; j <
s->context_count[
i]; j++) {
791 for (k = 0; k < 32; k++)
792 for (m = 0; m < 2; m++) {
793 s->rc_stat2[
i][j][k][m] = strtol(p, &next, 0);
796 "2Pass file invalid at %d %d %d %d [%s]\n",
811 while (*p ==
'\n' || *p ==
' ')
821 for (
i = 0;
i <
s->quant_table_count;
i++) {
822 for (k = 0; k < 32; k++) {
825 for (j = 0; j <
s->context_count[
i]; j++) {
827 if (
s->rc_stat2[
i][j][k][0] +
s->rc_stat2[
i][j][k][1] > 200 && j ||
a+
b > 200) {
829 p = 256.0 *
b / (
a +
b);
830 s->initial_states[
i][jp][k] =
832 for(jp++; jp<j; jp++)
833 s->initial_states[
i][jp][k] =
s->initial_states[
i][jp-1][k];
836 a +=
s->rc_stat2[
i][j][k][0];
837 b +=
s->rc_stat2[
i][j][k][1];
839 p = 256.0 *
b / (
a +
b);
841 s->initial_states[
i][j][k] =
849 if (
s->version > 1) {
855 s->num_v_slices =
FFMIN(
s->num_v_slices, max_v_slices);
857 for (;
s->num_v_slices < 32;
s->num_v_slices++) {
858 for (
s->num_h_slices =
s->num_v_slices;
s->num_h_slices < 2*
s->num_v_slices;
s->num_h_slices++) {
859 int maxw = (
avctx->
width +
s->num_h_slices - 1) /
s->num_h_slices;
860 int maxh = (
avctx->
height +
s->num_v_slices - 1) /
s->num_v_slices;
861 if (
s->num_h_slices > max_h_slices ||
s->num_v_slices > max_v_slices)
863 if (maxw * maxh * (int64_t)(
s->bits_per_raw_sample+1) *
plane_count > 8<<24)
870 "Unsupported number %d of slices requested, please specify a "
871 "supported number with -slices (ex:4,6,9,12,16, ...)\n",
881 s->slice_count =
s->max_slice_count;
885 #define STATS_OUT_SIZE 1024 * 1024 * 6
890 for (
i = 0;
i <
s->quant_table_count;
i++)
891 for (j = 0; j <
s->max_slice_count; j++) {
915 for (j=0; j<
f->plane_count; j++) {
917 av_assert0(
f->plane[j].quant_table_index ==
f->context_model);
919 if (!
f->picture.f->interlaced_frame)
925 if (
f->version > 3) {
927 if (
fs->slice_coding_mode == 1)
930 if (
fs->slice_coding_mode != 1) {
939 #define NB_Y_COEFF 15
940 static const int rct_y_coeff[15][2] = {
960 int x, y,
i, p, best;
962 int lbd =
fs->bits_per_raw_sample <= 8;
964 for (y = 0; y <
h; y++) {
965 int lastr=0, lastg=0, lastb=0;
966 for (p = 0; p < 3; p++)
969 for (x = 0; x <
w; x++) {
973 unsigned v = *((
const uint32_t*)(
src[0] + x*4 +
stride[0]*y));
976 r = (v >> 16) & 0xFF;
978 b = *((
const uint16_t*)(
src[0] + x*2 +
stride[0]*y));
979 g = *((
const uint16_t*)(
src[1] + x*2 +
stride[1]*y));
980 r = *((
const uint16_t*)(
src[2] + x*2 +
stride[2]*y));
987 int bg = ag -
sample[0][x];
988 int bb = ab -
sample[1][x];
989 int br = ar -
sample[2][x];
995 stat[
i] +=
FFABS(bg + ((br*rct_y_coeff[
i][0] + bb*rct_y_coeff[
i][1])>>2));
1011 if (stat[
i] < stat[best])
1015 fs->slice_rct_by_coef = rct_y_coeff[best][1];
1016 fs->slice_rct_ry_coef = rct_y_coeff[best][0];
1025 int x =
fs->slice_x;
1026 int y =
fs->slice_y;
1027 const AVFrame *
const p =
f->picture.f;
1036 fs->slice_coding_mode = 0;
1037 if (
f->version > 3) {
1040 fs->slice_rct_by_coef = 1;
1041 fs->slice_rct_ry_coef = 1;
1047 if (
f->version > 2) {
1053 fs->c.bytestream_start +
fs->ac_byte_count,
1054 fs->c.bytestream_end -
fs->c.bytestream_start -
fs->ac_byte_count);
1060 const int cx = x >>
f->chroma_h_shift;
1061 const int cy = y >>
f->chroma_v_shift;
1065 if (
f->chroma_planes) {
1069 if (
fs->transparency)
1074 }
else if (
f->use32bit) {
1083 if (
fs->version < 4 || !
fs->ac) {
1088 fs->slice_coding_mode = 1;
1097 const AVFrame *pict,
int *got_packet)
1102 uint8_t keystate = 128;
1114 memset(
f->rc_stat, 0,
sizeof(
f->rc_stat));
1115 for (
i = 0;
i <
f->quant_table_count;
i++)
1116 memset(
f->rc_stat2[
i], 0,
f->context_count[
i] *
sizeof(*
f->rc_stat2[
i]));
1119 for (j = 0; j <
f->slice_count; j++) {
1121 for (
i = 0;
i < 256;
i++) {
1122 f->rc_stat[
i][0] +=
fs->rc_stat[
i][0];
1123 f->rc_stat[
i][1] +=
fs->rc_stat[
i][1];
1125 for (
i = 0;
i <
f->quant_table_count;
i++) {
1126 for (k = 0; k <
f->context_count[
i]; k++)
1127 for (m = 0; m < 32; m++) {
1128 f->rc_stat2[
i][k][m][0] +=
fs->rc_stat2[
i][k][m][0];
1129 f->rc_stat2[
i][k][m][1] +=
fs->rc_stat2[
i][k][m][1];
1134 for (j = 0; j < 256; j++) {
1135 snprintf(p, end - p,
"%" PRIu64
" %" PRIu64
" ",
1136 f->rc_stat[j][0],
f->rc_stat[j][1]);
1141 for (
i = 0;
i <
f->quant_table_count;
i++) {
1142 for (j = 0; j <
f->context_count[
i]; j++)
1143 for (m = 0; m < 32; m++) {
1144 snprintf(p, end - p,
"%" PRIu64
" %" PRIu64
" ",
1145 f->rc_stat2[
i][j][m][0],
f->rc_stat2[
i][j][m][1]);
1149 snprintf(p, end - p,
"%d\n",
f->gob_count);
1184 for (
i = 1;
i < 256;
i++) {
1185 c->one_state[
i] =
f->state_transition[
i];
1186 c->zero_state[256 -
i] = 256 -
c->one_state[
i];
1190 for (
i = 0;
i <
f->slice_count;
i++) {
1199 fs->c.bytestream_end =
fs->c.bytestream_start +
len;
1203 f->slice_count,
sizeof(
void *));
1206 for (
i = 0;
i <
f->slice_count;
i++) {
1216 if (
i > 0 ||
f->version > 2) {
1218 memmove(buf_p,
fs->c.bytestream_start, bytes);
1220 AV_WB24(buf_p + bytes, bytes);
1236 f->picture_number++;
1252 #define OFFSET(x) offsetof(FFV1Context, x)
1253 #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
1257 { .i64 = 0 }, -2, 2,
VE,
"coder" },
1264 {
"ac",
"Range with custom table (the ac option exists for compatibility and is deprecated)", 0,
AV_OPT_TYPE_CONST,
1265 { .i64 = 1 }, INT_MIN, INT_MAX,
VE,
"coder" },
1267 { .i64 = 0 }, 0, 1,
VE },