kCMTimebaseNotification_EffectiveRateChanged trigers multiple times each second without a rate change

I'm trying to monitor the playback rate of an AvPlayerItem. According to the timebase docs (https://developer.apple.com/documentation/avfoundation/avplayeritem/1387605-timebase), the best way to do this is by subscribing to the kCMTimebaseNotification_EffectiveRateChanged notification.


So I set up the observer this way:


[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timeBaseEffectiveRateChanged:) name:(__bridge NSString *)kCMTimebaseNotification_EffectiveRateChanged object:(__bridge id)(self.currentPlayer.currentItem.timebase)];


The selector is implemented to simply log the rate of that playerItem:


- (void) timeBaseEffectiveRateChanged: (NSNotification *) pNotification{
    if (self.currentPlayer && self.currentPlayer.currentItem && self.currentPlayer.currentItem.timebase) {
        ASMELogDebug(@"into timeBaseEffectiveRateChanged to %f", CMTimebaseGetRate(self.currentPlayer.currentItem.timebase));
    }else {
        ASMELogDebug(@"into timeBaseEffectiveRateChanged. Something is not set");
    }
}


I noticed in my logging that the timeBaseEffectiveRateChanged handler is called multiple times each second, and that the rate of the timebase is not changed (it's always 1.0000).


How should this notification be used properly so that it is only called when the rate of the playerItem actually changes?