| 2161 | } |
| 2162 | |
| 2163 | static size_t avifEncoderFindExistingChunk(avifRWStream * s, size_t mdatStartOffset, const uint8_t * data, size_t size) |
| 2164 | { |
| 2165 | const size_t mdatCurrentOffset = avifRWStreamOffset(s); |
| 2166 | const size_t mdatSearchSize = mdatCurrentOffset - mdatStartOffset; |
| 2167 | if (mdatSearchSize < size) { |
| 2168 | return 0; |
| 2169 | } |
| 2170 | const size_t mdatEndSearchOffset = mdatCurrentOffset - size; |
| 2171 | for (size_t searchOffset = mdatStartOffset; searchOffset <= mdatEndSearchOffset; ++searchOffset) { |
| 2172 | if (!memcmp(data, &s->raw->data[searchOffset], size)) { |
| 2173 | return searchOffset; |
| 2174 | } |
| 2175 | } |
| 2176 | return 0; |
| 2177 | } |
| 2178 | |
| 2179 | static avifResult avifEncoderWriteMediaDataBox(avifEncoder * encoder, |
| 2180 | avifRWStream * s, |
no test coverage detected