Skip to content

Update to v2.13.5 #51

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 31, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
language: objective-c
osx_image: xcode10.2
osx_image: xcode11.4
script:
./build.sh
2 changes: 1 addition & 1 deletion BuildConfiguration/TwitterImagePipeline.Debug.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand Down
10 changes: 9 additions & 1 deletion BuildConfiguration/TwitterImagePipeline.Release.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,24 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
// https://help.apple.com/xcode/#/dev745c5c974

#include "TwitterImagePipeline.xcconfig"

// Build Options

// FB7419630 - unless dwarf-with-dsym explicitly set, no dSYM will be generated for mac catalyst build
DEBUG_INFORMATION_FORMAT[sdk=macosx*] = dwarf-with-dsym


// Deployment
COPY_PHASE_STRIP = YES

GCC_OPTIMIZATION_LEVEL = fast

// Swift Compiler - Code Generation
SWIFT_COMPILATION_MODE = wholemodule
27 changes: 16 additions & 11 deletions BuildConfiguration/TwitterImagePipeline.Test.app.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,14 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
// https://help.apple.com/xcode/#/dev745c5c974

#include "TwitterImagePipeline.Test.xcconfig"

// Architectures
ONLY_ACTVE_ARCH = YES

// Deployment
COPY_PHASE_STRIP = NO
IPHONEOS_DEPLOYMENT_TARGET = 10.0 // 3 of the 4 sample apps use Foundation or UIKit API introduced in 10.0

// Asset Catalog Compiler - Options
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon

// Apple Clang - Language
GCC_C_LANGUAGE_STANDARD = gnu11

Expand All @@ -30,16 +20,31 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"
// Apple Clang - Warnings - All Languages
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE

// Architectures
ONLY_ACTVE_ARCH = YES

// Asset Catalog Compiler - Options
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon

// Deployment
SKIP_INSTALL = NO
COPY_PHASE_STRIP = NO
IPHONEOS_DEPLOYMENT_TARGET = 10.0 // 3 of the 4 sample apps use Foundation or UIKit API introduced in 10.0

// Linking
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks

// Mac Catalyst - Deployment
DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES
SUPPORTS_MACCATALYST = YES

// Packaging
INFOPLIST_FILE = $(TARGET_NAME)/Info.plist
PRODUCT_BUNDLE_IDENTIFIER = com.twitter.${PRODUCT_NAME:rfc1034identifier}
PRODUCT_NAME = $(TARGET_NAME)

// Search Paths
FRAMEWORK_SEARCH_PATHS = $(inherited) $(PROJECT_DIR)/Extended

// Signing
CODE_SIGN_ENTITLEMENTS = $(TARGET_NAME)/$(TARGET_NAME).entitlements
7 changes: 6 additions & 1 deletion BuildConfiguration/TwitterImagePipeline.Test.ios.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand All @@ -17,6 +17,11 @@ SDKROOT = iphoneos
// Deployment
IPHONEOS_DEPLOYMENT_TARGET = 8.0

// Signing

// This is the result of setting "Sign to run locally" in "Signing & Capabilities" for mac (catalyst)
CODE_SIGN_IDENTITY[sdk=macosx*] = -

// Search Paths

// 1. we keep WebP.framework in our local "Extended" subfolder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand Down
10 changes: 3 additions & 7 deletions BuildConfiguration/TwitterImagePipeline.Test.tvos.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand All @@ -18,9 +18,5 @@ SDKROOT = appletvos
TARGETED_DEVICE_FAMILY = 3
TVOS_DEPLOYMENT_TARGET = 9.0

// Search Paths

// while there is an XCTest.framework at the appropriate location in
// Developer/AppleTVOS.platform/Developer/Library/Frameworks, the compiler
// can't find it without the following setting:
FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)/../../Library/Frameworks
// Packaging
INFOPLIST_FILE = TIPTests/Info.plist
2 changes: 1 addition & 1 deletion BuildConfiguration/TwitterImagePipeline.Test.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand Down
2 changes: 1 addition & 1 deletion BuildConfiguration/TwitterImagePipeline.framework.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand Down
43 changes: 43 additions & 0 deletions BuildConfiguration/TwitterImagePipeline.webp.framework.xcconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//
// TwitterImagePipeline.webp.framework.xcconfig
// TwitterImagePipeline
//
// Created on 9/25/19.
// Copyright © 2020 Twitter. All rights reserved.
//
// webp.framework as a dynamic .framework built from source is being included
// in TwitterImagePipeline in order to provide support when building for mac-catalyst .
// the settings in this .xcconfig are purposesly confined to "sdk=macos*" wherever the
// settings UI would allow us to do so in order to emphasize this is mac-catalyst only.

// Configuration settings file format documentation can be found at:
// https://help.apple.com/xcode/#/dev745c5c974


// Build Options
APPLICATION_EXTENSION_API_ONLY = YES

// Deployment
SKIP_INSTALL = YES

// Apple Clang - Preprocessing
GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(inherited) HAVE_CONFIG_H=1

// Search Paths
HEADER_SEARCH_PATHS[sdk=macosx*] = $(PROJECT_DIR)/Extended/libwebp

// Linking
DYLIB_INSTALL_NAME_BASE = @rpath
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks

// Packaging
DEFINES_MODULE = YES
INFOPLIST_FILE[sdk=macosx*] = $(TARGET_NAME)/Info.plist

PRODUCT_BUNDLE_IDENTIFIER[sdk=macosx*] = com.twitter.${TARGET_NAME:rfc1034identifier}
PRODUCT_MODULE_NAME = $(TARGET_NAME:c99extidentifier)
PRODUCT_NAME = $(TARGET_NAME)

// Versioning
CURRENT_PROJECT_VERSION = 1.0.3

5 changes: 3 additions & 2 deletions BuildConfiguration/TwitterImagePipeline.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 5/25/19.
// Copyright © 2019 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

// Configuration settings file format documentation can be found at:
Expand Down Expand Up @@ -57,7 +57,7 @@ CLANG_MODULES_AUTOLINK = NO
// Apple Clang - Language - Objective C
CLANG_ENABLE_OBJC_ARC = YES
CLANG_ENABLE_OBJC_WEAK = YES
gCLANG_LINK_OBJC_RUNTIME = YES
CLANG_LINK_OBJC_RUNTIME = YES

// Apple Clang - Preprocessing
ENABLE_NS_ASSERTIONS = NO
Expand Down Expand Up @@ -96,6 +96,7 @@ GCC_WARN_64_TO_32_BIT_CONVERSION = YES

// Apple Clang - Warnings - C++
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
CLANG_WARN_SUSPICIOUS_MOVE = YES
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES

Expand Down
36 changes: 34 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,46 @@

## Info

**Document version:** 2.13.0
**Document version:** 2.13.5

**Last updated:** 07/04/2019
**Last updated:** 04/12/2020

**Author:** Nolan O'Brien

## History

### 2.13.5

- Add _WebP_ support to Catalyst builds
- See `WEBP_README.md`
- Miscellaneous performance improvements
- Async load the default codes to avoid main thread blockage on app launch
- Tighter memory management with autorelease pools
- `TIPImageFetchHelper` will now register for all image cache updates and filter on observation vs registering against specific pipelines, which avoids register/unregister locking performance impact
- Add `TIPDetectImageTypeFromFile(...)` for efficient and effective image type detection from a file
- Add replacements for `UIImagePNGRepresentation` and `UIImageJPEGRepresentation`
- Unifies to the __TIP__ codec based encoding rather than the __UIKit__ implementation which can be unreliable for consistency.
- Provides progressive support for JPEG variant of functionality.
- See `-[UIImage tip_PNGRepresentation]` and `-[UIImage tip_JPEGRepresentationWithQuality:progressive:]`
- Add some palette based image utilities
- `-[UIImage tip_canLosslesslyEncodeUsingIndexedPaletteWithOptions:]`
- Fix bug where a GIF load may be incomplete in response but complete in data loaded failing to load in __TIP__
- Mostly an issue with some CDN vendors terminating the HTTP response incorrectly


### 2.13.2

- Add `[TIPGlobalConfiguration defaultInterpolationQuality]`
- By default, will use `CGInterpolationQualityDefault` which is same behavior as before
- Add quality arg to image scaling with `[UIImage tip_scaledImageWithTargetDimensions:contentMode:interpolationQuality:decode:]`

### 2.13.1

- Add `[TIPImageFetchDelegate tip_imageFetchOperation:didLoadDirtyPreviewImage:]` support
- This allows for the rendered cache to mark a specific entry dirty (by identifier)
- On fetch operation load, the dirty preview can be synchronously loaded while the op continues on async
- This helps systems where a larger version of an image with a shared identifier loads and matching fetch helpers that are not visible in the UI take note in order to refresh with the better resolution image, but without the risk of clearing that image's render cache which can lead to a 1 or 2 frame "flash" of the image loading async from cache

### 2.13.0

- Separate out authentication support for image requests from hydration support
Expand Down
2 changes: 1 addition & 1 deletion Extended/TIPXMP4Codec.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 3/16/17.
// Copyright © 2017 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

#import <TwitterImagePipeline/TIPImageCodecs.h>
Expand Down
6 changes: 3 additions & 3 deletions Extended/TIPXMP4Codec.m
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// TwitterImagePipeline
//
// Created on 3/16/17.
// Copyright © 2017 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

#import <TwitterImagePipeline/TwitterImagePipeline.h>
Expand Down Expand Up @@ -36,7 +36,7 @@ __strong tipx_defer_block_t tipx_macro_concat(tipx_stack_defer_block_, __LINE__)

#define TIPXDeferRelease(ref) tipx_defer(^{ if (ref) { CFRelease(ref); } })

#pragma twitter stopignorestylecheck
#pragma twitter endignorestylecheck

#pragma mark - Constants

Expand Down Expand Up @@ -286,7 +286,7 @@ - (nullable TIPImageContainer *)renderImageWithMode:(TIPImageDecoderRenderMode)m
message:error.description];
return;
}

CGSize naturalSize = self->_avTrack.naturalSize;

NSDictionary *outputSettings = @{
Expand Down
10 changes: 3 additions & 7 deletions Extended/TIPXWebPCodec.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,15 @@
// TwitterImagePipeline
//
// Created on 11/9/16.
// Copyright © 2016 Twitter. All rights reserved.
// Copyright © 2020 Twitter. All rights reserved.
//

#include <TargetConditionals.h>

#if !TARGET_OS_MACCATALYST

#import <TwitterImagePipeline/TIPImageCodecs.h>


NS_ASSUME_NONNULL_BEGIN

//! Custom image type for WebP, `@"google.webp"`
//! Custom image type for WebP, `@"public.webp"`
FOUNDATION_EXTERN NSString * const TIPXImageTypeWebP;

/**
Expand All @@ -32,4 +29,3 @@ FOUNDATION_EXTERN NSString * const TIPXImageTypeWebP;

NS_ASSUME_NONNULL_END

#endif // #if !TARGET_OS_MACCATALYST
Loading