• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/libexif-0.6.19/libexif/

Lines Matching refs:eld

133 exif_loader_copy (ExifLoader *eld, unsigned char *buf, unsigned int len)
135 if (!eld || (len && !buf) || (eld->bytes_read >= eld->size))
139 if (!eld->buf)
140 eld->buf = exif_loader_alloc (eld, eld->size);
141 if (!eld->buf)
145 len = MIN (len, eld->size - eld->bytes_read);
146 memcpy (eld->buf + eld->bytes_read, buf, len);
147 eld->bytes_read += len;
149 return (eld->bytes_read >= eld->size) ? 0 : 1;
153 exif_loader_write (ExifLoader *eld, unsigned char *buf, unsigned int len)
157 if (!eld || (len && !buf))
160 switch (eld->state) {
162 return exif_loader_copy (eld, buf, len);
164 if (eld->size > len) {
165 eld->size -= len;
168 len -= eld->size;
169 buf += eld->size;
170 eld->size = 0;
171 eld->b_len = 0;
172 switch (eld->data_format) {
174 eld->state = EL_READ_SIZE_BYTE_24;
177 eld->state = EL_READ;
189 exif_log (eld->log, EXIF_LOG_CODE_DEBUG, "ExifLoader",
196 i = MIN (len, sizeof (eld->b) - eld->b_len);
198 memcpy (&eld->b[eld->b_len], buf, i);
199 eld->b_len += i;
200 if (eld->b_len < sizeof (eld->b))
206 switch (eld->data_format) {
210 if (!memcmp (eld->b, "FUJIFILM", 8)) {
213 eld->data_format = EL_DATA_FORMAT_FUJI_RAW;
214 eld->size = 84;
215 eld->state = EL_SKIP_BYTES;
216 eld->size = 84;
218 } else if (!memcmp (eld->b + 2, ExifHeader, sizeof (ExifHeader))) {
221 eld->data_format = EL_DATA_FORMAT_EXIF;
222 eld->state = EL_READ_SIZE_BYTE_08;
228 for (i = 0; i < sizeof (eld->b); i++)
229 switch (eld->state) {
231 if (!exif_loader_copy (eld, eld->b + i,
232 sizeof (eld->b) - i))
234 return exif_loader_copy (eld, buf, len);
236 eld->size--;
237 if (!eld->size)
238 eld->state = EL_READ;
242 eld->size |= eld->b[i] << 24;
243 eld->state = EL_READ_SIZE_BYTE_16;
246 eld->size |= eld->b[i] << 16;
247 eld->state = EL_READ_SIZE_BYTE_08;
250 eld->size |= eld->b[i] << 8;
251 eld->state = EL_READ_SIZE_BYTE_00;
254 eld->size |= eld->b[i] << 0;
255 switch (eld->data_format) {
257 eld->state = EL_SKIP_BYTES;
258 eld->size -= 2;
261 eld->data_format = EL_DATA_FORMAT_EXIF;
262 eld->state = EL_SKIP_BYTES;
263 eld->size -= 86;
266 eld->state = EL_EXIF_FOUND;
274 switch (eld->b[i]) {
276 if (!memcmp (eld->b + i + 3, ExifHeader, MIN((ssize_t)(sizeof(ExifHeader)), MAX(0, ((ssize_t)(sizeof(eld->b))) - ((ssize_t)i) - 3)))) {
277 eld->data_format = EL_DATA_FORMAT_EXIF;
279 eld->data_format = EL_DATA_FORMAT_JPEG; /* Probably JFIF - keep searching for APP1 EXIF*/
281 eld->size = 0;
282 eld->state = EL_READ_SIZE_BYTE_08;
290 eld->data_format = EL_DATA_FORMAT_JPEG;
291 eld->size = 0;
292 eld->state = EL_READ_SIZE_BYTE_08;
298 exif_log (eld->log,
303 exif_loader_reset (eld);
312 eld->b_len = 0;
313 return exif_loader_write (eld, buf, len);