dji-sdk / Mobile-SDK-iOS

DJI Mobile SDK for iOS: http://developer.dji.com/mobile-sdk/
Other
577 stars 256 forks source link

camera:didGenerateNewMediaFile: has incorrect timeCreated property #67

Open jgrantr opened 7 years ago

jgrantr commented 7 years ago

We have upgraded our P4 Pro's to use the newest firmware. This means that our DJIFlightControlller firmware = 03.02.15.14, our DJI Firmware Package version = 01.02.0304, and our DJIRemoteController firmware = 01.03.00.00+. After doing this, the delegate method "camera:didGenerateNewMediaFile:" is now being called. However, the metadata that is produced for the new media file (as delivered in the DJIMedia object) DOES NOT match the data that is later retrieved from the [DJIMediaManager fetchMediaListWithCompletion:] method. In particular, the timeCreated property that is reported is NOT the same, and is usually in the future. For example, our drone took a photo with the filename DJI_0529.jpg at 2017-01-13 20:45:52 UTC time, but the actual time was 2017-01-13 20:44:58 UTC (the timeCreated property was in the future). When retrieved in the list of media on the drone, the timeCreated property was reported (correctly) as 2017-01-13 20:44:58 UTC.

Furthermore, the timeCreated property appears to not progress through time properly. For the aforementioned file (DJI_0529.jpg) which was taken (according to the callback) at 2017-01-13 20:45:52 UTC, the next file should have been reported as having been taken 2 seconds after that (the camera was shooting at 2 second intervals. However, DJI_0530.jpg was reported by the callback as having been taken at 2017-01-13 20:45:00 (52 seconds BEFORE the file before it). This was the only file (of 19 during the flight) that actually reported the SAME time in both the callback and when retrieved from the [DJIMediaManager fetchMediaListWithCompletion:] method, and the time that was reported was accurate. The other 18 files all had different timeCreated properties in the callback than they did when retrieved from the list of media. These other 18 files had the correct timeCreated property when retrieved from the list of media, but NOT when delivered by the callback. This problem DOES NOT exist on the Phantom 4 or any of the other DJI drones that we have tested. We have not yet tried it with the Inspire 2.

What I would expected is that the timeCreated property for a given DJIMedia object would remain consistent (AND correct) in both the callback AND when retrieved in the list of media. We are using the property to determine if there is filename wraparound, and also to record WHEN the photo was actually taken. It makes it extremely hard to match up the DJIMedia objects that come back from the media list with what was delivered by the callback when the timeCreated property is changed (and the filename is subject to wraparound).

DJI iOS SDK version: 3.5 DJI Product: Phantom 4 Pro iOS system version: iOS 10.2 iOS device type: iPad Air 2 Xcode version: 8.2.1

oliverou commented 7 years ago

Hi @jgrantr, thanks for the feedbacks. We have reproduced this issue, will fix it in the upcoming firmware version.

jgrantr commented 6 years ago

Did this ever get fixed? If so, in what firmware version was it fixed?

dallinski commented 5 years ago

Did this ever get fixed?