59 uint16_t luma_intra_matrix[64],
60 uint16_t chroma_intra_matrix[64],
67 int matrix_count = 1 + !!memcmp(luma_intra_matrix,
69 sizeof(luma_intra_matrix[0]) * 64);
72 put_bits(p, 16, 2 + matrix_count * (1 + 64));
77 put_bits(p, 8, luma_intra_matrix[j]);
80 if (matrix_count > 1) {
85 put_bits(p, 8, chroma_intra_matrix[j]);
122 if (sar.
num > 65535 || sar.
den > 65535) {
125 "Cannot store exact aspect ratio %d:%d\n",
161 size = strlen(
"CS=ITU601")+3;
168 int chroma_h_shift, chroma_v_shift;
176 vsample[0] = hsample[0] =
177 vsample[1] = hsample[1] =
178 vsample[2] = hsample[2] = 1;
180 vsample[0] = vsample[1] = vsample[2] = 2;
181 hsample[0] = hsample[1] = hsample[2] = 1;
184 vsample[1] = 2 >> chroma_v_shift;
185 vsample[2] = 2 >> chroma_v_shift;
187 hsample[1] = 2 >> chroma_h_shift;
188 hsample[2] = 2 >> chroma_h_shift;
194 uint16_t luma_intra_matrix[64],
195 uint16_t chroma_intra_matrix[64])
198 int hsample[3], vsample[3];
200 int chroma_matrix = !!memcmp(luma_intra_matrix,
202 sizeof(luma_intra_matrix[0])*64);
213 jpeg_table_header(avctx, pb, intra_scantable, luma_intra_matrix, chroma_intra_matrix, hsample);
242 put_bits(pb, 8, lossless ? 0 : chroma_matrix);
248 put_bits(pb, 8, lossless ? 0 : chroma_matrix);
296 int align= (-(size_t)(buf))&3;
309 for(i=0; i<size && i<
align; i++){
310 if(buf[i]==0xFF) ff_count++;
312 for(; i<size-15; i+=16){
315 v= *(uint32_t*)(&buf[i]);
316 acc= (((v & (v>>4))&0x0F0F0F0F)+0x01010101)&0x10101010;
317 v= *(uint32_t*)(&buf[i+4]);
318 acc+=(((v & (v>>4))&0x0F0F0F0F)+0x01010101)&0x10101010;
319 v= *(uint32_t*)(&buf[i+8]);
320 acc+=(((v & (v>>4))&0x0F0F0F0F)+0x01010101)&0x10101010;
321 v= *(uint32_t*)(&buf[i+12]);
322 acc+=(((v & (v>>4))&0x0F0F0F0F)+0x01010101)&0x10101010;
330 if(buf[i]==0xFF) ff_count++;
333 if(ff_count==0)
return;
338 for(i=size-1; ff_count; i--){
384 uint8_t *huff_size, uint16_t *huff_code)
389 put_bits(pb, huff_size[0], huff_code[0]);
399 put_bits(pb, huff_size[nbits], huff_code[nbits]);