Skip to content

Commit

Permalink
Merge pull request #5 from n1ru4l/feature-expose-mime-type
Browse files Browse the repository at this point in the history
add delegate method for exposing the mime type of the file
  • Loading branch information
vdugnist authored Sep 26, 2018
2 parents 8cd65d0 + 004b66d commit 936c068
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 4 deletions.
15 changes: 11 additions & 4 deletions DVAssetLoaderDelegate/Classes/DVAssetLoaderDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,9 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionDataTask *)task did
long long requestedOffset = loadingRequest.dataRequest.requestedOffset;
NSUInteger length = loadedData.length;
long long fullLength = [[(NSHTTPURLResponse *)task.response allHeaderFields][@"Content-Range"] componentsSeparatedByString:@"/"].lastObject.longLongValue;
[self processData:loadedData forOffset:requestedOffset length:length fullLength:fullLength];
NSString *mimeType = [(NSHTTPURLResponse *)task.response allHeaderFields][@"Content-Type"];

[self processData:loadedData forOffset:requestedOffset length:length fullLength:fullLength mimeType:mimeType];

[self.pendingRequests removeObjectAtIndex:index];
[self.datas removeObjectAtIndex:index];
Expand Down Expand Up @@ -360,7 +362,7 @@ - (void)fillInContentInformation:(AVAssetResourceLoadingContentInformationReques
}
}

- (void)processData:(NSData *)data forOffset:(long long)offset length:(NSUInteger)length fullLength:(long long)fullLength {
- (void)processData:(NSData *)data forOffset:(long long)offset length:(NSUInteger)length fullLength:(long long)fullLength mimeType:(NSString *)mimeType {
if (fullLength == 0 || data.length == 0) {
return;
}
Expand All @@ -374,8 +376,13 @@ - (void)processData:(NSData *)data forOffset:(long long)offset length:(NSUIntege
}

NSData *dataToSave = concatedDataFromRanges(self.datasForSavingToCache, fullLength);
if (dataToSave && [self.delegate respondsToSelector:@selector(dvAssetLoaderDelegate:didLoadData:forURL:)]) {
[self.delegate dvAssetLoaderDelegate:self didLoadData:dataToSave forURL:self.originalURL];
if (dataToSave) {
if ([self.delegate respondsToSelector:@selector(dvAssetLoaderDelegate:didLoadData:forURL:)]) {
[self.delegate dvAssetLoaderDelegate:self didLoadData:dataToSave forURL:self.originalURL];
}
if ([self.delegate respondsToSelector:@selector(dvAssetLoaderDelegate:didLoadData:forURL:withMIMEType:)]) {
[self.delegate dvAssetLoaderDelegate:self didLoadData:dataToSave forURL:self.originalURL withMIMEType:mimeType];
}
}
}

Expand Down
10 changes: 10 additions & 0 deletions DVAssetLoaderDelegate/Classes/DVAssetLoaderDelegatesDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@
- (void)dvAssetLoaderDelegate:(DVAssetLoaderDelegate *)loaderDelegate
didLoadData:(NSData *)data
forURL:(NSURL *)url;

/**
Called when the file downloaded completely.
May not be called when the file contains information not relevant to playback.
*/
- (void)dvAssetLoaderDelegate:(DVAssetLoaderDelegate *)loaderDelegate
didLoadData:(NSData *)data
forURL:(NSURL *)url
withMIMEType:(NSString*)mimeType;

/**
Called when loader delegate downloaded data range so you can manually operate with a cache.
*/
Expand Down

0 comments on commit 936c068

Please sign in to comment.