From 0522963aa491f834c1b2b177626aca236aeba1de Mon Sep 17 00:00:00 2001 From: KWANG HYOUN KIM Date: Fri, 9 Aug 2019 15:52:06 +0900 Subject: [PATCH] Fixed: change logging. --- DLGPlayer/DLGPlayer.m | 12 ++++++++---- DLGPlayer/DLGPlayerViewController.m | 4 ++-- DLGPlayer/DLGSimplePlayerViewController.m | 4 ++-- DLGPlayer/codec/DLGPlayerAudioManager.m | 8 ++++---- DLGPlayer/codec/DLGPlayerDecoder.m | 20 ++++++++++---------- DLGPlayer/common/DLGPlayerUtils.h | 4 ++-- DLGPlayer/common/DLGPlayerUtils.m | 11 +++++++++++ DLGPlayer/view/DLGPlayerView.m | 10 +++++----- DLGPlayerDemo/RootViewController.swift | 2 ++ 9 files changed, 46 insertions(+), 29 deletions(-) diff --git a/DLGPlayer/DLGPlayer.m b/DLGPlayer/DLGPlayer.m index 7ea88cd..82d6437 100644 --- a/DLGPlayer/DLGPlayer.m +++ b/DLGPlayer/DLGPlayer.m @@ -55,7 +55,7 @@ - (id)init { } - (void)dealloc { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"DLGPlayer dealloc"); } } @@ -292,8 +292,8 @@ - (void)readFrame { while (self.playing && !self.closing && !self.decoder.isEOF && !self.requestSeek) { @autoreleasepool { - if (DLGPlayerDebugEnabled) { - NSLog(@"DLGPlayer bufferedDuration: %f, tempDuration: %f, maxBufferDuration: %f -> ", self.bufferedDuration, tempDuration, self.maxBufferDuration); + if (DLGPlayerUtils.debugEnabled) { + NSLog(@"DLGPlayer bufferedDuration: %f, tempDuration: %f, maxBufferDuration: %f", self.bufferedDuration, tempDuration, self.maxBufferDuration); } if (self.bufferedDuration + tempDuration > self.maxBufferDuration) { @@ -308,7 +308,7 @@ - (void)readFrame { [self.aframes removeAllObjects]; dispatch_semaphore_signal(self.aFramesLock); } - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"DLGPlayer drop frames beacuse buffer duration is over than max duration."); } } else { @@ -476,6 +476,10 @@ - (void)render { // Sync audio with video + if (DLGPlayerUtils.debugEnabled) { + NSLog(@"DLGPlayer render -> frame.duration: %f", frame.duration); + } + double syncTime = [self syncTime]; NSTimeInterval t = MAX(frame.duration + syncTime, 0.01); diff --git a/DLGPlayer/DLGPlayerViewController.m b/DLGPlayer/DLGPlayerViewController.m index 01a49f8..43016f9 100644 --- a/DLGPlayer/DLGPlayerViewController.m +++ b/DLGPlayer/DLGPlayerViewController.m @@ -276,11 +276,11 @@ - (void)notifyPlayerError:(NSNotification *)notif { strongSelf.status = DLGPlayerStatusNone; }); - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"Player decoder error: %@", error); } } else if ([error.domain isEqualToString:DLGPlayerErrorDomainAudioManager]) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"Player audio error: %@", error); } // I am not sure what will cause the audio error, diff --git a/DLGPlayer/DLGSimplePlayerViewController.m b/DLGPlayer/DLGSimplePlayerViewController.m index 783e3a2..3bd1730 100644 --- a/DLGPlayer/DLGSimplePlayerViewController.m +++ b/DLGPlayer/DLGSimplePlayerViewController.m @@ -262,11 +262,11 @@ - (void)notifyPlayerError:(NSNotification *)notif { strongSelf.status = DLGPlayerStatusNone; }); - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"Player decoder error: %@", error); } } else if ([error.domain isEqualToString:DLGPlayerErrorDomainAudioManager]) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"Player audio error: %@", error); } } diff --git a/DLGPlayer/codec/DLGPlayerAudioManager.m b/DLGPlayer/codec/DLGPlayerAudioManager.m index fd1b712..2355ec4 100644 --- a/DLGPlayer/codec/DLGPlayerAudioManager.m +++ b/DLGPlayer/codec/DLGPlayerAudioManager.m @@ -67,7 +67,7 @@ - (void)initVars { } - (void)dealloc { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"DLGPlayerAudioManager dealloc"); } [self unregisterNotifications]; @@ -113,14 +113,14 @@ - (BOOL)open:(NSError **)error { } if (![session setPreferredIOBufferDuration:_bufferDuration error:&rawError]) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"setPreferredIOBufferDuration: %.4f, error: %@", _bufferDuration, rawError); } } double prefferedSampleRate = PREFERRED_SAMPLE_RATE; if (![session setPreferredSampleRate:prefferedSampleRate error:&rawError]) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"setPreferredSampleRate: %.4f, error: %@", prefferedSampleRate, rawError); } } @@ -219,7 +219,7 @@ - (BOOL)initAudioUnitWithSampleRate:(double)sampleRate andRenderCallback:(AURend streamDescr.mSampleRate = sampleRate; status = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &streamDescr, size); - if (status != noErr && DLGPlayerDebugEnabled) { + if (status != noErr && DLGPlayerUtils.debugEnabled) { NSLog(@"FAILED to set audio sample rate: %f, error: %d", sampleRate, (int)status); } diff --git a/DLGPlayer/codec/DLGPlayerDecoder.m b/DLGPlayer/codec/DLGPlayerDecoder.m index 4886bc8..8075154 100644 --- a/DLGPlayer/codec/DLGPlayerDecoder.m +++ b/DLGPlayer/codec/DLGPlayerDecoder.m @@ -58,7 +58,7 @@ @interface DLGPlayerDecoder () { @implementation DLGPlayerDecoder - (void)dealloc { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"DLGPlayerDecoder dealloc"); } } @@ -385,7 +385,7 @@ - (NSArray *)readFrames { if (ret < 0) { if (ret == AVERROR_EOF) self.isEOF = YES; char *e = av_err2str(ret); - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"read frame error: %s", e); } break; @@ -465,7 +465,7 @@ - (NSArray *)readFrames { - (NSArray *)handleVideoPacket:(AVPacket *)packet byContext:(AVCodecContext *)context andFrame:(AVFrame *)frame andSwsContext:(struct SwsContext *)swsctx andSwsFrame:(AVFrame *)swsframe { int ret = avcodec_send_packet(context, packet); if (ret != 0) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"avcodec_send_packet: %d", ret); } return nil; @@ -477,7 +477,7 @@ - (NSArray *)readFrames { if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) { break; } else if (ret < 0) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"avcodec_receive_frame: %d", ret); } break; @@ -536,7 +536,7 @@ - (NSArray *)readFrames { - (NSArray *)handleAudioPacket:(AVPacket *)packet byContext:(AVCodecContext *)context andFrame:(AVFrame *)frame andSwrContext:(SwrContext *)swrctx andSwrBuffer:(void **)swrbuf andSwrBufferSize:(int *)swrbufsize { int ret = avcodec_send_packet(context, packet); if (ret != 0) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"avcodec_send_packet: %d", ret); } return nil; @@ -548,7 +548,7 @@ - (NSArray *)readFrames { if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) { break; } else if (ret < 0) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"avcodec_receive_frame: %d", ret); } break; @@ -578,7 +578,7 @@ - (NSArray *)readFrames { Byte *o[2] = { *swrbuf, 0 }; samplesPerChannel = swr_convert(swrctx, o, samples, (const uint8_t **)frame->data, frame->nb_samples); if (samplesPerChannel < 0) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"failed to resample audio"); } return nil; @@ -587,7 +587,7 @@ - (NSArray *)readFrames { data = *swrbuf; } else { if (context->sample_fmt != AV_SAMPLE_FMT_S16) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"invalid audio format"); } return nil; @@ -629,7 +629,7 @@ - (void)seek:(double)position { avcodec_flush_buffers(m_pVideoCodecContext); NSTimeInterval end = [NSDate timeIntervalSinceReferenceDate]; NSTimeInterval dt = end - start; - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"seek video: %.4f, start: %.4f, end: %.4f", dt, start, end); } } else if (_hasAudio) { @@ -639,7 +639,7 @@ - (void)seek:(double)position { avcodec_flush_buffers(m_pAudioCodecContext); NSTimeInterval end = [NSDate timeIntervalSinceReferenceDate]; NSTimeInterval dt = end - start; - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"seek audio: %.4f, start: %.4f, end: %.4f", dt, start, end); } } diff --git a/DLGPlayer/common/DLGPlayerUtils.h b/DLGPlayer/common/DLGPlayerUtils.h index 7034e7f..72d9c6a 100644 --- a/DLGPlayer/common/DLGPlayerUtils.h +++ b/DLGPlayer/common/DLGPlayerUtils.h @@ -8,13 +8,13 @@ #import -static BOOL DLGPlayerDebugEnabled = NO; - @interface DLGPlayerUtils : NSObject + (BOOL)createError:(NSError **)error withDomain:(NSString *)domain andCode:(NSInteger)code andMessage:(NSString *)message; + (BOOL)createError:(NSError **)error withDomain:(NSString *)domain andCode:(NSInteger)code andMessage:(NSString *)message andRawError:(NSError *)rawError; + (NSString *)localizedString:(NSString *)name; + (NSString *)durationStringFromSeconds:(int)seconds; ++ (BOOL)debugEnabled; ++ (void)setDebugEnabled:(BOOL)enabled; @end diff --git a/DLGPlayer/common/DLGPlayerUtils.m b/DLGPlayer/common/DLGPlayerUtils.m index 0f98822..7ef6652 100644 --- a/DLGPlayer/common/DLGPlayerUtils.m +++ b/DLGPlayer/common/DLGPlayerUtils.m @@ -9,6 +9,8 @@ #import "DLGPlayerUtils.h" #import "DLGPlayerDef.h" +static BOOL debugEnabled = NO; + @implementation DLGPlayerUtils + (BOOL)createError:(NSError **)error withDomain:(NSString *)domain andCode:(NSInteger)code andMessage:(NSString *)message { @@ -51,4 +53,13 @@ + (NSString *)durationStringFromSeconds:(int)seconds { return ms; } ++ (BOOL)debugEnabled { + return debugEnabled; +} + ++ (void)setDebugEnabled:(BOOL)enabled { + debugEnabled = enabled; +} + + @end diff --git a/DLGPlayer/view/DLGPlayerView.m b/DLGPlayer/view/DLGPlayerView.m index ba67654..adacdb3 100644 --- a/DLGPlayer/view/DLGPlayerView.m +++ b/DLGPlayer/view/DLGPlayerView.m @@ -175,7 +175,7 @@ - (void)createGLProgram { // Create program GLuint program = glCreateProgram(); if (program == 0) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"FAILED to create program."); } return; @@ -212,7 +212,7 @@ - (void)createGLProgram { if (length > 1) { char *log = malloc(sizeof(char) * length); glGetProgramInfoLog(program, length, NULL, log); - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"FAILED to link program, error: %s", log); } free(log); @@ -424,7 +424,7 @@ + (GLuint)loadShader:(GLenum)type withString:(NSString *)shaderString { // 1. Create shader GLuint shader = glCreateShader(type); if (shader == 0) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"FAILED to create shader."); } return 0; @@ -447,7 +447,7 @@ + (GLuint)loadShader:(GLenum)type withString:(NSString *)shaderString { if (length > 1) { char *log = malloc(sizeof(char) * length); glGetShaderInfoLog(shader, length, NULL, log); - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"FAILED to compile shader, error: %s", log); } free(log); @@ -463,7 +463,7 @@ + (GLuint)loadShader:(GLenum)type withFile:(NSString *)shaderFile { NSError *error = nil; NSString *shaderString = [NSString stringWithContentsOfFile:shaderFile encoding:NSUTF8StringEncoding error:&error]; if (shaderString == nil) { - if (DLGPlayerDebugEnabled) { + if (DLGPlayerUtils.debugEnabled) { NSLog(@"FAILED to load shader file: %@, Error: %@", shaderFile, error); } return 0; diff --git a/DLGPlayerDemo/RootViewController.swift b/DLGPlayerDemo/RootViewController.swift index 8edee24..50b34fc 100644 --- a/DLGPlayerDemo/RootViewController.swift +++ b/DLGPlayerDemo/RootViewController.swift @@ -39,6 +39,8 @@ class RootViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() +// DLGPlayerUtils.setDebugEnabled(true) + // navigationItem.leftBarButtonItem = .init(title: "close", style: .plain, target: self, action: #selector(leftBarButtonItemClicked)) } override func viewWillAppear(_ animated: Bool) {