Я создаю прототип клиента, который отображает потоковое видео с HaiVision Barracuda через клиент быстрого доступа.Я не смог уменьшить размер буфера ниже 3,0 секунд ... для этого приложения нам нужно настолько низкое время ожидания, насколько позволяет сеть, и предпочли отсрочки видео задержке.Я делаю следующее:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSString *path = [[NSBundle mainBundle] pathForResource:@"haivision" ofType:@"sdp"];
NSError *error = nil;
QTMovie *qtmovie = [QTMovie movieWithFile:path error:&error];
if( error != nil ) {
NSLog(@"error: %@", [error localizedDescription]);
}
Movie movie = [qtmovie quickTimeMovie];
long trackCount = GetMovieTrackCount(movie);
Track theTrack = GetMovieTrack(movie,1);
Media theMedia = GetTrackMedia(theTrack);
MediaHandler theMediaHandler = GetMediaHandler(theMedia);
QTSMediaPresentationParams myPres;
ComponentResult c = QTSMediaGetIndStreamInfo(theMediaHandler, 1,kQTSMediaPresentationInfo,
&myPres);
Fixed shortdelay = 1<<15;
OSErr theErr = QTSPresSetInfo (myPres.presentationID,
kQTSAllStreams,
kQTSTargetBufferDurationInfo,
&shortdelay );
NSLog(@"OSErr %d", theErr);
[movieView setMovie:qtmovie];
[movieView play:self];
}
Кажется, я получаю действительные объекты / структуры вплоть до QTSPres, хотя и ComponentResult и OSErr возвращают -50.Потоковое видео воспроизводится нормально, но буфер все еще 3,0 секунды.Любая помощь / понимание приветствуется.
J