Lines Matching refs:iff
27 * for more information on the .iff file format, visit:
355 IffDemuxContext *iff = s->priv_data;
363 if (chunk_pos >= iff->body_end)
367 data_size = iff->is_64bit ? avio_rb64(pb) : avio_rb32(pb);
376 iff->body_pos = avio_tell(pb) - (iff->is_64bit ? 12 : 8);
377 iff->body_size = iff->body_end - iff->body_pos;
391 if (chunk_pos >= iff->body_end)
419 IffDemuxContext *iff = s->priv_data;
436 iff->is_64bit = avio_rl32(pb) == ID_FRM8;
437 avio_skip(pb, iff->is_64bit ? 8 : 4);
443 iff->bitmap_compression = -1;
444 iff->svx8_compression = -1;
445 iff->maud_bits = -1;
446 iff->maud_compression = -1;
454 data_size = iff->is_64bit ? avio_rb64(pb) : avio_rb32(pb);
470 iff->svx8_compression = avio_r8(pb);
480 iff->maud_bits = avio_rb16(pb);
490 iff->maud_compression = avio_rb16(pb);
503 iff->body_pos = avio_tell(pb);
504 if (iff->body_pos < 0 || iff->body_pos + data_size > INT64_MAX)
507 iff->body_end = iff->body_pos + data_size;
508 iff->body_size = data_size;
560 iff->bitmap_compression = avio_r8(pb);
606 iff->bitmap_compression = avio_rb16(pb);
620 if (data_size < sizeof(iff->tvdc))
622 res = avio_read(pb, iff->tvdc, sizeof(iff->tvdc));
724 avio_seek(pb, iff->body_pos, SEEK_SET);
733 if (iff->maud_bits == 8 && !iff->maud_compression) {
735 } else if (iff->maud_bits == 16 && !iff->maud_compression) {
737 } else if (iff->maud_bits == 8 && iff->maud_compression == 2) {
739 } else if (iff->maud_bits == 8 && iff->maud_compression == 3) {
742 avpriv_request_sample(s, "compression %d and bit depth %d", iff->maud_compression, iff->maud_bits);
747 switch (iff->svx8_compression) {
759 "Unknown SVX8 compression method '%d'\n", iff->svx8_compression);
775 iff->bpp = st->codecpar->bits_per_coded_sample;
778 if ((screenmode & 0x800 /* Hold And Modify */) && iff->bpp <= 8) {
779 iff->ham = iff->bpp > 6 ? 6 : 4;
782 iff->flags = (screenmode & 0x80 /* Extra HalfBrite */) && iff->bpp <= 8;
783 iff->masking = masking;
784 iff->transparency = transparency;
794 bytestream_put_byte(&buf, iff->bitmap_compression);
795 bytestream_put_byte(&buf, iff->bpp);
796 bytestream_put_byte(&buf, iff->ham);
797 bytestream_put_byte(&buf, iff->flags);
798 bytestream_put_be16(&buf, iff->transparency);
799 bytestream_put_byte(&buf, iff->masking);
800 bytestream_put_buffer(&buf, iff->tvdc, sizeof(iff->tvdc));
835 IffDemuxContext *iff = s->priv_data;
843 if (st->codecpar->codec_tag != ID_ANIM && pos >= iff->body_end)
848 ret = av_get_packet(pb, pkt, FFMIN(iff->body_end - pos, 1024 * st->codecpar->block_align));
852 if (iff->body_size > INT_MAX || !iff->body_size)
854 ret = av_get_packet(pb, pkt, iff->body_size);
888 if (iff->body_size > INT_MAX || !iff->body_size)
890 ret = av_get_packet(pb, pkt, iff->body_size);
892 if (pos == iff->body_pos)
905 .name = "iff",