Проблема с GPUImage iPhone

Я использую структуру GPUImage в iphone, чтобы добавить некоторые фильтры в видеофайл. Фильтры успешно применяются. Но проблема, с которой я столкнулся, заключается в том, что setCompletionBlock вызывается два раза подряд. Может ли кто-нибудь предложить мне, что не так с этим кодом?

- (IBAction)applyFilter:(id)sender {

NSString *path = [[NSBundle mainBundle] pathForResource:@"OriginalVideo" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:path];
GPUImageMovie *movieFile = [[GPUImageMovie alloc] initWithURL:url];
GPUImageSepiaFilter *filter = [[GPUImageSepiaFilter alloc] init];

[movieFile addTarget:filter];

NSString *pathToMovie = [Utilities getPathForFileName:@"finalvideo.mp4"];
if ([[NSFileManager defaultManager] fileExistsAtPath:pathToMovie]) {
    [[NSFileManager defaultManager] removeItemAtPath:pathToMovie error:nil];
}

unlink([pathToMovie UTF8String]);
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];

GPUImageMovieWriter *movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(480.0, 320.0)];
[filter addTarget:movieWriter];

movieWriter.shouldPassthroughAudio = YES;
movieFile.audioEncodingTarget = movieWriter;
[movieFile enableSynchronizedEncodingUsingMovieWriter:movieWriter];

[movieWriter setCompletionBlock:^{
    NSLog(@"finished..............................");

    [filter removeTarget:movieWriter];
    [movieWriter finishRecording];
}];

[movieWriter startRecording];
[movieFile startProcessing];
}

person iVipS    schedule 30.11.2012    source источник
comment
Я считаю, что это известная ошибка в фреймворке, поэтому я бы искал упоминания об этом в проблемах GitHub.   -  person Brad Larson    schedule 30.11.2012


Ответы (1)


movieFile.runBenchmark = YES;
movieFile.playAtActualSpeed = YES;
[movieFile prepareForImageCapture];

вызовите эти методы при применении фильтра

person Sandeep Khade    schedule 20.12.2012