From ae5c11d9b6472e3211a2be791b94e55b77d40264 Mon Sep 17 00:00:00 2001 From: poholo Date: Wed, 10 Apr 2019 11:47:19 +0800 Subject: [PATCH 1/7] iOS -- ssl -- thread --- config/module-lite.sh | 1 + .../IJKMediaDemo.xcodeproj/project.pbxproj | 30 +- .../IJKDemoInputURLViewController.m | 1 + .../IJKMediaPlayer.xcodeproj/project.pbxproj | 579 +----------------- .../ijkmedia/ijksdl/ios/IJKSDLGLView.m | 248 ++++---- .../ijksdl/ios/ijksdl_vout_ios_gles2.m | 26 +- .../AppIcon.appiconset/Contents.json | 30 + ios/compile-ffmpeg.sh | 16 +- ios/compile-openssl.sh | 3 +- 9 files changed, 206 insertions(+), 728 deletions(-) diff --git a/config/module-lite.sh b/config/module-lite.sh index d5ba3d0f86..128206ec28 100755 --- a/config/module-lite.sh +++ b/config/module-lite.sh @@ -257,3 +257,4 @@ export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-videotoolbox" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bzlib" +export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl" diff --git a/ios/IJKMediaDemo/IJKMediaDemo.xcodeproj/project.pbxproj b/ios/IJKMediaDemo/IJKMediaDemo.xcodeproj/project.pbxproj index ad6c84104c..759ff0cdf6 100644 --- a/ios/IJKMediaDemo/IJKMediaDemo.xcodeproj/project.pbxproj +++ b/ios/IJKMediaDemo/IJKMediaDemo.xcodeproj/project.pbxproj @@ -50,6 +50,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 2551A86A225D8EE0009873DC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E6D74F2918A5F94B00165BFD /* IJKMediaPlayer.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 5450B0431E63EA4300568494; + remoteInfo = IJKMediaFrameworkWithSSL; + }; E654EAD61B6B28B100B0F2D0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = E6D74F2918A5F94B00165BFD /* IJKMediaPlayer.xcodeproj */; @@ -68,7 +75,7 @@ isa = PBXContainerItemProxy; containerPortal = E6D74F2918A5F94B00165BFD /* IJKMediaPlayer.xcodeproj */; proxyType = 1; - remoteGlobalIDString = E654EA891B6B27E600B0F2D0; + remoteGlobalIDString = 5450AFC11E63EA4300568494; remoteInfo = IJKMediaFramework; }; /* End PBXContainerItemProxy section */ @@ -274,6 +281,7 @@ isa = PBXGroup; children = ( E654EAD71B6B28B100B0F2D0 /* IJKMediaFramework.framework */, + 2551A86B225D8EE0009873DC /* IJKMediaFrameworkWithSSL.framework */, E654EAD91B6B28B100B0F2D0 /* IJKMediaFrameworkTests.xctest */, ); name = Products; @@ -309,12 +317,19 @@ CLASSPREFIX = IJK; LastUpgradeCheck = 0700; ORGANIZATIONNAME = bilibili; + TargetAttributes = { + E6903EFB17EAF70200CFD954 = { + DevelopmentTeam = 6FNUHS4H7D; + ProvisioningStyle = Manual; + }; + }; }; buildConfigurationList = E6903EF717EAF70200CFD954 /* Build configuration list for PBXProject "IJKMediaDemo" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = E6903EF317EAF70200CFD954; @@ -334,6 +349,13 @@ /* End PBXProject section */ /* Begin PBXReferenceProxy section */ + 2551A86B225D8EE0009873DC /* IJKMediaFrameworkWithSSL.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = IJKMediaFrameworkWithSSL.framework; + remoteRef = 2551A86A225D8EE0009873DC /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; E654EAD71B6B28B100B0F2D0 /* IJKMediaFramework.framework */ = { isa = PBXReferenceProxy; fileType = wrapper.framework; @@ -481,6 +503,8 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = 6FNUHS4H7D; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "IJKMediaDemo/IJKMediaDemo-Prefix.pch"; INFOPLIST_FILE = "IJKMediaDemo/IJKMediaDemo-Info.plist"; @@ -489,6 +513,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "tv.danmaku.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = "T_*"; TARGETED_DEVICE_FAMILY = 1; WRAPPER_EXTENSION = app; }; @@ -501,6 +526,8 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = 6FNUHS4H7D; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "IJKMediaDemo/IJKMediaDemo-Prefix.pch"; INFOPLIST_FILE = "IJKMediaDemo/IJKMediaDemo-Info.plist"; @@ -509,6 +536,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "tv.danmaku.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = "T_*"; TARGETED_DEVICE_FAMILY = 1; WRAPPER_EXTENSION = app; }; diff --git a/ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m b/ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m index 79f0563491..4152a5755d 100644 --- a/ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m +++ b/ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m @@ -40,6 +40,7 @@ - (void)viewDidLoad { } - (void)onClickPlayButton { + self.textView.text = @"https://api.huoshan.com/hotsoon/item/video/_playback/?video_id=bea0903abb954f58ac0e17c21226a3c3&line=1&app_id=1115&watermark=1"; NSURL *url = [NSURL URLWithString:self.textView.text]; NSString *scheme = [[url scheme] lowercaseString]; diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.pbxproj b/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.pbxproj index 0f023aecb6..7844afbcbe 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.pbxproj +++ b/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.pbxproj @@ -7,138 +7,14 @@ objects = { /* Begin PBXBuildFile section */ + 2551A866225D8EA5009873DC /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2551A864225D8EA4009873DC /* libssl.a */; }; + 2551A867225D8EA5009873DC /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2551A865225D8EA5009873DC /* libcrypto.a */; }; 4D32BC811F906E3A00CE9F03 /* IJKSDLGLViewProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D32BC801F906E3600CE9F03 /* IJKSDLGLViewProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D32BC821F906E3B00CE9F03 /* IJKSDLGLViewProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D32BC801F906E3600CE9F03 /* IJKSDLGLViewProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4DA7F6891F2B1E270032A499 /* ijkiourlhook.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DA7F6881F2B1E270032A499 /* ijkiourlhook.c */; }; - 4DA7F68A1F2B1E270032A499 /* ijkiourlhook.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DA7F6881F2B1E270032A499 /* ijkiourlhook.c */; }; 5407EC291DF7F93B00457BFE /* IJKVideoToolBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 5407EC271DF7F93B00457BFE /* IJKVideoToolBox.h */; }; 5407EC2A1DF7F93B00457BFE /* IJKVideoToolBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 5407EC281DF7F93B00457BFE /* IJKVideoToolBox.m */; }; 5407EC2D1DF81D2600457BFE /* IJKVideoToolBoxSync.h in Headers */ = {isa = PBXBuildFile; fileRef = 5407EC2B1DF81D2600457BFE /* IJKVideoToolBoxSync.h */; }; 5407EC2E1DF81D2600457BFE /* IJKVideoToolBoxSync.m in Sources */ = {isa = PBXBuildFile; fileRef = 5407EC2C1DF81D2600457BFE /* IJKVideoToolBoxSync.m */; }; - 5450AFC41E63EA4300568494 /* IJKKVOController.m in Sources */ = {isa = PBXBuildFile; fileRef = E65DC3B819D93D5F004F8A08 /* IJKKVOController.m */; }; - 5450AFC51E63EA4300568494 /* ijksdl_vout.c in Sources */ = {isa = PBXBuildFile; fileRef = E690401117EAFC6100CFD954 /* ijksdl_vout.c */; }; - 5450AFC61E63EA4300568494 /* yuv444p10le.fsh.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C4598A1C7030B6004831EC /* yuv444p10le.fsh.c */; }; - 5450AFC71E63EA4300568494 /* allformats.c in Sources */ = {isa = PBXBuildFile; fileRef = E69BE54A1B93FED300AFBA3F /* allformats.c */; }; - 5450AFC81E63EA4300568494 /* ffpipenode_ffplay_vdec.c in Sources */ = {isa = PBXBuildFile; fileRef = E67B91B41A3801E600717EA9 /* ffpipenode_ffplay_vdec.c */; }; - 5450AFC91E63EA4300568494 /* renderer_yuv420p.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C4598D1C7030B6004831EC /* renderer_yuv420p.c */; }; - 5450AFCA1E63EA4300568494 /* ijkthreadpool.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A431E15287D00309DD5 /* ijkthreadpool.c */; }; - 5450AFCB1E63EA4300568494 /* IJKAVMoviePlayerController.m in Sources */ = {isa = PBXBuildFile; fileRef = E67C4E0719D15EEA00415CEE /* IJKAVMoviePlayerController.m */; }; - 5450AFCC1E63EA4300568494 /* IJKFFMoviePlayerDef.m in Sources */ = {isa = PBXBuildFile; fileRef = E6F727BA17F2D9D30043623F /* IJKFFMoviePlayerDef.m */; }; - 5450AFCD1E63EA4300568494 /* ijkplayer_ios.m in Sources */ = {isa = PBXBuildFile; fileRef = E66F8E0117EFEEA400354D80 /* ijkplayer_ios.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5450AFCE1E63EA4300568494 /* ffpipeline_ios.c in Sources */ = {isa = PBXBuildFile; fileRef = 454316201A66493700676070 /* ffpipeline_ios.c */; }; - 5450AFCF1E63EA4300568494 /* ijkioprotocol.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A301E1526F800309DD5 /* ijkioprotocol.c */; }; - 5450AFD01E63EA4300568494 /* ijksdl_vout_dummy.c in Sources */ = {isa = PBXBuildFile; fileRef = E63FC27417F013DE003551EB /* ijksdl_vout_dummy.c */; }; - 5450AFD11E63EA4300568494 /* renderer_yuv420sp.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459CA1C70967F004831EC /* renderer_yuv420sp.c */; }; - 5450AFD21E63EA4300568494 /* yuv420p.fsh.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459891C7030B6004831EC /* yuv420p.fsh.c */; }; - 5450AFD31E63EA4300568494 /* ijksdl_error.c in Sources */ = {isa = PBXBuildFile; fileRef = E690400417EAFC6100CFD954 /* ijksdl_error.c */; }; - 5450AFD41E63EA4300568494 /* IJKDeviceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E607FFDF1B7B60F9005F11A6 /* IJKDeviceModel.m */; }; - 5450AFD51E63EA4300568494 /* ijkiocache.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A2C1E1526F800309DD5 /* ijkiocache.c */; }; - 5450AFD61E63EA4300568494 /* ijksdl_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459B81C706A13004831EC /* ijksdl_egl.c */; }; - 5450AFD71E63EA4300568494 /* ijkio.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A291E1526F800309DD5 /* ijkio.c */; }; - 5450AFD81E63EA4300568494 /* IJKAudioKit.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92A2187810C5009EAB56 /* IJKAudioKit.m */; }; - 5450AFD91E63EA4300568494 /* IJKMPMoviePlayerController.m in Sources */ = {isa = PBXBuildFile; fileRef = E66F8DC017EEC65200354D80 /* IJKMPMoviePlayerController.m */; }; - 5450AFDA1E63EA4300568494 /* IJKSDLHudViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E68B7ACE1C1E97B0001DE241 /* IJKSDLHudViewCell.m */; }; - 5450AFDB1E63EA4300568494 /* ijksdl_vout_overlay_videotoolbox.m in Sources */ = {isa = PBXBuildFile; fileRef = 45DB4AA81A5D52AE005CAD41 /* ijksdl_vout_overlay_videotoolbox.m */; }; - 5450AFDC1E63EA4300568494 /* ff_ffpipenode.c in Sources */ = {isa = PBXBuildFile; fileRef = E67B91AD1A3801DB00717EA9 /* ff_ffpipenode.c */; }; - 5450AFDD1E63EA4300568494 /* ijksdl_stdinc.c in Sources */ = {isa = PBXBuildFile; fileRef = E690400A17EAFC6100CFD954 /* ijksdl_stdinc.c */; }; - 5450AFDE1E63EA4300568494 /* IJKVideoToolBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 5407EC281DF7F93B00457BFE /* IJKVideoToolBox.m */; }; - 5450AFDF1E63EA4300568494 /* ijksegment.c in Sources */ = {isa = PBXBuildFile; fileRef = 54A029B41D4700E6001C61C1 /* ijksegment.c */; }; - 5450AFE01E63EA4300568494 /* IJKMediaUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = E6716E4A1807E5FC00B3FBC1 /* IJKMediaUtils.m */; }; - 5450AFE11E63EA4300568494 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459871C7030B6004831EC /* common.c */; }; - 5450AFE21E63EA4300568494 /* ijksdl_aout_ios_audiounit.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92A71878230C009EAB56 /* ijksdl_aout_ios_audiounit.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5450AFE31E63EA4300568494 /* ijklivehook.c in Sources */ = {isa = PBXBuildFile; fileRef = E69BE5701B946FF600AFBA3F /* ijklivehook.c */; }; - 5450AFE41E63EA4300568494 /* ijkurlhook.c in Sources */ = {isa = PBXBuildFile; fileRef = 54A029B51D4700E6001C61C1 /* ijkurlhook.c */; }; - 5450AFE51E63EA4300568494 /* IJKVideoToolBoxSync.m in Sources */ = {isa = PBXBuildFile; fileRef = 5407EC2C1DF81D2600457BFE /* IJKVideoToolBoxSync.m */; }; - 5450AFE61E63EA4300568494 /* IJKMediaPlayback.m in Sources */ = {isa = PBXBuildFile; fileRef = E6F727C117F7C9B90043623F /* IJKMediaPlayback.m */; }; - 5450AFE71E63EA4300568494 /* ijkdict.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A3D1E15287D00309DD5 /* ijkdict.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - 5450AFE81E63EA4300568494 /* ff_ffpipeline.c in Sources */ = {isa = PBXBuildFile; fileRef = E67B91AB1A3801DB00717EA9 /* ff_ffpipeline.c */; }; - 5450AFE91E63EA4300568494 /* IJKSDLAudioKit.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92C718782770009EAB56 /* IJKSDLAudioKit.m */; }; - 5450AFEA1E63EA4300568494 /* mvp.vsh.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459911C7030B6004831EC /* mvp.vsh.c */; }; - 5450AFEB1E63EA4300568494 /* NSString+IJKMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = E698089A1C7EB13A0048A46C /* NSString+IJKMedia.m */; }; - 5450AFEC1E63EA4300568494 /* ijksdl_vout_overlay_ffmpeg.c in Sources */ = {isa = PBXBuildFile; fileRef = E6903FFB17EAFC6100CFD954 /* ijksdl_vout_overlay_ffmpeg.c */; }; - 5450AFED1E63EA4300568494 /* ijksdl_mutex.c in Sources */ = {isa = PBXBuildFile; fileRef = E690400817EAFC6100CFD954 /* ijksdl_mutex.c */; }; - 5450AFEE1E63EA4300568494 /* ijktree.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A451E15287D00309DD5 /* ijktree.c */; }; - 5450AFEF1E63EA4300568494 /* IJKSDLAudioQueueController.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92C11878236A009EAB56 /* IJKSDLAudioQueueController.m */; }; - 5450AFF01E63EA4300568494 /* ijksdl_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = E690400C17EAFC6100CFD954 /* ijksdl_thread.c */; }; - 5450AFF11E63EA4300568494 /* yuv420sp.fsh.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459C61C7095E5004831EC /* yuv420sp.fsh.c */; }; - 5450AFF21E63EA4300568494 /* ff_ffplay.c in Sources */ = {isa = PBXBuildFile; fileRef = E6903FDB17EAFC6100CFD954 /* ff_ffplay.c */; }; - 5450AFF31E63EA4300568494 /* ijksdl_aout.c in Sources */ = {isa = PBXBuildFile; fileRef = E6903FFF17EAFC6100CFD954 /* ijksdl_aout.c */; }; - 5450AFF41E63EA4300568494 /* color.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459861C7030B6004831EC /* color.c */; }; - 5450AFF51E63EA4300568494 /* ijksdl_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = E63FC27017F01143003551EB /* ijksdl_audio.c */; }; - 5450AFF61E63EA4300568494 /* ijksdl_thread_ios.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92AA1878230C009EAB56 /* ijksdl_thread_ios.m */; }; - 5450AFF71E63EA4300568494 /* ijkmeta.c in Sources */ = {isa = PBXBuildFile; fileRef = E6FAD9551A515CE300725002 /* ijkmeta.c */; }; - 5450AFF81E63EA4300568494 /* ijkasync.c in Sources */ = {isa = PBXBuildFile; fileRef = 54A029B11D4700E6001C61C1 /* ijkasync.c */; }; - 5450AFF91E63EA4300568494 /* renderer_yuv420sp_vtb.m in Sources */ = {isa = PBXBuildFile; fileRef = E6E1B9A71C741F72000C6C72 /* renderer_yuv420sp_vtb.m */; }; - 5450AFFA1E63EA4300568494 /* ijkutils.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A471E15287D00309DD5 /* ijkutils.c */; }; - 5450AFFB1E63EA4300568494 /* IJKSDLGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92B71878230C009EAB56 /* IJKSDLGLView.m */; }; - 5450AFFC1E63EA4300568494 /* ijksdl_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = E690400E17EAFC6100CFD954 /* ijksdl_timer.c */; }; - 5450AFFD1E63EA4300568494 /* ijkfifo.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A3F1E15287D00309DD5 /* ijkfifo.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - 5450AFFE1E63EA4300568494 /* shader.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C4598F1C7030B6004831EC /* shader.c */; }; - 5450AFFF1E63EA4300568494 /* ijkioffio.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A2D1E1526F800309DD5 /* ijkioffio.c */; }; - 5450B0001E63EA4300568494 /* renderer.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C4598C1C7030B6004831EC /* renderer.c */; }; - 5450B0011E63EA4300568494 /* ijkioapplication.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A2A1E1526F800309DD5 /* ijkioapplication.c */; }; - 5450B0021E63EA4300568494 /* ijkiomanager.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A2E1E1526F800309DD5 /* ijkiomanager.c */; }; - 5450B0031E63EA4300568494 /* ijkplayer.c in Sources */ = {isa = PBXBuildFile; fileRef = E66F8DEF17EFEA9400354D80 /* ijkplayer.c */; }; - 5450B0041E63EA4300568494 /* IJKFFOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = E62139BD180FA89A00553533 /* IJKFFOptions.m */; }; - 5450B0051E63EA4300568494 /* IJKSDLAudioUnitController.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92AE1878230C009EAB56 /* IJKSDLAudioUnitController.m */; }; - 5450B0061E63EA4300568494 /* IJKFFMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = E6DBD3881C8941EB0058E4FB /* IJKFFMonitor.m */; }; - 5450B0071E63EA4300568494 /* IJKFFMoviePlayerController.m in Sources */ = {isa = PBXBuildFile; fileRef = E66F8DE617EFD9C300354D80 /* IJKFFMoviePlayerController.m */; }; - 5450B0081E63EA4300568494 /* IJKNotificationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E698089F1C7EB2040048A46C /* IJKNotificationManager.m */; }; - 5450B0091E63EA4300568494 /* IJKMediaModule.m in Sources */ = {isa = PBXBuildFile; fileRef = E672D6F218D3445100C51FF9 /* IJKMediaModule.m */; }; - 5450B00A1E63EA4300568494 /* ff_cmdutils.c in Sources */ = {isa = PBXBuildFile; fileRef = E6903FD517EAFC6100CFD954 /* ff_cmdutils.c */; }; - 5450B00B1E63EA4300568494 /* IJKVideoToolBoxAsync.m in Sources */ = {isa = PBXBuildFile; fileRef = 4543162A1A66497900676070 /* IJKVideoToolBoxAsync.m */; }; - 5450B00C1E63EA4300568494 /* renderer_yuv444p10le.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C4598E1C7030B6004831EC /* renderer_yuv444p10le.c */; }; - 5450B00D1E63EA4300568494 /* ijkstl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 54CF8A411E15287D00309DD5 /* ijkstl.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - 5450B00E1E63EA4300568494 /* image_convert.c in Sources */ = {isa = PBXBuildFile; fileRef = E6903FF117EAFC6100CFD954 /* image_convert.c */; }; - 5450B00F1E63EA4300568494 /* rgb.fsh.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459C21C708E60004831EC /* rgb.fsh.c */; }; - 5450B0101E63EA4300568494 /* ffpipenode_ios_videotoolbox_vdec.m in Sources */ = {isa = PBXBuildFile; fileRef = 454316231A66493700676070 /* ffpipenode_ios_videotoolbox_vdec.m */; }; - 5450B0111E63EA4300568494 /* IJKAVPlayerLayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = E67C4E0419D15B3200415CEE /* IJKAVPlayerLayerView.m */; }; - 5450B0121E63EA4300568494 /* IJKSDLHudViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E68B7AC41C1E7F20001DE241 /* IJKSDLHudViewController.m */; }; - 5450B0131E63EA4300568494 /* ijksdl_vout_ios_gles2.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92AC1878230C009EAB56 /* ijksdl_vout_ios_gles2.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5450B0141E63EA4300568494 /* ijklongurl.c in Sources */ = {isa = PBXBuildFile; fileRef = 54A029B31D4700E6001C61C1 /* ijklongurl.c */; }; - 5450B0151E63EA4300568494 /* renderer_rgb.c in Sources */ = {isa = PBXBuildFile; fileRef = E6C459BE1C708CAF004831EC /* renderer_rgb.c */; }; - 5450B0161E63EA4300568494 /* ffpipeline_ffplay.c in Sources */ = {isa = PBXBuildFile; fileRef = E67B91B21A3801E600717EA9 /* ffpipeline_ffplay.c */; }; - 5450B0181E63EA4300568494 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E653C6EF1BCE5A750016835A /* libavcodec.a */; }; - 5450B0191E63EA4300568494 /* libavfilter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E653C6F01BCE5A750016835A /* libavfilter.a */; }; - 5450B01A1E63EA4300568494 /* libavformat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E653C6F11BCE5A750016835A /* libavformat.a */; }; - 5450B01B1E63EA4300568494 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E653C6F21BCE5A750016835A /* libavutil.a */; }; - 5450B01C1E63EA4300568494 /* libswresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E653C6F31BCE5A750016835A /* libswresample.a */; }; - 5450B01D1E63EA4300568494 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E653C6F41BCE5A750016835A /* libswscale.a */; }; - 5450B01F1E63EA4300568494 /* IJKFFMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = E6DBD3871C8941EB0058E4FB /* IJKFFMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B0201E63EA4300568494 /* ijkiourl.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A321E1526F800309DD5 /* ijkiourl.h */; }; - 5450B0211E63EA4300568494 /* IJKFFMoviePlayerController.h in Headers */ = {isa = PBXBuildFile; fileRef = E66F8DE517EFD9C300354D80 /* IJKFFMoviePlayerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B0221E63EA4300568494 /* IJKSDLHudViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E68B7AC31C1E7F20001DE241 /* IJKSDLHudViewController.h */; }; - 5450B0231E63EA4300568494 /* IJKFFOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = E62139BC180FA89A00553533 /* IJKFFOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B0241E63EA4300568494 /* ijkutils.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A481E15287D00309DD5 /* ijkutils.h */; }; - 5450B0251E63EA4300568494 /* ijkdict.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A3E1E15287D00309DD5 /* ijkdict.h */; }; - 5450B0261E63EA4300568494 /* IJKAVMoviePlayerController.h in Headers */ = {isa = PBXBuildFile; fileRef = E67C4E0619D15EEA00415CEE /* IJKAVMoviePlayerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B0271E63EA4300568494 /* ijksdl_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = E6C459831C7030AA004831EC /* ijksdl_gles2.h */; }; - 5450B0281E63EA4300568494 /* ijksdl_egl.h in Headers */ = {isa = PBXBuildFile; fileRef = E6C459B91C706A13004831EC /* ijksdl_egl.h */; }; - 5450B0291E63EA4300568494 /* ff_ffplay_options.h in Headers */ = {isa = PBXBuildFile; fileRef = E6C459BC1C7089AB004831EC /* ff_ffplay_options.h */; }; - 5450B02B1E63EA4300568494 /* IJKKVOController.h in Headers */ = {isa = PBXBuildFile; fileRef = E65DC3B719D93D5F004F8A08 /* IJKKVOController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B02C1E63EA4300568494 /* IJKNotificationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E698089E1C7EB2040048A46C /* IJKNotificationManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B02D1E63EA4300568494 /* ijkthreadpool.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A441E15287D00309DD5 /* ijkthreadpool.h */; }; - 5450B02E1E63EA4300568494 /* ijkiomanager.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A2F1E1526F800309DD5 /* ijkiomanager.h */; }; - 5450B02F1E63EA4300568494 /* ijkstl.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A421E15287D00309DD5 /* ijkstl.h */; }; - 5450B0301E63EA4300568494 /* IJKMediaModule.h in Headers */ = {isa = PBXBuildFile; fileRef = E672D6F118D3445100C51FF9 /* IJKMediaModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B0311E63EA4300568494 /* ijkfifo.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A401E15287D00309DD5 /* ijkfifo.h */; }; - 5450B0321E63EA4300568494 /* ijktree.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A461E15287D00309DD5 /* ijktree.h */; }; - 5450B0331E63EA4300568494 /* opt.h in Headers */ = {isa = PBXBuildFile; fileRef = E69BE54F1B93FED300AFBA3F /* opt.h */; }; - 5450B0341E63EA4300568494 /* ijkioapplication.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A2B1E1526F800309DD5 /* ijkioapplication.h */; }; - 5450B0351E63EA4300568494 /* ijkioprotocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 54CF8A311E1526F800309DD5 /* ijkioprotocol.h */; }; - 5450B0361E63EA4300568494 /* IJKMediaPlayback.h in Headers */ = {isa = PBXBuildFile; fileRef = E6903EC117EAF6C500CFD954 /* IJKMediaPlayback.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B0371E63EA4300568494 /* IJKMediaPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = E66F8DC217EECB1E00354D80 /* IJKMediaPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B0381E63EA4300568494 /* internal.h in Headers */ = {isa = PBXBuildFile; fileRef = E6C4598B1C7030B6004831EC /* internal.h */; }; - 5450B0391E63EA4300568494 /* IJKVideoToolBoxSync.h in Headers */ = {isa = PBXBuildFile; fileRef = 5407EC2B1DF81D2600457BFE /* IJKVideoToolBoxSync.h */; }; - 5450B03A1E63EA4300568494 /* IJKMPMoviePlayerController.h in Headers */ = {isa = PBXBuildFile; fileRef = E66F8DBF17EEC65200354D80 /* IJKMPMoviePlayerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5450B03B1E63EA4300568494 /* ijkavformat.h in Headers */ = {isa = PBXBuildFile; fileRef = 54A029B21D4700E6001C61C1 /* ijkavformat.h */; }; - 5450B03C1E63EA4300568494 /* IJKSDLHudViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E68B7ACD1C1E97B0001DE241 /* IJKSDLHudViewCell.h */; }; - 5450B03D1E63EA4300568494 /* IJKVideoToolBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 5407EC271DF7F93B00457BFE /* IJKVideoToolBox.h */; }; - 5450B03E1E63EA4300568494 /* NSString+IJKMedia.h in Headers */ = {isa = PBXBuildFile; fileRef = E69808991C7EB13A0048A46C /* NSString+IJKMedia.h */; }; - 5450B0451E63EAB700568494 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5450AF8B1E63E59300568494 /* libcrypto.a */; }; - 5450B0461E63EAB700568494 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5450AF8C1E63E59300568494 /* libssl.a */; }; - 5450B0471E63EABC00568494 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5450AF8F1E63E59800568494 /* libz.tbd */; }; - 549385C41E640456001AE08D /* IJKMediaFrameworkWithSSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 5450AF9B1E63E65700568494 /* IJKMediaFrameworkWithSSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; 54A029B61D4700E6001C61C1 /* ijkasync.c in Sources */ = {isa = PBXBuildFile; fileRef = 54A029B11D4700E6001C61C1 /* ijkasync.c */; }; 54A029B71D4700E6001C61C1 /* ijkavformat.h in Headers */ = {isa = PBXBuildFile; fileRef = 54A029B21D4700E6001C61C1 /* ijkavformat.h */; }; 54A029B81D4700E6001C61C1 /* ijklongurl.c in Sources */ = {isa = PBXBuildFile; fileRef = 54A029B31D4700E6001C61C1 /* ijklongurl.c */; }; @@ -174,8 +50,6 @@ E653C6FE1BCE5A750016835A /* libswresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E653C6F31BCE5A750016835A /* libswresample.a */; }; E653C7001BCE5A750016835A /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E653C6F41BCE5A750016835A /* libswscale.a */; }; E654EA8F1B6B27E600B0F2D0 /* IJKMediaFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = E654EA8E1B6B27E600B0F2D0 /* IJKMediaFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E654EA951B6B27E600B0F2D0 /* IJKMediaFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E654EA8A1B6B27E600B0F2D0 /* IJKMediaFramework.framework */; }; - E654EA9C1B6B27E600B0F2D0 /* IJKMediaFrameworkTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E654EA9B1B6B27E600B0F2D0 /* IJKMediaFrameworkTests.m */; }; E654EAA31B6B283700B0F2D0 /* IJKAudioKit.m in Sources */ = {isa = PBXBuildFile; fileRef = E6EE92A2187810C5009EAB56 /* IJKAudioKit.m */; }; E654EAA41B6B283700B0F2D0 /* IJKMediaModule.m in Sources */ = {isa = PBXBuildFile; fileRef = E672D6F218D3445100C51FF9 /* IJKMediaModule.m */; }; E654EAA51B6B283700B0F2D0 /* IJKMediaPlayback.m in Sources */ = {isa = PBXBuildFile; fileRef = E6F727C117F7C9B90043623F /* IJKMediaPlayback.m */; }; @@ -260,17 +134,9 @@ E6E1B9A81C741F72000C6C72 /* renderer_yuv420sp_vtb.m in Sources */ = {isa = PBXBuildFile; fileRef = E6E1B9A71C741F72000C6C72 /* renderer_yuv420sp_vtb.m */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - E654EA961B6B27E600B0F2D0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E6903EB117EAF6C500CFD954 /* Project object */; - proxyType = 1; - remoteGlobalIDString = E654EA891B6B27E600B0F2D0; - remoteInfo = IJKMediaFramework; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXFileReference section */ + 2551A864225D8EA4009873DC /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = ../build/universal/lib/libssl.a; sourceTree = ""; }; + 2551A865225D8EA5009873DC /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = ../build/universal/lib/libcrypto.a; sourceTree = ""; }; 454316201A66493700676070 /* ffpipeline_ios.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ffpipeline_ios.c; path = ijkmedia/ijkplayer/ios/pipeline/ffpipeline_ios.c; sourceTree = ""; }; 454316211A66493700676070 /* ffpipeline_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ffpipeline_ios.h; path = ijkmedia/ijkplayer/ios/pipeline/ffpipeline_ios.h; sourceTree = ""; }; 454316221A66493700676070 /* ffpipenode_ios_videotoolbox_vdec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ffpipenode_ios_videotoolbox_vdec.h; path = ijkmedia/ijkplayer/ios/pipeline/ffpipenode_ios_videotoolbox_vdec.h; sourceTree = ""; }; @@ -289,7 +155,6 @@ 5450AF8C1E63E59300568494 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "../../../.warehouse/ff3.2--ijk0.7.6--20170203--001/build/universal/lib/libssl.a"; sourceTree = ""; }; 5450AF8F1E63E59800568494 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 5450AF9B1E63E65700568494 /* IJKMediaFrameworkWithSSL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IJKMediaFrameworkWithSSL.h; sourceTree = ""; }; - 5450B0431E63EA4300568494 /* IJKMediaFrameworkWithSSL.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IJKMediaFrameworkWithSSL.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5450B0441E63EA4300568494 /* IJKMediaFrameworkWithSSL.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = IJKMediaFrameworkWithSSL.plist; path = /Users/zhangxinzheng/Documents/bilibili/BiliShell/contrib/ijkplayer/ios/IJKMediaPlayer/IJKMediaFrameworkWithSSL.plist; sourceTree = ""; }; 54A029B11D4700E6001C61C1 /* ijkasync.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ijkasync.c; sourceTree = ""; }; 54A029B21D4700E6001C61C1 /* ijkavformat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijkavformat.h; sourceTree = ""; }; @@ -335,7 +200,6 @@ E654EA8A1B6B27E600B0F2D0 /* IJKMediaFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IJKMediaFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E654EA8D1B6B27E600B0F2D0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; E654EA8E1B6B27E600B0F2D0 /* IJKMediaFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IJKMediaFramework.h; sourceTree = ""; }; - E654EA941B6B27E600B0F2D0 /* IJKMediaFrameworkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IJKMediaFrameworkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; E654EA9A1B6B27E600B0F2D0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; E654EA9B1B6B27E600B0F2D0 /* IJKMediaFrameworkTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IJKMediaFrameworkTests.m; sourceTree = ""; }; E65DC3B719D93D5F004F8A08 /* IJKKVOController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IJKKVOController.h; path = IJKMediaPlayer/IJKKVOController.h; sourceTree = ""; }; @@ -467,26 +331,12 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 5450B0171E63EA4300568494 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5450B0471E63EABC00568494 /* libz.tbd in Frameworks */, - 5450B0451E63EAB700568494 /* libcrypto.a in Frameworks */, - 5450B0461E63EAB700568494 /* libssl.a in Frameworks */, - 5450B0181E63EA4300568494 /* libavcodec.a in Frameworks */, - 5450B0191E63EA4300568494 /* libavfilter.a in Frameworks */, - 5450B01A1E63EA4300568494 /* libavformat.a in Frameworks */, - 5450B01B1E63EA4300568494 /* libavutil.a in Frameworks */, - 5450B01C1E63EA4300568494 /* libswresample.a in Frameworks */, - 5450B01D1E63EA4300568494 /* libswscale.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E654EA861B6B27E600B0F2D0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 2551A866225D8EA5009873DC /* libssl.a in Frameworks */, + 2551A867225D8EA5009873DC /* libcrypto.a in Frameworks */, E653C6F61BCE5A750016835A /* libavcodec.a in Frameworks */, E653C6F81BCE5A750016835A /* libavfilter.a in Frameworks */, E653C6FA1BCE5A750016835A /* libavformat.a in Frameworks */, @@ -496,14 +346,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E654EA911B6B27E600B0F2D0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E654EA951B6B27E600B0F2D0 /* IJKMediaFramework.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -647,8 +489,6 @@ isa = PBXGroup; children = ( E654EA8A1B6B27E600B0F2D0 /* IJKMediaFramework.framework */, - E654EA941B6B27E600B0F2D0 /* IJKMediaFrameworkTests.xctest */, - 5450B0431E63EA4300568494 /* IJKMediaFrameworkWithSSL.framework */, ); name = Products; sourceTree = ""; @@ -656,6 +496,8 @@ E6903EBB17EAF6C500CFD954 /* Frameworks */ = { isa = PBXGroup; children = ( + 2551A865225D8EA5009873DC /* libcrypto.a */, + 2551A864225D8EA4009873DC /* libssl.a */, 5450AF8F1E63E59800568494 /* libz.tbd */, 5450AF8B1E63E59300568494 /* libcrypto.a */, 5450AF8C1E63E59300568494 /* libssl.a */, @@ -954,46 +796,6 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 5450B01E1E63EA4300568494 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 5450B01F1E63EA4300568494 /* IJKFFMonitor.h in Headers */, - 5450B0201E63EA4300568494 /* ijkiourl.h in Headers */, - 5450B0211E63EA4300568494 /* IJKFFMoviePlayerController.h in Headers */, - 5450B0221E63EA4300568494 /* IJKSDLHudViewController.h in Headers */, - 5450B0231E63EA4300568494 /* IJKFFOptions.h in Headers */, - 5450B0241E63EA4300568494 /* ijkutils.h in Headers */, - 5450B0251E63EA4300568494 /* ijkdict.h in Headers */, - 5450B0261E63EA4300568494 /* IJKAVMoviePlayerController.h in Headers */, - 5450B0271E63EA4300568494 /* ijksdl_gles2.h in Headers */, - 5450B0281E63EA4300568494 /* ijksdl_egl.h in Headers */, - 549385C41E640456001AE08D /* IJKMediaFrameworkWithSSL.h in Headers */, - 5450B0291E63EA4300568494 /* ff_ffplay_options.h in Headers */, - 5450B02B1E63EA4300568494 /* IJKKVOController.h in Headers */, - 5450B02C1E63EA4300568494 /* IJKNotificationManager.h in Headers */, - 5450B02D1E63EA4300568494 /* ijkthreadpool.h in Headers */, - 5450B02E1E63EA4300568494 /* ijkiomanager.h in Headers */, - 5450B02F1E63EA4300568494 /* ijkstl.h in Headers */, - 4D32BC821F906E3B00CE9F03 /* IJKSDLGLViewProtocol.h in Headers */, - 5450B0301E63EA4300568494 /* IJKMediaModule.h in Headers */, - 5450B0311E63EA4300568494 /* ijkfifo.h in Headers */, - 5450B0321E63EA4300568494 /* ijktree.h in Headers */, - 5450B0331E63EA4300568494 /* opt.h in Headers */, - 5450B0341E63EA4300568494 /* ijkioapplication.h in Headers */, - 5450B0351E63EA4300568494 /* ijkioprotocol.h in Headers */, - 5450B0361E63EA4300568494 /* IJKMediaPlayback.h in Headers */, - 5450B0371E63EA4300568494 /* IJKMediaPlayer.h in Headers */, - 5450B0381E63EA4300568494 /* internal.h in Headers */, - 5450B0391E63EA4300568494 /* IJKVideoToolBoxSync.h in Headers */, - 5450B03A1E63EA4300568494 /* IJKMPMoviePlayerController.h in Headers */, - 5450B03B1E63EA4300568494 /* ijkavformat.h in Headers */, - 5450B03C1E63EA4300568494 /* IJKSDLHudViewCell.h in Headers */, - 5450B03D1E63EA4300568494 /* IJKVideoToolBox.h in Headers */, - 5450B03E1E63EA4300568494 /* NSString+IJKMedia.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E654EA871B6B27E600B0F2D0 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1037,25 +839,6 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 5450AFC11E63EA4300568494 /* IJKMediaFrameworkWithSSL */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5450B0401E63EA4300568494 /* Build configuration list for PBXNativeTarget "IJKMediaFrameworkWithSSL" */; - buildPhases = ( - 5450AFC21E63EA4300568494 /* ijkversion.h */, - 5450AFC31E63EA4300568494 /* Sources */, - 5450B0171E63EA4300568494 /* Frameworks */, - 5450B01E1E63EA4300568494 /* Headers */, - 5450B03F1E63EA4300568494 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = IJKMediaFrameworkWithSSL; - productName = IJKMediaFramework; - productReference = 5450B0431E63EA4300568494 /* IJKMediaFrameworkWithSSL.framework */; - productType = "com.apple.product-type.framework"; - }; E654EA891B6B27E600B0F2D0 /* IJKMediaFramework */ = { isa = PBXNativeTarget; buildConfigurationList = E654EAA11B6B27E600B0F2D0 /* Build configuration list for PBXNativeTarget "IJKMediaFramework" */; @@ -1075,24 +858,6 @@ productReference = E654EA8A1B6B27E600B0F2D0 /* IJKMediaFramework.framework */; productType = "com.apple.product-type.framework"; }; - E654EA931B6B27E600B0F2D0 /* IJKMediaFrameworkTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = E654EAA21B6B27E600B0F2D0 /* Build configuration list for PBXNativeTarget "IJKMediaFrameworkTests" */; - buildPhases = ( - E654EA901B6B27E600B0F2D0 /* Sources */, - E654EA911B6B27E600B0F2D0 /* Frameworks */, - E654EA921B6B27E600B0F2D0 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - E654EA971B6B27E600B0F2D0 /* PBXTargetDependency */, - ); - name = IJKMediaFrameworkTests; - productName = IJKMediaFrameworkTests; - productReference = E654EA941B6B27E600B0F2D0 /* IJKMediaFrameworkTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -1105,9 +870,6 @@ E654EA891B6B27E600B0F2D0 = { CreatedOnToolsVersion = 6.4; }; - E654EA931B6B27E600B0F2D0 = { - CreatedOnToolsVersion = 6.4; - }; }; }; buildConfigurationList = E6903EB417EAF6C500CFD954 /* Build configuration list for PBXProject "IJKMediaPlayer" */; @@ -1115,6 +877,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = E6903EB017EAF6C500CFD954; @@ -1123,20 +886,11 @@ projectRoot = ""; targets = ( E654EA891B6B27E600B0F2D0 /* IJKMediaFramework */, - 5450AFC11E63EA4300568494 /* IJKMediaFrameworkWithSSL */, - E654EA931B6B27E600B0F2D0 /* IJKMediaFrameworkTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 5450B03F1E63EA4300568494 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; E654EA881B6B27E600B0F2D0 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1144,13 +898,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E654EA921B6B27E600B0F2D0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -1168,114 +915,9 @@ shellPath = /bin/sh; shellScript = "sh \"${PROJECT_DIR}/../../ijkmedia/ijkplayer/version.sh\" \"${PROJECT_DIR}/../../ijkmedia/ijkplayer\" \"ijkversion.h\""; }; - 5450AFC21E63EA4300568494 /* ijkversion.h */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = ijkversion.h; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "sh \"${PROJECT_DIR}/../../ijkmedia/ijkplayer/version.sh\" \"${PROJECT_DIR}/../../ijkmedia/ijkplayer\" \"ijkversion.h\""; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 5450AFC31E63EA4300568494 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5450AFC41E63EA4300568494 /* IJKKVOController.m in Sources */, - 5450AFC51E63EA4300568494 /* ijksdl_vout.c in Sources */, - 5450AFC61E63EA4300568494 /* yuv444p10le.fsh.c in Sources */, - 5450AFC71E63EA4300568494 /* allformats.c in Sources */, - 5450AFC81E63EA4300568494 /* ffpipenode_ffplay_vdec.c in Sources */, - 5450AFC91E63EA4300568494 /* renderer_yuv420p.c in Sources */, - 5450AFCA1E63EA4300568494 /* ijkthreadpool.c in Sources */, - 5450AFCB1E63EA4300568494 /* IJKAVMoviePlayerController.m in Sources */, - 5450AFCC1E63EA4300568494 /* IJKFFMoviePlayerDef.m in Sources */, - 5450AFCD1E63EA4300568494 /* ijkplayer_ios.m in Sources */, - 5450AFCE1E63EA4300568494 /* ffpipeline_ios.c in Sources */, - 5450AFCF1E63EA4300568494 /* ijkioprotocol.c in Sources */, - 5450AFD01E63EA4300568494 /* ijksdl_vout_dummy.c in Sources */, - 5450AFD11E63EA4300568494 /* renderer_yuv420sp.c in Sources */, - 5450AFD21E63EA4300568494 /* yuv420p.fsh.c in Sources */, - 5450AFD31E63EA4300568494 /* ijksdl_error.c in Sources */, - 5450AFD41E63EA4300568494 /* IJKDeviceModel.m in Sources */, - 5450AFD51E63EA4300568494 /* ijkiocache.c in Sources */, - 5450AFD61E63EA4300568494 /* ijksdl_egl.c in Sources */, - 5450AFD71E63EA4300568494 /* ijkio.c in Sources */, - 5450AFD81E63EA4300568494 /* IJKAudioKit.m in Sources */, - 5450AFD91E63EA4300568494 /* IJKMPMoviePlayerController.m in Sources */, - 5450AFDA1E63EA4300568494 /* IJKSDLHudViewCell.m in Sources */, - 5450AFDB1E63EA4300568494 /* ijksdl_vout_overlay_videotoolbox.m in Sources */, - 5450AFDC1E63EA4300568494 /* ff_ffpipenode.c in Sources */, - 5450AFDD1E63EA4300568494 /* ijksdl_stdinc.c in Sources */, - 5450AFDE1E63EA4300568494 /* IJKVideoToolBox.m in Sources */, - 5450AFDF1E63EA4300568494 /* ijksegment.c in Sources */, - 5450AFE01E63EA4300568494 /* IJKMediaUtils.m in Sources */, - 5450AFE11E63EA4300568494 /* common.c in Sources */, - 5450AFE21E63EA4300568494 /* ijksdl_aout_ios_audiounit.m in Sources */, - 5450AFE31E63EA4300568494 /* ijklivehook.c in Sources */, - 5450AFE41E63EA4300568494 /* ijkurlhook.c in Sources */, - 5450AFE51E63EA4300568494 /* IJKVideoToolBoxSync.m in Sources */, - 5450AFE61E63EA4300568494 /* IJKMediaPlayback.m in Sources */, - 5450AFE71E63EA4300568494 /* ijkdict.c in Sources */, - 5450AFE81E63EA4300568494 /* ff_ffpipeline.c in Sources */, - 4DA7F68A1F2B1E270032A499 /* ijkiourlhook.c in Sources */, - 5450AFE91E63EA4300568494 /* IJKSDLAudioKit.m in Sources */, - 5450AFEA1E63EA4300568494 /* mvp.vsh.c in Sources */, - 5450AFEB1E63EA4300568494 /* NSString+IJKMedia.m in Sources */, - 5450AFEC1E63EA4300568494 /* ijksdl_vout_overlay_ffmpeg.c in Sources */, - 5450AFED1E63EA4300568494 /* ijksdl_mutex.c in Sources */, - 5450AFEE1E63EA4300568494 /* ijktree.c in Sources */, - 5450AFEF1E63EA4300568494 /* IJKSDLAudioQueueController.m in Sources */, - 5450AFF01E63EA4300568494 /* ijksdl_thread.c in Sources */, - 5450AFF11E63EA4300568494 /* yuv420sp.fsh.c in Sources */, - 5450AFF21E63EA4300568494 /* ff_ffplay.c in Sources */, - 5450AFF31E63EA4300568494 /* ijksdl_aout.c in Sources */, - 5450AFF41E63EA4300568494 /* color.c in Sources */, - 5450AFF51E63EA4300568494 /* ijksdl_audio.c in Sources */, - 5450AFF61E63EA4300568494 /* ijksdl_thread_ios.m in Sources */, - 5450AFF71E63EA4300568494 /* ijkmeta.c in Sources */, - 5450AFF81E63EA4300568494 /* ijkasync.c in Sources */, - 5450AFF91E63EA4300568494 /* renderer_yuv420sp_vtb.m in Sources */, - 5450AFFA1E63EA4300568494 /* ijkutils.c in Sources */, - 5450AFFB1E63EA4300568494 /* IJKSDLGLView.m in Sources */, - 5450AFFC1E63EA4300568494 /* ijksdl_timer.c in Sources */, - 5450AFFD1E63EA4300568494 /* ijkfifo.c in Sources */, - 5450AFFE1E63EA4300568494 /* shader.c in Sources */, - 5450AFFF1E63EA4300568494 /* ijkioffio.c in Sources */, - 5450B0001E63EA4300568494 /* renderer.c in Sources */, - 5450B0011E63EA4300568494 /* ijkioapplication.c in Sources */, - 5450B0021E63EA4300568494 /* ijkiomanager.c in Sources */, - 5450B0031E63EA4300568494 /* ijkplayer.c in Sources */, - 5450B0041E63EA4300568494 /* IJKFFOptions.m in Sources */, - 5450B0051E63EA4300568494 /* IJKSDLAudioUnitController.m in Sources */, - 5450B0061E63EA4300568494 /* IJKFFMonitor.m in Sources */, - 5450B0071E63EA4300568494 /* IJKFFMoviePlayerController.m in Sources */, - 5450B0081E63EA4300568494 /* IJKNotificationManager.m in Sources */, - 5450B0091E63EA4300568494 /* IJKMediaModule.m in Sources */, - 5450B00A1E63EA4300568494 /* ff_cmdutils.c in Sources */, - 5450B00B1E63EA4300568494 /* IJKVideoToolBoxAsync.m in Sources */, - 5450B00C1E63EA4300568494 /* renderer_yuv444p10le.c in Sources */, - 5450B00D1E63EA4300568494 /* ijkstl.cpp in Sources */, - 5450B00E1E63EA4300568494 /* image_convert.c in Sources */, - 5450B00F1E63EA4300568494 /* rgb.fsh.c in Sources */, - 5450B0101E63EA4300568494 /* ffpipenode_ios_videotoolbox_vdec.m in Sources */, - 5450B0111E63EA4300568494 /* IJKAVPlayerLayerView.m in Sources */, - 5450B0121E63EA4300568494 /* IJKSDLHudViewController.m in Sources */, - 5450B0131E63EA4300568494 /* ijksdl_vout_ios_gles2.m in Sources */, - 5450B0141E63EA4300568494 /* ijklongurl.c in Sources */, - 5450B0151E63EA4300568494 /* renderer_rgb.c in Sources */, - 5450B0161E63EA4300568494 /* ffpipeline_ffplay.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E654EA851B6B27E600B0F2D0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1367,131 +1009,9 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E654EA901B6B27E600B0F2D0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E654EA9C1B6B27E600B0F2D0 /* IJKMediaFrameworkTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - E654EA971B6B27E600B0F2D0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = E654EA891B6B27E600B0F2D0 /* IJKMediaFramework */; - targetProxy = E654EA961B6B27E600B0F2D0 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - /* Begin XCBuildConfiguration section */ - 5450B0411E63EA4300568494 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CURRENT_PROJECT_VERSION = 0.8.8; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - ../build/universal/include, - IJKMediaPlayer/ijkmedia, - ../../ijkmedia, - ); - INFOPLIST_FILE = "$(SRCROOT)/IJKMediaFrameworkWithSSL.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../build/universal/lib\"", - ); - MACH_O_TYPE = mh_dylib; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ( - "-read_only_relocs", - suppress, - ); - PRODUCT_BUNDLE_IDENTIFIER = "tv.danmaku.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 5450B0421E63EA4300568494 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CURRENT_PROJECT_VERSION = 0.8.8; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - ../build/universal/include, - IJKMediaPlayer/ijkmedia, - ../../ijkmedia, - ); - INFOPLIST_FILE = "$(SRCROOT)/IJKMediaFrameworkWithSSL.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../build/universal/lib\"", - ); - MACH_O_TYPE = mh_dylib; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ( - "-read_only_relocs", - suppress, - ); - PRODUCT_BUNDLE_IDENTIFIER = "tv.danmaku.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; E654EA9D1B6B27E600B0F2D0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1588,69 +1108,6 @@ }; name = Release; }; - E654EA9F1B6B27E600B0F2D0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - INFOPLIST_FILE = IJKMediaFrameworkTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "tv.danmaku.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - E654EAA01B6B27E600B0F2D0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - INFOPLIST_FILE = IJKMediaFrameworkTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "tv.danmaku.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; E6903EC517EAF6C500CFD954 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1724,15 +1181,6 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 5450B0401E63EA4300568494 /* Build configuration list for PBXNativeTarget "IJKMediaFrameworkWithSSL" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5450B0411E63EA4300568494 /* Debug */, - 5450B0421E63EA4300568494 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; E654EAA11B6B27E600B0F2D0 /* Build configuration list for PBXNativeTarget "IJKMediaFramework" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1742,15 +1190,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E654EAA21B6B27E600B0F2D0 /* Build configuration list for PBXNativeTarget "IJKMediaFrameworkTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E654EA9F1B6B27E600B0F2D0 /* Debug */, - E654EAA01B6B27E600B0F2D0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; E6903EB417EAF6C500CFD954 /* Build configuration list for PBXProject "IJKMediaPlayer" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m index c3162776e0..dcb141765b 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m @@ -28,54 +28,68 @@ #include "ijksdl/ios/ijksdl_ios.h" #include "ijksdl/ijksdl_gles2.h" +static void mainExecute(dispatch_block_t block) { + if ([NSThread isMainThread]) { + if (block) { + block(); + } + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + if (block) { + block(); + } + }); + } +} + typedef NS_ENUM(NSInteger, IJKSDLGLViewApplicationState) { IJKSDLGLViewApplicationUnknownState = 0, IJKSDLGLViewApplicationForegroundState = 1, IJKSDLGLViewApplicationBackgroundState = 2 }; -@interface IJKSDLGLView() -@property(atomic,strong) NSRecursiveLock *glActiveLock; + +@interface IJKSDLGLView () +@property(atomic, strong) NSRecursiveLock *glActiveLock; @property(atomic) BOOL glActivePaused; @end @implementation IJKSDLGLView { - EAGLContext *_context; - GLuint _framebuffer; - GLuint _renderbuffer; - GLint _backingWidth; - GLint _backingHeight; + EAGLContext *_context; + GLuint _framebuffer; + GLuint _renderbuffer; + GLint _backingWidth; + GLint _backingHeight; + + int _frameCount; - int _frameCount; - - int64_t _lastFrameTime; + int64_t _lastFrameTime; IJK_GLES2_Renderer *_renderer; - int _rendererGravity; + int _rendererGravity; - BOOL _isRenderBufferInvalidated; + BOOL _isRenderBufferInvalidated; - int _tryLockErrorCount; - BOOL _didSetupGL; - BOOL _didStopGL; - BOOL _didLockedDueToMovedToWindow; - BOOL _shouldLockWhileBeingMovedToWindow; + int _tryLockErrorCount; + BOOL _didSetupGL; + BOOL _didStopGL; + BOOL _didLockedDueToMovedToWindow; + BOOL _shouldLockWhileBeingMovedToWindow; NSMutableArray *_registeredNotifications; IJKSDLGLViewApplicationState _applicationState; + UIViewContentMode _mode; } -@synthesize isThirdGLView = _isThirdGLView; -@synthesize scaleFactor = _scaleFactor; -@synthesize fps = _fps; +@synthesize isThirdGLView = _isThirdGLView; +@synthesize scaleFactor = _scaleFactor; +@synthesize fps = _fps; -+ (Class) layerClass -{ - return [CAEAGLLayer class]; ++ (Class)layerClass { + return [CAEAGLLayer class]; } -- (id) initWithFrame:(CGRect)frame -{ +- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { _tryLockErrorCount = 0; @@ -92,8 +106,7 @@ - (id) initWithFrame:(CGRect)frame return self; } -- (void)willMoveToWindow:(UIWindow *)newWindow -{ +- (void)willMoveToWindow:(UIWindow *)newWindow { if (!_shouldLockWhileBeingMovedToWindow) { [super willMoveToWindow:newWindow]; return; @@ -105,8 +118,7 @@ - (void)willMoveToWindow:(UIWindow *)newWindow [super willMoveToWindow:newWindow]; } -- (void)didMoveToWindow -{ +- (void)didMoveToWindow { [super didMoveToWindow]; if (self.window && _didLockedDueToMovedToWindow) { [self unlockGLActive]; @@ -114,13 +126,12 @@ - (void)didMoveToWindow } } -- (BOOL)setupEAGLContext:(EAGLContext *)context -{ +- (BOOL)setupEAGLContext:(EAGLContext *)context { glGenFramebuffers(1, &_framebuffer); glGenRenderbuffers(1, &_renderbuffer); glBindFramebuffer(GL_FRAMEBUFFER, _framebuffer); glBindRenderbuffer(GL_RENDERBUFFER, _renderbuffer); - [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer*)self.layer]; + [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *) self.layer]; glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &_backingWidth); glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &_backingHeight); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, _renderbuffer); @@ -140,22 +151,20 @@ - (BOOL)setupEAGLContext:(EAGLContext *)context return YES; } -- (CAEAGLLayer *)eaglLayer -{ - return (CAEAGLLayer*) self.layer; +- (CAEAGLLayer *)eaglLayer { + return (CAEAGLLayer *) self.layer; } -- (BOOL)setupGL -{ +- (BOOL)setupGL { if (_didSetupGL) return YES; - CAEAGLLayer *eaglLayer = (CAEAGLLayer*) self.layer; + CAEAGLLayer *eaglLayer = (CAEAGLLayer *) self.layer; eaglLayer.opaque = YES; eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, - kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, - nil]; + [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, + kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, + nil]; _scaleFactor = [[UIScreen mainScreen] scale]; if (_scaleFactor < 0.1f) @@ -182,8 +191,7 @@ - (BOOL)setupGL return _didSetupGL; } -- (BOOL)setupGLOnce -{ +- (BOOL)setupGLOnce { if (_didSetupGL) return YES; @@ -195,8 +203,7 @@ - (BOOL)setupGLOnce return didSetupGL; } -- (BOOL)isApplicationActive -{ +- (BOOL)isApplicationActive { switch (_applicationState) { case IJKSDLGLViewApplicationForegroundState: return YES; @@ -216,15 +223,14 @@ - (BOOL)isApplicationActive } } -- (void)dealloc -{ +- (void)dealloc { [self lockGLActive]; _didStopGL = YES; EAGLContext *prevContext = [EAGLContext currentContext]; [EAGLContext setCurrentContext:_context]; - + IJK_GLES2_Renderer_reset(_renderer); IJK_GLES2_Renderer_freeP(&_renderer); @@ -249,14 +255,12 @@ - (void)dealloc [self unlockGLActive]; } -- (void)setScaleFactor:(CGFloat)scaleFactor -{ +- (void)setScaleFactor:(CGFloat)scaleFactor { _scaleFactor = scaleFactor; [self invalidateRenderBuffer]; } -- (void)layoutSubviews -{ +- (void)layoutSubviews { [super layoutSubviews]; if (self.window.screen != nil) { _scaleFactor = self.window.screen.scale; @@ -264,9 +268,9 @@ - (void)layoutSubviews [self invalidateRenderBuffer]; } -- (void)setContentMode:(UIViewContentMode)contentMode -{ +- (void)setContentMode:(UIViewContentMode)contentMode { [super setContentMode:contentMode]; + _mode = contentMode; switch (contentMode) { case UIViewContentModeScaleToFill: @@ -285,13 +289,12 @@ - (void)setContentMode:(UIViewContentMode)contentMode [self invalidateRenderBuffer]; } -- (BOOL)setupRenderer: (SDL_VoutOverlay *) overlay -{ +- (BOOL)setupRenderer:(SDL_VoutOverlay *)overlay { if (overlay == nil) return _renderer != nil; if (!IJK_GLES2_Renderer_isValid(_renderer) || - !IJK_GLES2_Renderer_isFormat(_renderer, overlay->format)) { + !IJK_GLES2_Renderer_isFormat(_renderer, overlay->format)) { IJK_GLES2_Renderer_reset(_renderer); IJK_GLES2_Renderer_freeP(&_renderer); @@ -309,18 +312,15 @@ - (BOOL)setupRenderer: (SDL_VoutOverlay *) overlay return YES; } -- (void)invalidateRenderBuffer -{ +- (void)invalidateRenderBuffer { NSLog(@"invalidateRenderBuffer\n"); [self lockGLActive]; _isRenderBufferInvalidated = YES; if ([[NSThread currentThread] isMainThread]) { - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ - if (_isRenderBufferInvalidated) - [self display:nil]; - }); + if (_isRenderBufferInvalidated) + [self display:nil]; } else { [self display:nil]; } @@ -328,40 +328,41 @@ - (void)invalidateRenderBuffer [self unlockGLActive]; } -- (void) display_pixels: (IJKOverlay *) overlay { +- (void)display_pixels:(IJKOverlay *)overlay { return; } -- (void)display: (SDL_VoutOverlay *) overlay -{ - if (_didSetupGL == NO) - return; +- (void)display:(SDL_VoutOverlay *)overlay { + mainExecute(^{ + if (_didSetupGL == NO) + return; - if ([self isApplicationActive] == NO) - return; + if ([self isApplicationActive] == NO) + return; - if (![self tryLockGLActive]) { - if (0 == (_tryLockErrorCount % 100)) { - NSLog(@"IJKSDLGLView:display: unable to tryLock GL active: %d\n", _tryLockErrorCount); + if (![self tryLockGLActive]) { + if (0 == (_tryLockErrorCount % 100)) { + NSLog(@"IJKSDLGLView:display: unable to tryLock GL active: %d\n", _tryLockErrorCount); + } + _tryLockErrorCount++; + return; } - _tryLockErrorCount++; - return; - } - _tryLockErrorCount = 0; - if (_context && !_didStopGL) { - EAGLContext *prevContext = [EAGLContext currentContext]; - [EAGLContext setCurrentContext:_context]; - [self displayInternal:overlay]; - [EAGLContext setCurrentContext:prevContext]; - } + _tryLockErrorCount = 0; + if (_context && !_didStopGL) { + EAGLContext *prevContext = [EAGLContext currentContext]; + [EAGLContext setCurrentContext:_context]; + [self displayInternal:overlay]; + [EAGLContext setCurrentContext:prevContext]; + } + + [self unlockGLActive]; + }); - [self unlockGLActive]; } // NOTE: overlay could be NULl -- (void)displayInternal: (SDL_VoutOverlay *) overlay -{ +- (void)displayInternal:(SDL_VoutOverlay *)overlay { if (![self setupRenderer:overlay]) { if (!overlay && !_renderer) { NSLog(@"IJKSDLGLView: setupDisplay not ready\n"); @@ -378,7 +379,7 @@ - (void)displayInternal: (SDL_VoutOverlay *) overlay _isRenderBufferInvalidated = NO; glBindRenderbuffer(GL_RENDERBUFFER, _renderbuffer); - [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer*)self.layer]; + [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *) self.layer]; glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &_backingWidth); glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &_backingHeight); IJK_GLES2_Renderer_setGravity(_renderer, _rendererGravity, _backingWidth, _backingHeight); @@ -393,12 +394,12 @@ - (void)displayInternal: (SDL_VoutOverlay *) overlay glBindRenderbuffer(GL_RENDERBUFFER, _renderbuffer); [_context presentRenderbuffer:GL_RENDERBUFFER]; - int64_t current = (int64_t)SDL_GetTickHR(); - int64_t delta = (current > _lastFrameTime) ? current - _lastFrameTime : 0; + int64_t current = (int64_t) SDL_GetTickHR(); + int64_t delta = (current > _lastFrameTime) ? current - _lastFrameTime : 0; if (delta <= 0) { _lastFrameTime = current; } else if (delta >= 1000) { - _fps = ((CGFloat)_frameCount) * 1000 / delta; + _fps = ((CGFloat) _frameCount) * 1000 / delta; _frameCount = 0; _lastFrameTime = current; } else { @@ -408,18 +409,15 @@ - (void)displayInternal: (SDL_VoutOverlay *) overlay #pragma mark AppDelegate -- (void) lockGLActive -{ +- (void)lockGLActive { [self.glActiveLock lock]; } -- (void) unlockGLActive -{ +- (void)unlockGLActive { [self.glActiveLock unlock]; } -- (BOOL) tryLockGLActive -{ +- (BOOL)tryLockGLActive { if (![self.glActiveLock tryLock]) return NO; @@ -435,12 +433,11 @@ - (BOOL) tryLockGLActive [self.glActiveLock unlock]; return NO; } - + return YES; } -- (void)toggleGLPaused:(BOOL)paused -{ +- (void)toggleGLPaused:(BOOL)paused { [self lockGLActive]; if (!self.glActivePaused && paused) { if (_context != nil) { @@ -454,8 +451,7 @@ - (void)toggleGLPaused:(BOOL)paused [self unlockGLActive]; } -- (void)registerApplicationObservers -{ +- (void)registerApplicationObservers { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground) @@ -488,8 +484,7 @@ - (void)registerApplicationObservers [_registeredNotifications addObject:UIApplicationWillTerminateNotification]; } -- (void)unregisterApplicationObservers -{ +- (void)unregisterApplicationObservers { for (NSString *name in _registeredNotifications) { [[NSNotificationCenter defaultCenter] removeObserver:self name:name @@ -497,46 +492,40 @@ - (void)unregisterApplicationObservers } } -- (void)applicationWillEnterForeground -{ - NSLog(@"IJKSDLGLView:applicationWillEnterForeground: %d", (int)[UIApplication sharedApplication].applicationState); +- (void)applicationWillEnterForeground { + NSLog(@"IJKSDLGLView:applicationWillEnterForeground: %d", (int) [UIApplication sharedApplication].applicationState); [self setupGLOnce]; _applicationState = IJKSDLGLViewApplicationForegroundState; [self toggleGLPaused:NO]; } -- (void)applicationDidBecomeActive -{ - NSLog(@"IJKSDLGLView:applicationDidBecomeActive: %d", (int)[UIApplication sharedApplication].applicationState); +- (void)applicationDidBecomeActive { + NSLog(@"IJKSDLGLView:applicationDidBecomeActive: %d", (int) [UIApplication sharedApplication].applicationState); [self setupGLOnce]; [self toggleGLPaused:NO]; } -- (void)applicationWillResignActive -{ - NSLog(@"IJKSDLGLView:applicationWillResignActive: %d", (int)[UIApplication sharedApplication].applicationState); +- (void)applicationWillResignActive { + NSLog(@"IJKSDLGLView:applicationWillResignActive: %d", (int) [UIApplication sharedApplication].applicationState); [self toggleGLPaused:YES]; glFinish(); } -- (void)applicationDidEnterBackground -{ - NSLog(@"IJKSDLGLView:applicationDidEnterBackground: %d", (int)[UIApplication sharedApplication].applicationState); +- (void)applicationDidEnterBackground { + NSLog(@"IJKSDLGLView:applicationDidEnterBackground: %d", (int) [UIApplication sharedApplication].applicationState); _applicationState = IJKSDLGLViewApplicationBackgroundState; [self toggleGLPaused:YES]; glFinish(); } -- (void)applicationWillTerminate -{ - NSLog(@"IJKSDLGLView:applicationWillTerminate: %d", (int)[UIApplication sharedApplication].applicationState); +- (void)applicationWillTerminate { + NSLog(@"IJKSDLGLView:applicationWillTerminate: %d", (int) [UIApplication sharedApplication].applicationState); [self toggleGLPaused:YES]; } #pragma mark snapshot -- (UIImage*)snapshot -{ +- (UIImage *)snapshot { [self lockGLActive]; UIImage *image = [self snapshotInternal]; @@ -546,8 +535,7 @@ - (UIImage*)snapshot return image; } -- (UIImage*)snapshotInternal -{ +- (UIImage *)snapshotInternal { if (isIOS7OrLater()) { return [self snapshotInternalOnIOS7AndLater]; } else { @@ -555,8 +543,7 @@ - (UIImage*)snapshotInternal } } -- (UIImage*)snapshotInternalOnIOS7AndLater -{ +- (UIImage *)snapshotInternalOnIOS7AndLater { if (CGSizeEqualToSize(self.bounds.size, CGSizeZero)) { return nil; } @@ -572,8 +559,7 @@ - (UIImage*)snapshotInternalOnIOS7AndLater return complexViewImage; } -- (UIImage*)snapshotInternalOnIOS6AndBefore -{ +- (UIImage *)snapshotInternalOnIOS6AndBefore { EAGLContext *prevContext = [EAGLContext currentContext]; [EAGLContext setCurrentContext:_context]; @@ -591,11 +577,11 @@ - (UIImage*)snapshotInternalOnIOS6AndBefore NSInteger x = 0, y = 0, width = backingWidth, height = backingHeight; NSInteger dataLength = width * height * 4; - GLubyte *data = (GLubyte*)malloc(dataLength * sizeof(GLubyte)); + GLubyte *data = (GLubyte *) malloc(dataLength * sizeof(GLubyte)); // Read pixel data from the framebuffer glPixelStorei(GL_PACK_ALIGNMENT, 4); - glReadPixels((int)x, (int)y, (int)width, (int)height, GL_RGBA, GL_UNSIGNED_BYTE, data); + glReadPixels((int) x, (int) y, (int) width, (int) height, GL_RGBA, GL_UNSIGNED_BYTE, data); // Create a CGImage with the pixel data // If your OpenGL ES content is opaque, use kCGImageAlphaNoneSkipLast to ignore the alpha channel @@ -603,7 +589,7 @@ - (UIImage*)snapshotInternalOnIOS6AndBefore CGDataProviderRef ref = CGDataProviderCreateWithData(NULL, data, dataLength, NULL); CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); CGImageRef iref = CGImageCreate(width, height, 8, 32, width * 4, colorspace, kCGBitmapByteOrder32Big | kCGImageAlphaPremultipliedLast, - ref, NULL, true, kCGRenderingIntentDefault); + ref, NULL, true, kCGRenderingIntentDefault); [EAGLContext setCurrentContext:prevContext]; @@ -631,8 +617,8 @@ - (UIImage*)snapshotInternalOnIOS6AndBefore return image; } -- (void)setShouldLockWhileBeingMovedToWindow:(BOOL)shouldLockWhileBeingMovedToWindow -{ +- (void)setShouldLockWhileBeingMovedToWindow:(BOOL)shouldLockWhileBeingMovedToWindow { _shouldLockWhileBeingMovedToWindow = shouldLockWhileBeingMovedToWindow; } + @end diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_vout_ios_gles2.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_vout_ios_gles2.m index ac81e1fb1a..0a35dc710d 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_vout_ios_gles2.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_vout_ios_gles2.m @@ -38,8 +38,7 @@ IJKSDLGLView *gl_view; }; -static SDL_VoutOverlay *vout_create_overlay_l(int width, int height, int frame_format, SDL_Vout *vout) -{ +static SDL_VoutOverlay *vout_create_overlay_l(int width, int height, int frame_format, SDL_Vout *vout) { switch (frame_format) { case IJK_AV_PIX_FMT__VIDEO_TOOLBOX: return SDL_VoutVideoToolBox_CreateOverlay(width, height, vout); @@ -48,16 +47,14 @@ } } -static SDL_VoutOverlay *vout_create_overlay(int width, int height, int frame_format, SDL_Vout *vout) -{ +static SDL_VoutOverlay *vout_create_overlay(int width, int height, int frame_format, SDL_Vout *vout) { SDL_LockMutex(vout->mutex); SDL_VoutOverlay *overlay = vout_create_overlay_l(width, height, frame_format, vout); SDL_UnlockMutex(vout->mutex); return overlay; } -static void vout_free_l(SDL_Vout *vout) -{ +static void vout_free_l(SDL_Vout *vout) { if (!vout) return; @@ -73,8 +70,7 @@ static void vout_free_l(SDL_Vout *vout) SDL_Vout_FreeInternal(vout); } -static int vout_display_overlay_l(SDL_Vout *vout, SDL_VoutOverlay *overlay) -{ +static int vout_display_overlay_l(SDL_Vout *vout, SDL_VoutOverlay *overlay) { SDL_Vout_Opaque *opaque = vout->opaque; IJKSDLGLView *gl_view = opaque->gl_view; @@ -110,7 +106,7 @@ static int vout_display_overlay_l(SDL_Vout *vout, SDL_VoutOverlay *overlay) } #endif if ([gl_view respondsToSelector:@selector(display_pixels:)]) { - [gl_view display_pixels:&ijk_overlay]; + [gl_view display_pixels:&ijk_overlay]; } } else { [gl_view display:overlay]; @@ -118,8 +114,7 @@ static int vout_display_overlay_l(SDL_Vout *vout, SDL_VoutOverlay *overlay) return 0; } -static int vout_display_overlay(SDL_Vout *vout, SDL_VoutOverlay *overlay) -{ +static int vout_display_overlay(SDL_Vout *vout, SDL_VoutOverlay *overlay) { @autoreleasepool { SDL_LockMutex(vout->mutex); int retval = vout_display_overlay_l(vout, overlay); @@ -128,8 +123,7 @@ static int vout_display_overlay(SDL_Vout *vout, SDL_VoutOverlay *overlay) } } -SDL_Vout *SDL_VoutIos_CreateForGLES2() -{ +SDL_Vout *SDL_VoutIos_CreateForGLES2() { SDL_Vout *vout = SDL_Vout_CreateInternal(sizeof(SDL_Vout_Opaque)); if (!vout) return NULL; @@ -143,8 +137,7 @@ static int vout_display_overlay(SDL_Vout *vout, SDL_VoutOverlay *overlay) return vout; } -static void SDL_VoutIos_SetGLView_l(SDL_Vout *vout, IJKSDLGLView *view) -{ +static void SDL_VoutIos_SetGLView_l(SDL_Vout *vout, IJKSDLGLView *view) { SDL_Vout_Opaque *opaque = vout->opaque; if (opaque->gl_view == view) @@ -159,8 +152,7 @@ static void SDL_VoutIos_SetGLView_l(SDL_Vout *vout, IJKSDLGLView *view) opaque->gl_view = [view retain]; } -void SDL_VoutIos_SetGLView(SDL_Vout *vout, IJKSDLGLView *view) -{ +void SDL_VoutIos_SetGLView(SDL_Vout *vout, IJKSDLGLView *view) { SDL_LockMutex(vout->mutex); SDL_VoutIos_SetGLView_l(vout, view); SDL_UnlockMutex(vout->mutex); diff --git a/ios/IJKMediaPodDemo/IJKMediaPodDemo/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/IJKMediaPodDemo/IJKMediaPodDemo/Images.xcassets/AppIcon.appiconset/Contents.json index 36d2c80d88..d8db8d65fd 100644 --- a/ios/IJKMediaPodDemo/IJKMediaPodDemo/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/IJKMediaPodDemo/IJKMediaPodDemo/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,15 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, { "idiom" : "iphone", "size" : "29x29", @@ -30,6 +40,16 @@ "size" : "60x60", "scale" : "3x" }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, { "idiom" : "ipad", "size" : "29x29", @@ -59,6 +79,16 @@ "idiom" : "ipad", "size" : "76x76", "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" } ], "info" : { diff --git a/ios/compile-ffmpeg.sh b/ios/compile-ffmpeg.sh index c98ec50c7b..027c70987e 100755 --- a/ios/compile-ffmpeg.sh +++ b/ios/compile-ffmpeg.sh @@ -19,11 +19,12 @@ #---------- # modify for your build tool -FF_ALL_ARCHS_IOS6_SDK="armv7 armv7s i386" -FF_ALL_ARCHS_IOS7_SDK="armv7 armv7s arm64 i386 x86_64" -FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64" +FF_ALL_ARCHS_IOS8_SDK="arm64 x86_64" + +FF_ALL_ARCHS_IOS10_SDK="arm64 i386 x86_64" + +FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS10_SDK -FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS8_SDK #---------- UNI_BUILD_ROOT=`pwd` @@ -117,11 +118,11 @@ do_lipo_all () { } #---------- -if [ "$FF_TARGET" = "armv7" -o "$FF_TARGET" = "armv7s" -o "$FF_TARGET" = "arm64" ]; then +if [ "$FF_TARGET" = "arm64" ]; then echo_archs sh tools/do-compile-ffmpeg.sh $FF_TARGET $FF_TARGET_EXTRA do_lipo_all -elif [ "$FF_TARGET" = "i386" -o "$FF_TARGET" = "x86_64" ]; then +elif [ "$FF_TARGET" = "x86_64" ]; then echo_archs sh tools/do-compile-ffmpeg.sh $FF_TARGET $FF_TARGET_EXTRA do_lipo_all @@ -156,8 +157,7 @@ elif [ "$FF_TARGET" = "clean" ]; then echo "clean success" else echo "Usage:" - echo " compile-ffmpeg.sh armv7|arm64|i386|x86_64" - echo " compile-ffmpeg.sh armv7s (obselete)" + echo " compile-ffmpeg.sh arm64|x86_64" echo " compile-ffmpeg.sh lipo" echo " compile-ffmpeg.sh all" echo " compile-ffmpeg.sh clean" diff --git a/ios/compile-openssl.sh b/ios/compile-openssl.sh index b363780a5f..760aa57695 100755 --- a/ios/compile-openssl.sh +++ b/ios/compile-openssl.sh @@ -22,8 +22,9 @@ FF_ALL_ARCHS_IOS6_SDK="armv7 armv7s i386" FF_ALL_ARCHS_IOS7_SDK="armv7 armv7s arm64 i386 x86_64" FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64" +FF_ALL_ARCHS_IOS10_SDK="arm64 i386 x86_64" -FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS8_SDK +FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS10_SDK #---------- UNI_BUILD_ROOT=`pwd` From 5c9802dea67c3f048af5c656d77c9a29c1e4b637 Mon Sep 17 00:00:00 2001 From: poholo Date: Fri, 17 May 2019 14:32:43 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E9=80=BB=E8=BE=91~?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ijksdl/ios/IJKSDLAudioQueueController.m | 94 +++++++-------- .../ijkmedia/ijksdl/ios/IJKSDLGLView.m | 107 ++++++++---------- .../ijkmedia/ijksdl/ios/ijksdl_thread_ios.h | 14 +++ .../ijkmedia/ijksdl/ios/ijksdl_thread_ios.m | 1 + 4 files changed, 108 insertions(+), 108 deletions(-) diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m index 008ab0f543..3910396cf8 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m @@ -26,6 +26,7 @@ #import "IJKSDLAudioQueueController.h" #import "IJKSDLAudioKit.h" #import "ijksdl_log.h" +#import "ijksdl_thread_ios.h" #import @@ -41,8 +42,7 @@ @implementation IJKSDLAudioQueueController { NSLock *_lock; } -- (id)initWithAudioSpec:(const SDL_AudioSpec *)aSpec -{ +- (id)initWithAudioSpec:(const SDL_AudioSpec *)aSpec { self = [super init]; if (self) { if (aSpec == NULL) { @@ -52,12 +52,12 @@ - (id)initWithAudioSpec:(const SDL_AudioSpec *)aSpec _spec = *aSpec; if (aSpec->format != AUDIO_S16SYS) { - NSLog(@"aout_open_audio: unsupported format %d\n", (int)aSpec->format); + NSLog(@"aout_open_audio: unsupported format %d\n", (int) aSpec->format); return nil; } if (aSpec->channels > 2) { - NSLog(@"aout_open_audio: unsupported channels %d\n", (int)aSpec->channels); + NSLog(@"aout_open_audio: unsupported channels %d\n", (int) aSpec->channels); return nil; } @@ -75,14 +75,14 @@ - (id)initWithAudioSpec:(const SDL_AudioSpec *)aSpec /* Set the desired format */ AudioQueueRef audioQueueRef; OSStatus status = AudioQueueNewOutput(&streamDescription, - IJKSDLAudioQueueOuptutCallback, - (__bridge void *) self, - NULL, - kCFRunLoopCommonModes, - 0, - &audioQueueRef); + IJKSDLAudioQueueOuptutCallback, + (__bridge void *) self, + NULL, + kCFRunLoopCommonModes, + 0, + &audioQueueRef); if (status != noErr) { - NSLog(@"AudioQueue: AudioQueueNewOutput failed (%d)\n", (int)status); + NSLog(@"AudioQueue: AudioQueueNewOutput failed (%d)\n", (int) status); self = nil; return nil; } @@ -96,15 +96,14 @@ - (id)initWithAudioSpec:(const SDL_AudioSpec *)aSpec status = AudioQueueStart(audioQueueRef, NULL); if (status != noErr) { - NSLog(@"AudioQueue: AudioQueueStart failed (%d)\n", (int)status); + NSLog(@"AudioQueue: AudioQueueStart failed (%d)\n", (int) status); self = nil; return nil; } _audioQueueRef = audioQueueRef; - for (int i = 0;i < kIJKAudioQueueNumberBuffers; i++) - { + for (int i = 0; i < kIJKAudioQueueNumberBuffers; i++) { AudioQueueAllocateBuffer(audioQueueRef, _spec.size, &_audioQueueBufferRefArray[i]); _audioQueueBufferRefArray[i]->mAudioDataByteSize = _spec.size; memset(_audioQueueBufferRefArray[i]->mAudioData, 0, _spec.size); @@ -126,59 +125,56 @@ - (id)initWithAudioSpec:(const SDL_AudioSpec *)aSpec return self; } -- (void)dealloc -{ +- (void)dealloc { [self close]; } -- (void)play -{ +- (void)play { if (!_audioQueueRef) return; self.spec.callback(self.spec.userdata, NULL, 0); - @synchronized(_lock) { + @synchronized (_lock) { _isPaused = NO; NSError *error = nil; - if (NO == [[AVAudioSession sharedInstance] setActive:YES error:&error]) { + if (![[AVAudioSession sharedInstance] setActive:YES error:&error]) { NSLog(@"AudioQueue: AVAudioSession.setActive(YES) failed: %@\n", error ? [error localizedDescription] : @"nil"); } OSStatus status = AudioQueueStart(_audioQueueRef, NULL); if (status != noErr) - NSLog(@"AudioQueue: AudioQueueStart failed (%d)\n", (int)status); + NSLog(@"AudioQueue: AudioQueueStart failed (%d)\n", (int) status); } } -- (void)pause -{ +- (void)pause { if (!_audioQueueRef) return; - @synchronized(_lock) { + @synchronized (_lock) { if (_isStopped) return; _isPaused = YES; - OSStatus status = AudioQueuePause(_audioQueueRef); - if (status != noErr) - NSLog(@"AudioQueue: AudioQueuePause failed (%d)\n", (int)status); + IJKMainThredExecute(^{ + OSStatus status = AudioQueuePause(_audioQueueRef); + if (status != noErr) + NSLog(@"AudioQueue: AudioQueuePause failed (%d)\n", (int) status); + }); } } -- (void)flush -{ +- (void)flush { if (!_audioQueueRef) return; - @synchronized(_lock) { + @synchronized (_lock) { if (_isStopped) return; - if (_isPaused == YES) { - for (int i = 0; i < kIJKAudioQueueNumberBuffers; i++) - { + if (_isPaused) { + for (int i = 0; i < kIJKAudioQueueNumberBuffers; i++) { if (_audioQueueBufferRefArray[i] && _audioQueueBufferRefArray[i]->mAudioData) { _audioQueueBufferRefArray[i]->mAudioDataByteSize = _spec.size; memset(_audioQueueBufferRefArray[i]->mAudioData, 0, _spec.size); @@ -190,31 +186,29 @@ - (void)flush } } -- (void)stop -{ +- (void)stop { if (!_audioQueueRef) return; - @synchronized(_lock) { + @synchronized (_lock) { if (_isStopped) return; _isStopped = YES; } - - // do not lock AudioQueueStop, or may be run into deadlock - AudioQueueStop(_audioQueueRef, true); - AudioQueueDispose(_audioQueueRef, true); + IJKMainThredExecute(^{ + // do not lock AudioQueueStop, or may be run into deadlock + AudioQueueStop(_audioQueueRef, true); + AudioQueueDispose(_audioQueueRef, true); + }); } -- (void)close -{ +- (void)close { [self stop]; _audioQueueRef = nil; } -- (void)setPlaybackRate:(float)playbackRate -{ +- (void)setPlaybackRate:(float)playbackRate { if (fabsf(playbackRate - 1.0f) <= 0.000001) { UInt32 propValue = 1; AudioQueueSetProperty(_audioQueueRef, kAudioQueueProperty_TimePitchBypass, &propValue, sizeof(propValue)); @@ -226,8 +220,7 @@ - (void)setPlaybackRate:(float)playbackRate } } -- (void)setPlaybackVolume:(float)playbackVolume -{ +- (void)setPlaybackVolume:(float)playbackVolume { float aq_volume = playbackVolume; if (fabsf(aq_volume - 1.0f) <= 0.000001) { AudioQueueSetParameter(_audioQueueRef, kAudioQueueParam_Volume, 1.f); @@ -236,14 +229,13 @@ - (void)setPlaybackVolume:(float)playbackVolume } } -- (double)get_latency_seconds -{ - return ((double)(kIJKAudioQueueNumberBuffers)) * _spec.samples / _spec.freq; +- (double)get_latency_seconds { + return ((double) (kIJKAudioQueueNumberBuffers)) * _spec.samples / _spec.freq; } -static void IJKSDLAudioQueueOuptutCallback(void * inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inBuffer) { +static void IJKSDLAudioQueueOuptutCallback(void *inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inBuffer) { @autoreleasepool { - IJKSDLAudioQueueController* aqController = (__bridge IJKSDLAudioQueueController *) inUserData; + IJKSDLAudioQueueController *aqController = (__bridge IJKSDLAudioQueueController *) inUserData; if (!aqController) { // do nothing; diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m index dcb141765b..7fa80d0f3e 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m @@ -24,24 +24,11 @@ */ #import "IJKSDLGLView.h" + #include "ijksdl/ijksdl_timer.h" #include "ijksdl/ios/ijksdl_ios.h" #include "ijksdl/ijksdl_gles2.h" -static void mainExecute(dispatch_block_t block) { - if ([NSThread isMainThread]) { - if (block) { - block(); - } - } else { - dispatch_async(dispatch_get_main_queue(), ^{ - if (block) { - block(); - } - }); - } -} - typedef NS_ENUM(NSInteger, IJKSDLGLViewApplicationState) { IJKSDLGLViewApplicationUnknownState = 0, IJKSDLGLViewApplicationForegroundState = 1, @@ -52,6 +39,8 @@ typedef NS_ENUM(NSInteger, IJKSDLGLViewApplicationState) { @interface IJKSDLGLView () @property(atomic, strong) NSRecursiveLock *glActiveLock; @property(atomic) BOOL glActivePaused; +@property(nonatomic, weak) CALayer *weakLayer; +@property(nonatomic, assign) UIApplicationState appState; @end @implementation IJKSDLGLView { @@ -99,7 +88,8 @@ - (id)initWithFrame:(CGRect)frame { [self registerApplicationObservers]; _didSetupGL = NO; - if ([self isApplicationActive] == YES) + self.weakLayer = self.layer; + if ([self isApplicationActive]) [self setupGLOnce]; } @@ -152,7 +142,7 @@ - (BOOL)setupEAGLContext:(EAGLContext *)context { } - (CAEAGLLayer *)eaglLayer { - return (CAEAGLLayer *) self.layer; + return (CAEAGLLayer *) self.weakLayer; } - (BOOL)setupGL { @@ -161,11 +151,7 @@ - (BOOL)setupGL { CAEAGLLayer *eaglLayer = (CAEAGLLayer *) self.layer; eaglLayer.opaque = YES; - eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, - kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, - nil]; - + eaglLayer.drawableProperties = @{kEAGLDrawablePropertyRetainedBacking: @(NO), kEAGLDrawablePropertyColorFormat: kEAGLColorFormatRGBA8}; _scaleFactor = [[UIScreen mainScreen] scale]; if (_scaleFactor < 0.1f) _scaleFactor = 1.0f; @@ -210,8 +196,7 @@ - (BOOL)isApplicationActive { case IJKSDLGLViewApplicationBackgroundState: return NO; default: { - UIApplicationState appState = [UIApplication sharedApplication].applicationState; - switch (appState) { + switch (self.appState) { case UIApplicationStateActive: return YES; case UIApplicationStateInactive: @@ -316,14 +301,20 @@ - (void)invalidateRenderBuffer { NSLog(@"invalidateRenderBuffer\n"); [self lockGLActive]; - _isRenderBufferInvalidated = YES; - - if ([[NSThread currentThread] isMainThread]) { - if (_isRenderBufferInvalidated) - [self display:nil]; + /* + if ([[NSThread currentThread] isMainThread]) { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + if (_isRenderBufferInvalidated) + [self display:nil]; + }); } else { [self display:nil]; } + */ + _isRenderBufferInvalidated = YES; + if (_isRenderBufferInvalidated) { + [self display:nil]; + } [self unlockGLActive]; } @@ -333,32 +324,29 @@ - (void)display_pixels:(IJKOverlay *)overlay { } - (void)display:(SDL_VoutOverlay *)overlay { - mainExecute(^{ - if (_didSetupGL == NO) - return; + if (!_didSetupGL) + return; - if ([self isApplicationActive] == NO) - return; + if (![self isApplicationActive]) + return; - if (![self tryLockGLActive]) { - if (0 == (_tryLockErrorCount % 100)) { - NSLog(@"IJKSDLGLView:display: unable to tryLock GL active: %d\n", _tryLockErrorCount); - } - _tryLockErrorCount++; - return; - } - - _tryLockErrorCount = 0; - if (_context && !_didStopGL) { - EAGLContext *prevContext = [EAGLContext currentContext]; - [EAGLContext setCurrentContext:_context]; - [self displayInternal:overlay]; - [EAGLContext setCurrentContext:prevContext]; + if (![self tryLockGLActive]) { + if (0 == (_tryLockErrorCount % 100)) { + NSLog(@"IJKSDLGLView:display: unable to tryLock GL active: %d\n", _tryLockErrorCount); } + _tryLockErrorCount++; + return; + } - [self unlockGLActive]; - }); + _tryLockErrorCount = 0; + if (_context && !_didStopGL) { + EAGLContext *prevContext = [EAGLContext currentContext]; + [EAGLContext setCurrentContext:_context]; + [self displayInternal:overlay]; + [EAGLContext setCurrentContext:prevContext]; + } + [self unlockGLActive]; } // NOTE: overlay could be NULl @@ -379,7 +367,7 @@ - (void)displayInternal:(SDL_VoutOverlay *)overlay { _isRenderBufferInvalidated = NO; glBindRenderbuffer(GL_RENDERBUFFER, _renderbuffer); - [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *) self.layer]; + [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *) self.weakLayer]; glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &_backingWidth); glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &_backingHeight); IJK_GLES2_Renderer_setGravity(_renderer, _rendererGravity, _backingWidth, _backingHeight); @@ -493,33 +481,38 @@ - (void)unregisterApplicationObservers { } - (void)applicationWillEnterForeground { - NSLog(@"IJKSDLGLView:applicationWillEnterForeground: %d", (int) [UIApplication sharedApplication].applicationState); + self.appState = UIApplicationStateActive; + NSLog(@"IJKSDLGLView:applicationWillEnterForeground: %d", (int) self.appState); [self setupGLOnce]; _applicationState = IJKSDLGLViewApplicationForegroundState; [self toggleGLPaused:NO]; } - (void)applicationDidBecomeActive { - NSLog(@"IJKSDLGLView:applicationDidBecomeActive: %d", (int) [UIApplication sharedApplication].applicationState); + self.appState = UIApplicationStateActive; + NSLog(@"IJKSDLGLView:applicationDidBecomeActive: %d", (int) self.appState); [self setupGLOnce]; [self toggleGLPaused:NO]; } - (void)applicationWillResignActive { - NSLog(@"IJKSDLGLView:applicationWillResignActive: %d", (int) [UIApplication sharedApplication].applicationState); + self.appState = UIApplicationStateInactive; + NSLog(@"IJKSDLGLView:applicationWillResignActive: %d", (int) self.appState); [self toggleGLPaused:YES]; glFinish(); } - (void)applicationDidEnterBackground { - NSLog(@"IJKSDLGLView:applicationDidEnterBackground: %d", (int) [UIApplication sharedApplication].applicationState); + self.appState = UIApplicationStateBackground; + NSLog(@"IJKSDLGLView:applicationDidEnterBackground: %d", (int) self.appState); _applicationState = IJKSDLGLViewApplicationBackgroundState; [self toggleGLPaused:YES]; glFinish(); } - (void)applicationWillTerminate { - NSLog(@"IJKSDLGLView:applicationWillTerminate: %d", (int) [UIApplication sharedApplication].applicationState); + self.appState = UIApplicationStateInactive; + NSLog(@"IJKSDLGLView:applicationWillTerminate: %d", (int) self.appState); [self toggleGLPaused:YES]; } @@ -586,9 +579,9 @@ - (UIImage *)snapshotInternalOnIOS6AndBefore { // Create a CGImage with the pixel data // If your OpenGL ES content is opaque, use kCGImageAlphaNoneSkipLast to ignore the alpha channel // otherwise, use kCGImageAlphaPremultipliedLast - CGDataProviderRef ref = CGDataProviderCreateWithData(NULL, data, dataLength, NULL); + CGDataProviderRef ref = CGDataProviderCreateWithData(NULL, data, (size_t) dataLength, NULL); CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); - CGImageRef iref = CGImageCreate(width, height, 8, 32, width * 4, colorspace, kCGBitmapByteOrder32Big | kCGImageAlphaPremultipliedLast, + CGImageRef iref = CGImageCreate((size_t) width, (size_t) height, 8, 32, (size_t) width * 4, colorspace, kCGBitmapByteOrder32Big | kCGImageAlphaPremultipliedLast, ref, NULL, true, kCGRenderingIntentDefault); [EAGLContext setCurrentContext:prevContext]; diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.h b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.h index fa1f12df74..b76f00c15c 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.h +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.h @@ -22,3 +22,17 @@ */ #import + +static void IJKMainThredExecute(dispatch_block_t block) { + if ([NSThread isMainThread]) { + if (block) { + block(); + } + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + if (block) { + block(); + } + }); + } +} \ No newline at end of file diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.m index e6562e2986..744bb5d613 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.m @@ -45,3 +45,4 @@ return thread; } + From 280a5a06aa2c31d4c566074012fc55123656f4c4 Mon Sep 17 00:00:00 2001 From: poholo Date: Fri, 17 May 2019 14:33:49 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E9=80=BB=E8=BE=91~?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m index 7fa80d0f3e..b751010a1e 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m @@ -121,7 +121,7 @@ - (BOOL)setupEAGLContext:(EAGLContext *)context { glGenRenderbuffers(1, &_renderbuffer); glBindFramebuffer(GL_FRAMEBUFFER, _framebuffer); glBindRenderbuffer(GL_RENDERBUFFER, _renderbuffer); - [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *) self.layer]; + [_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *) self.weakLayer]; glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &_backingWidth); glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &_backingHeight); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, _renderbuffer); @@ -149,7 +149,7 @@ - (BOOL)setupGL { if (_didSetupGL) return YES; - CAEAGLLayer *eaglLayer = (CAEAGLLayer *) self.layer; + CAEAGLLayer *eaglLayer = (CAEAGLLayer *) self.weakLayer; eaglLayer.opaque = YES; eaglLayer.drawableProperties = @{kEAGLDrawablePropertyRetainedBacking: @(NO), kEAGLDrawablePropertyColorFormat: kEAGLColorFormatRGBA8}; _scaleFactor = [[UIScreen mainScreen] scale]; From 90ab70bf046a4f21b11f40839ce13bc108920572 Mon Sep 17 00:00:00 2001 From: poholo Date: Fri, 31 May 2019 15:52:23 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init-ios-openssl.sh | 3 - init-ios.sh | 3 +- ios/.gitignore | 73 +++++++++++++++++ .../IJKMediaPlayer.xcodeproj/project.pbxproj | 4 + .../IJKMediaFrameworkWithSSL.xcscheme | 80 ------------------- ios/compile-ffmpeg.sh | 8 +- ios/compile-openssl.sh | 4 +- 7 files changed, 86 insertions(+), 89 deletions(-) delete mode 100644 ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/xcshareddata/xcschemes/IJKMediaFrameworkWithSSL.xcscheme diff --git a/init-ios-openssl.sh b/init-ios-openssl.sh index 4c067d1e4d..fe0722812e 100755 --- a/init-ios-openssl.sh +++ b/init-ios-openssl.sh @@ -36,9 +36,6 @@ function pull_fork() cd - } -pull_fork "armv7" -pull_fork "armv7s" pull_fork "arm64" -pull_fork "i386" pull_fork "x86_64" diff --git a/init-ios.sh b/init-ios.sh index 41a25dc1a5..787b3787c8 100755 --- a/init-ios.sh +++ b/init-ios.sh @@ -42,7 +42,8 @@ TOOLS=tools FF_ALL_ARCHS_IOS6_SDK="armv7 armv7s i386" FF_ALL_ARCHS_IOS7_SDK="armv7 armv7s arm64 i386 x86_64" FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64" -FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS8_SDK +FF_ALL_ARCHS_IOS12_SDK="arm64 x86_64" +FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS12_SDK FF_TARGET=$1 function echo_ffmpeg_version() { diff --git a/ios/.gitignore b/ios/.gitignore index 40bae9cecf..4a28ec1bc8 100644 --- a/ios/.gitignore +++ b/ios/.gitignore @@ -1,3 +1,76 @@ xcuserdata xcshareddata *.xccheckout +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## Build generated +build/ +DerivedData/ + +## Various settings +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata/ + +## Other +*.moved-aside +*.xccheckout +*.xcscmblueprint + +## Obj-C/Swift specific +*.hmap +*.ipa +*.dSYM.zip +*.dSYM + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +Pods/ +Podfile.lock +# Add this line if you want to avoid checking in source code from the Xcode workspace +*.xcworkspace + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ + +#AppCode IDE +.idea +.DS_Store +IPA/ +upload/ +*.xcuserstate \ No newline at end of file diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.pbxproj b/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.pbxproj index 7844afbcbe..6b45e5ce5e 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.pbxproj +++ b/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.pbxproj @@ -1057,6 +1057,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "arm64 x86_64"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1103,6 +1104,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "arm64 x86_64"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1144,6 +1146,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; STRIP_INSTALLED_PRODUCT = NO; + VALID_ARCHS = "x86_64 arm64"; }; name = Debug; }; @@ -1175,6 +1178,7 @@ SDKROOT = iphoneos; STRIP_INSTALLED_PRODUCT = NO; VALIDATE_PRODUCT = YES; + VALID_ARCHS = "x86_64 arm64"; }; name = Release; }; diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/xcshareddata/xcschemes/IJKMediaFrameworkWithSSL.xcscheme b/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/xcshareddata/xcschemes/IJKMediaFrameworkWithSSL.xcscheme deleted file mode 100644 index 693b354712..0000000000 --- a/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/xcshareddata/xcschemes/IJKMediaFrameworkWithSSL.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/compile-ffmpeg.sh b/ios/compile-ffmpeg.sh index 027c70987e..f616d13922 100755 --- a/ios/compile-ffmpeg.sh +++ b/ios/compile-ffmpeg.sh @@ -19,11 +19,13 @@ #---------- # modify for your build tool -FF_ALL_ARCHS_IOS8_SDK="arm64 x86_64" -FF_ALL_ARCHS_IOS10_SDK="arm64 i386 x86_64" +FF_ALL_ARCHS_IOS6_SDK="armv7 armv7s i386" +FF_ALL_ARCHS_IOS7_SDK="armv7 armv7s arm64 i386 x86_64" +FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64" +FF_ALL_ARCHS_IOS12_SDK="arm64 x86_64" -FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS10_SDK +FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS12_SDK #---------- diff --git a/ios/compile-openssl.sh b/ios/compile-openssl.sh index 760aa57695..5d7e6d6cc7 100755 --- a/ios/compile-openssl.sh +++ b/ios/compile-openssl.sh @@ -22,9 +22,9 @@ FF_ALL_ARCHS_IOS6_SDK="armv7 armv7s i386" FF_ALL_ARCHS_IOS7_SDK="armv7 armv7s arm64 i386 x86_64" FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64" -FF_ALL_ARCHS_IOS10_SDK="arm64 i386 x86_64" +FF_ALL_ARCHS_IOS12_SDK="arm64 x86_64" -FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS10_SDK +FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS12_SDK #---------- UNI_BUILD_ROOT=`pwd` From 2a591c93b25089c66dc8f34bc81b7ec4f4d6df65 Mon Sep 17 00:00:00 2001 From: poholo Date: Fri, 2 Aug 2019 16:34:13 +0800 Subject: [PATCH 5/7] fix crash --- .../project.xcworkspace/contents.xcworkspacedata | 3 +++ .../IJKMediaPlayer/ijkmedia/ijkplayer/ios/ijkplayer_ios.m | 2 +- .../ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m | 8 +++----- .../IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m | 8 +------- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 94b2795e22..919434a625 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -1,4 +1,7 @@ + + diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijkplayer/ios/ijkplayer_ios.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijkplayer/ios/ijkplayer_ios.m index e2084f3669..da8de8553e 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijkplayer/ios/ijkplayer_ios.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijkplayer/ios/ijkplayer_ios.m @@ -63,7 +63,7 @@ void ijkmp_ios_set_glview_l(IjkMediaPlayer *mp, IJKSDLGLView *glView) SDL_VoutIos_SetGLView(mp->ffplayer->vout, glView); } -void ijkmp_ios_set_glview(IjkMediaPlayer *mp, IJKSDLGLView *glView) +void ijkmp_ios_set_glview(IjkMediaPlayer *mp, IJKSDLGLView *glView) { assert(mp); MPTRACE("ijkmp_ios_set_view(glView=%p)\n", (void*)glView); diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m index 3910396cf8..725aa96ee9 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioQueueController.m @@ -196,11 +196,9 @@ - (void)stop { _isStopped = YES; } - IJKMainThredExecute(^{ - // do not lock AudioQueueStop, or may be run into deadlock - AudioQueueStop(_audioQueueRef, true); - AudioQueueDispose(_audioQueueRef, true); - }); + // do not lock AudioQueueStop, or may be run into deadlock + AudioQueueStop(_audioQueueRef, true); + AudioQueueDispose(_audioQueueRef, true); } - (void)close { diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m index b751010a1e..6cb0c9a544 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m @@ -301,8 +301,7 @@ - (void)invalidateRenderBuffer { NSLog(@"invalidateRenderBuffer\n"); [self lockGLActive]; - /* - if ([[NSThread currentThread] isMainThread]) { + if ([[NSThread currentThread] isMainThread]) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ if (_isRenderBufferInvalidated) [self display:nil]; @@ -310,11 +309,6 @@ - (void)invalidateRenderBuffer { } else { [self display:nil]; } - */ - _isRenderBufferInvalidated = YES; - if (_isRenderBufferInvalidated) { - [self display:nil]; - } [self unlockGLActive]; } From 87646769becbb7e27764710b4715b65b726a4f11 Mon Sep 17 00:00:00 2001 From: poholo Date: Mon, 2 Sep 2019 11:20:45 +0800 Subject: [PATCH 6/7] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0GLView=E6=98=AF?= =?UTF-8?q?=E7=9A=84autoresing=E5=88=B0IJKFFMoviePlayerController?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m | 2 +- ios/IJKMediaPlayer/IJKMediaFramework/Info.plist | 2 +- ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m | 2 ++ .../IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m b/ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m index 4152a5755d..2386a92d95 100644 --- a/ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m +++ b/ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.m @@ -40,7 +40,7 @@ - (void)viewDidLoad { } - (void)onClickPlayButton { - self.textView.text = @"https://api.huoshan.com/hotsoon/item/video/_playback/?video_id=bea0903abb954f58ac0e17c21226a3c3&line=1&app_id=1115&watermark=1"; + self.textView.text = @"http://5815.liveplay.myqcloud.com/live/5815_89aad37e06ff11e892905cb9018cf0d4.flv"; NSURL *url = [NSURL URLWithString:self.textView.text]; NSString *scheme = [[url scheme] lowercaseString]; diff --git a/ios/IJKMediaPlayer/IJKMediaFramework/Info.plist b/ios/IJKMediaPlayer/IJKMediaFramework/Info.plist index d3de8eefb6..54326c7b50 100644 --- a/ios/IJKMediaPlayer/IJKMediaFramework/Info.plist +++ b/ios/IJKMediaPlayer/IJKMediaFramework/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - $(CURRENT_PROJECT_VERSION) + 1001 NSPrincipalClass diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m b/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m index 5263daae27..dc5ad694c7 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m @@ -214,6 +214,7 @@ - (id)initWithContentURLString:(NSString *)aUrlString // init video sink _glView = [[IJKSDLGLView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; + _glView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; _glView.isThirdGLView = NO; _view = _glView; _hudViewController = [[IJKSDLHudViewController alloc] init]; @@ -319,6 +320,7 @@ - (id)initWithMoreContentString:(NSString *)aUrlString self.shouldShowHudView = options.showHudView; glView.isThirdGLView = YES; _view = _glView = (IJKSDLGLView *)glView; + _glView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; _hudViewController = [[IJKSDLHudViewController alloc] init]; [_hudViewController setRect:_glView.frame]; _shouldShowHudView = NO; diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m index 6cb0c9a544..dc5c1a145e 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m @@ -301,6 +301,7 @@ - (void)invalidateRenderBuffer { NSLog(@"invalidateRenderBuffer\n"); [self lockGLActive]; + _isRenderBufferInvalidated = YES; if ([[NSThread currentThread] isMainThread]) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ if (_isRenderBufferInvalidated) From 972d2a1c03f4200551e5d50cd60d0e91c588f481 Mon Sep 17 00:00:00 2001 From: poholo Date: Tue, 3 Sep 2019 10:50:34 +0800 Subject: [PATCH 7/7] =?UTF-8?q?fix:=20=E5=85=B3=E9=97=AD=E7=94=BB=E5=B8=83?= =?UTF-8?q?=E6=97=8B=E8=BD=AC=E3=80=81=E5=88=9D=E5=A7=8B=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IJKMediaPlayer/IJKFFMoviePlayerController.m | 5 ++++- .../IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m | 10 +--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m b/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m index dc5ad694c7..ec5da8defd 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m @@ -214,6 +214,7 @@ - (id)initWithContentURLString:(NSString *)aUrlString // init video sink _glView = [[IJKSDLGLView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; + _glView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; _glView.isThirdGLView = NO; _view = _glView; @@ -222,6 +223,7 @@ - (id)initWithContentURLString:(NSString *)aUrlString _shouldShowHudView = NO; _hudViewController.tableView.hidden = YES; [_view addSubview:_hudViewController.tableView]; + self.scalingMode = IJKMPMovieScalingModeAspectFit; [self setHudValue:nil forKey:@"scheme"]; [self setHudValue:nil forKey:@"host"]; @@ -297,7 +299,6 @@ - (id)initWithMoreContentString:(NSString *)aUrlString // IJKFFIOStatCompleteRegister(IJKFFIOStatCompleteDebugCallback); // init fields - _scalingMode = IJKMPMovieScalingModeAspectFit; _shouldAutoplay = YES; memset(&_asyncStat, 0, sizeof(_asyncStat)); memset(&_cacheStat, 0, sizeof(_cacheStat)); @@ -326,6 +327,8 @@ - (id)initWithMoreContentString:(NSString *)aUrlString _shouldShowHudView = NO; _hudViewController.tableView.hidden = YES; [_view addSubview:_hudViewController.tableView]; + self.scalingMode = IJKMPMovieScalingModeAspectFit; + [self setHudValue:nil forKey:@"scheme"]; [self setHudValue:nil forKey:@"host"]; diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m index dc5c1a145e..e15c1035fc 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m @@ -302,15 +302,7 @@ - (void)invalidateRenderBuffer { [self lockGLActive]; _isRenderBufferInvalidated = YES; - if ([[NSThread currentThread] isMainThread]) { - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ - if (_isRenderBufferInvalidated) - [self display:nil]; - }); - } else { - [self display:nil]; - } - + [self display:nil]; [self unlockGLActive]; }