|
@@ -143,7 +143,8 @@ static void display(void *opaque, void *picture)
|
|
{
|
|
{
|
|
NSAssert(!_data, @"We are already fetching a thumbnail");
|
|
NSAssert(!_data, @"We are already fetching a thumbnail");
|
|
|
|
|
|
- if (![_media isParsed]) {
|
|
|
|
|
|
+ VLCMediaParseStatus parseStatus = [_media parseStatus];
|
|
|
|
+ if (!(parseStatus == VLCMediaParseStatusFailed || parseStatus == VLCMediaParseStatusDone)) {
|
|
[_media addObserver:self forKeyPath:@"parsed" options:0 context:NULL];
|
|
[_media addObserver:self forKeyPath:@"parsed" options:0 context:NULL];
|
|
[_media parseWithOptions:VLCMediaParseLocal];
|
|
[_media parseWithOptions:VLCMediaParseLocal];
|
|
NSAssert(!_parsingTimeoutTimer, @"We already have a timer around");
|
|
NSAssert(!_parsingTimeoutTimer, @"We already have a timer around");
|
|
@@ -242,7 +243,8 @@ static void display(void *opaque, void *picture)
|
|
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
|
|
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
|
|
{
|
|
{
|
|
if (object == _media && [keyPath isEqualToString:@"parsed"]) {
|
|
if (object == _media && [keyPath isEqualToString:@"parsed"]) {
|
|
- if ([_media isParsed]) {
|
|
|
|
|
|
+ VLCMediaParseStatus parseStatus = [_media parseStatus];
|
|
|
|
+ if (parseStatus == VLCMediaParseStatusFailed || parseStatus == VLCMediaParseStatusDone) {
|
|
[_parsingTimeoutTimer invalidate];
|
|
[_parsingTimeoutTimer invalidate];
|
|
_parsingTimeoutTimer = nil;
|
|
_parsingTimeoutTimer = nil;
|
|
[_media removeObserver:self forKeyPath:@"parsed"];
|
|
[_media removeObserver:self forKeyPath:@"parsed"];
|