├── .gitignore ├── .gitmodules ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── AppIcon ├── BHAppIconCell.h ├── BHAppIconCell.m ├── BHAppIconItem.h ├── BHAppIconItem.m ├── BHAppIconViewController.h └── BHAppIconViewController.m ├── BHDownload ├── BHDownload.h └── BHDownload.m ├── BHDownloadInlineButton.h ├── BHDownloadInlineButton.m ├── BHTBundle ├── BHTBundle.h └── BHTBundle.m ├── BHTManager.h ├── BHTManager.m ├── BHTwitter.plist ├── Colours ├── Colours.h └── Colours.m ├── CustomTabBar ├── BHCustomTabBarItem.h ├── BHCustomTabBarItem.m ├── BHCustomTabBarSection.h ├── BHCustomTabBarSection.m ├── BHCustomTabBarUtility.h ├── BHCustomTabBarUtility.m ├── BHCustomTabBarViewController.h └── BHCustomTabBarViewController.m ├── JGProgressHUD ├── JGProgressHUD-Defines.h ├── JGProgressHUD.h ├── JGProgressHUD.m ├── JGProgressHUDAnimation.h ├── JGProgressHUDAnimation.m ├── JGProgressHUDErrorIndicatorView.h ├── JGProgressHUDErrorIndicatorView.m ├── JGProgressHUDFadeAnimation.h ├── JGProgressHUDFadeAnimation.m ├── JGProgressHUDFadeZoomAnimation.h ├── JGProgressHUDFadeZoomAnimation.m ├── JGProgressHUDImageIndicatorView.h ├── JGProgressHUDImageIndicatorView.m ├── JGProgressHUDIndeterminateIndicatorView.h ├── JGProgressHUDIndeterminateIndicatorView.m ├── JGProgressHUDIndicatorView.h ├── JGProgressHUDIndicatorView.m ├── JGProgressHUDPieIndicatorView.h ├── JGProgressHUDPieIndicatorView.m ├── JGProgressHUDRingIndicatorView.h ├── JGProgressHUDRingIndicatorView.m ├── JGProgressHUDShadow.h ├── JGProgressHUDShadow.m ├── JGProgressHUDSuccessIndicatorView.h └── JGProgressHUDSuccessIndicatorView.m ├── Makefile ├── README.md ├── SAMKeychain ├── AuthViewController.h ├── AuthViewController.m ├── SAMKeychain.h ├── SAMKeychain.m ├── SAMKeychainQuery.h ├── SAMKeychainQuery.m ├── keychain.h └── keychain.m ├── SettingsViewController.h ├── SettingsViewController.m ├── TWHeaders.h ├── ThemeColor ├── BHColorThemeCell.h ├── BHColorThemeCell.m ├── BHColorThemeItem.h ├── BHColorThemeItem.m ├── BHColorThemeViewController.h └── BHColorThemeViewController.m ├── Tweak.x ├── build.sh ├── control ├── ffmpeg ├── AbstractSession.h ├── ArchDetect.h ├── AtomicLong.h ├── Chapter.h ├── FFmpegKit.h ├── FFmpegKitConfig.h ├── FFmpegSession.h ├── FFmpegSessionCompleteCallback.h ├── FFprobeKit.h ├── FFprobeSession.h ├── FFprobeSessionCompleteCallback.h ├── Level.h ├── Log.h ├── LogCallback.h ├── LogRedirectionStrategy.h ├── MediaInformation.h ├── MediaInformationJsonParser.h ├── MediaInformationSession.h ├── MediaInformationSessionCompleteCallback.h ├── Packages.h ├── ReturnCode.h ├── Session.h ├── SessionState.h ├── Statistics.h ├── StatisticsCallback.h ├── StreamInformation.h ├── config.h ├── ffmpegkit_exception.h ├── fftools_cmdutils.h ├── fftools_ffmpeg.h ├── fftools_ffmpeg_mux.h ├── fftools_fopen_utf8.h ├── fftools_objpool.h ├── fftools_opt_common.h ├── fftools_sync_queue.h ├── fftools_thread_queue.h ├── libavcodec │ ├── ac3_parser.h │ ├── adts_parser.h │ ├── arm │ │ └── mathops.h │ ├── avcodec.h │ ├── avdct.h │ ├── avfft.h │ ├── bsf.h │ ├── codec.h │ ├── codec_desc.h │ ├── codec_id.h │ ├── codec_par.h │ ├── d3d11va.h │ ├── defs.h │ ├── dirac.h │ ├── dv_profile.h │ ├── dxva2.h │ ├── jni.h │ ├── mathops.h │ ├── mediacodec.h │ ├── packet.h │ ├── qsv.h │ ├── vdpau.h │ ├── version.h │ ├── version_major.h │ ├── videotoolbox.h │ ├── vorbis_parser.h │ ├── x86 │ │ └── mathops.h │ └── xvmc.h ├── libavdevice │ ├── avdevice.h │ ├── version.h │ └── version_major.h ├── libavfilter │ ├── avfilter.h │ ├── buffersink.h │ ├── buffersrc.h │ ├── version.h │ └── version_major.h ├── libavformat │ ├── avformat.h │ ├── avio.h │ ├── network.h │ ├── os_support.h │ ├── url.h │ ├── version.h │ └── version_major.h ├── libavutil │ ├── aarch64 │ │ └── timer.h │ ├── adler32.h │ ├── aes.h │ ├── aes_ctr.h │ ├── ambient_viewing_environment.h │ ├── arm │ │ └── timer.h │ ├── attributes.h │ ├── attributes_internal.h │ ├── audio_fifo.h │ ├── avassert.h │ ├── avconfig.h │ ├── avstring.h │ ├── avutil.h │ ├── base64.h │ ├── blowfish.h │ ├── bprint.h │ ├── bswap.h │ ├── buffer.h │ ├── camellia.h │ ├── cast5.h │ ├── channel_layout.h │ ├── common.h │ ├── cpu.h │ ├── crc.h │ ├── csp.h │ ├── des.h │ ├── detection_bbox.h │ ├── dict.h │ ├── display.h │ ├── dovi_meta.h │ ├── downmix_info.h │ ├── encryption_info.h │ ├── error.h │ ├── eval.h │ ├── ffversion.h │ ├── fifo.h │ ├── file.h │ ├── film_grain_params.h │ ├── frame.h │ ├── getenv_utf8.h │ ├── hash.h │ ├── hdr_dynamic_metadata.h │ ├── hdr_dynamic_vivid_metadata.h │ ├── hmac.h │ ├── hwcontext.h │ ├── hwcontext_cuda.h │ ├── hwcontext_d3d11va.h │ ├── hwcontext_drm.h │ ├── hwcontext_dxva2.h │ ├── hwcontext_mediacodec.h │ ├── hwcontext_opencl.h │ ├── hwcontext_qsv.h │ ├── hwcontext_vaapi.h │ ├── hwcontext_vdpau.h │ ├── hwcontext_videotoolbox.h │ ├── hwcontext_vulkan.h │ ├── imgutils.h │ ├── internal.h │ ├── intfloat.h │ ├── intreadwrite.h │ ├── lfg.h │ ├── libm.h │ ├── log.h │ ├── lzo.h │ ├── macros.h │ ├── mastering_display_metadata.h │ ├── mathematics.h │ ├── md5.h │ ├── mem.h │ ├── motion_vector.h │ ├── murmur3.h │ ├── opt.h │ ├── parseutils.h │ ├── pixdesc.h │ ├── pixelutils.h │ ├── pixfmt.h │ ├── random_seed.h │ ├── rational.h │ ├── rc4.h │ ├── replaygain.h │ ├── reverse.h │ ├── ripemd.h │ ├── samplefmt.h │ ├── sha.h │ ├── sha512.h │ ├── spherical.h │ ├── stereo3d.h │ ├── tea.h │ ├── thread.h │ ├── threadmessage.h │ ├── time.h │ ├── timecode.h │ ├── timer.h │ ├── timestamp.h │ ├── tree.h │ ├── twofish.h │ ├── tx.h │ ├── uuid.h │ ├── version.h │ ├── video_enc_params.h │ ├── x86 │ │ ├── asm.h │ │ ├── emms.h │ │ └── timer.h │ └── xtea.h ├── libswresample │ ├── swresample.h │ ├── version.h │ └── version_major.h ├── libswscale │ ├── swscale.h │ ├── version.h │ └── version_major.h └── openssl │ ├── aes.h │ ├── asn1.h │ ├── asn1_mac.h │ ├── asn1err.h │ ├── asn1t.h │ ├── async.h │ ├── asyncerr.h │ ├── bio.h │ ├── bioerr.h │ ├── blowfish.h │ ├── bn.h │ ├── bnerr.h │ ├── buffer.h │ ├── buffererr.h │ ├── camellia.h │ ├── cast.h │ ├── cmac.h │ ├── cmp.h │ ├── cmp_util.h │ ├── cmperr.h │ ├── cms.h │ ├── cmserr.h │ ├── comp.h │ ├── comperr.h │ ├── conf.h │ ├── conf_api.h │ ├── conferr.h │ ├── configuration.h │ ├── conftypes.h │ ├── core.h │ ├── core_dispatch.h │ ├── core_names.h │ ├── core_object.h │ ├── crmf.h │ ├── crmferr.h │ ├── crypto.h │ ├── cryptoerr.h │ ├── cryptoerr_legacy.h │ ├── ct.h │ ├── cterr.h │ ├── decoder.h │ ├── decodererr.h │ ├── des.h │ ├── dh.h │ ├── dherr.h │ ├── dsa.h │ ├── dsaerr.h │ ├── dtls1.h │ ├── e_os2.h │ ├── ebcdic.h │ ├── ec.h │ ├── ecdh.h │ ├── ecdsa.h │ ├── ecerr.h │ ├── encoder.h │ ├── encodererr.h │ ├── engine.h │ ├── engineerr.h │ ├── err.h │ ├── ess.h │ ├── esserr.h │ ├── evp.h │ ├── evperr.h │ ├── fips_names.h │ ├── fipskey.h │ ├── hmac.h │ ├── http.h │ ├── httperr.h │ ├── idea.h │ ├── kdf.h │ ├── kdferr.h │ ├── lhash.h │ ├── macros.h │ ├── md2.h │ ├── md4.h │ ├── md5.h │ ├── mdc2.h │ ├── modes.h │ ├── obj_mac.h │ ├── objects.h │ ├── objectserr.h │ ├── ocsp.h │ ├── ocsperr.h │ ├── opensslconf.h │ ├── opensslv.h │ ├── ossl_typ.h │ ├── param_build.h │ ├── params.h │ ├── pem.h │ ├── pem2.h │ ├── pemerr.h │ ├── pkcs12.h │ ├── pkcs12err.h │ ├── pkcs7.h │ ├── pkcs7err.h │ ├── prov_ssl.h │ ├── proverr.h │ ├── provider.h │ ├── rand.h │ ├── randerr.h │ ├── rc2.h │ ├── rc4.h │ ├── rc5.h │ ├── ripemd.h │ ├── rsa.h │ ├── rsaerr.h │ ├── safestack.h │ ├── seed.h │ ├── self_test.h │ ├── sha.h │ ├── srp.h │ ├── srtp.h │ ├── ssl.h │ ├── ssl2.h │ ├── ssl3.h │ ├── sslerr.h │ ├── sslerr_legacy.h │ ├── stack.h │ ├── store.h │ ├── storeerr.h │ ├── symhacks.h │ ├── tls1.h │ ├── trace.h │ ├── ts.h │ ├── tserr.h │ ├── txt_db.h │ ├── types.h │ ├── ui.h │ ├── uierr.h │ ├── whrlpool.h │ ├── x509.h │ ├── x509_vfy.h │ ├── x509err.h │ ├── x509v3.h │ └── x509v3err.h ├── keychainfix ├── Makefile ├── Tweak.x └── keychainfix.plist ├── layout └── Library │ └── Application Support │ └── BHT │ └── BHTwitter.bundle │ ├── Acknowledgements.rtf │ ├── Info.plist │ ├── SAMKeychain.bundle │ └── en.lproj │ │ └── SAMKeychain.strings │ ├── ar.lproj │ └── Localizable.strings │ ├── en.lproj │ └── Localizable.strings │ ├── es.lproj │ └── Localizable.strings │ ├── fr.lproj │ └── Localizable.strings │ ├── id.lproj │ └── Localizable.strings │ ├── ja.lproj │ └── Localizable.strings │ ├── ru.lproj │ └── Localizable.strings │ ├── tr.lproj │ └── Localizable.strings │ ├── zh-Hant.lproj │ └── Localizable.strings │ └── zh_CN.lproj │ └── Localizable.strings ├── lib ├── libavcodec.a ├── libavdevice.a ├── libavfilter.a ├── libavformat.a ├── libavutil.a ├── libcrypto.a ├── libffmpegkit.a ├── libffmpegkit.la ├── libssl.a ├── libswresample.a ├── libswscale.a └── pkgconfig │ ├── libavcodec.pc │ ├── libavdevice.pc │ ├── libavfilter.pc │ ├── libavformat.pc │ ├── libavutil.pc │ ├── libcrypto.pc │ ├── libssl.pc │ ├── libswresample.pc │ ├── libswscale.pc │ └── openssl.pc ├── libflex ├── Makefile ├── control ├── depiction ├── libFLEX.h ├── libbhFLEX.plist └── libbhFLEX.x └── packages └── PUT_IPA_HERE /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .theos -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libflex/FLEX"] 2 | path = libflex/FLEX 3 | url = https://github.com/FLEXTool/FLEX 4 | -------------------------------------------------------------------------------- /1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/1.png -------------------------------------------------------------------------------- /2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/2.png -------------------------------------------------------------------------------- /3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/3.png -------------------------------------------------------------------------------- /4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/4.png -------------------------------------------------------------------------------- /AppIcon/BHAppIconCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppIconCell.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface BHAppIconCell : UICollectionViewCell 13 | @property (nonatomic, strong) UIImageView *imageView; 14 | @property (nonatomic, strong) UIImageView *checkIMG; 15 | + (NSString *)reuseIdentifier; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /AppIcon/BHAppIconCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppIconCell.m 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import "BHAppIconCell.h" 9 | 10 | @implementation BHAppIconCell 11 | - (instancetype)initWithFrame:(CGRect)frame { 12 | self = [super initWithFrame:frame]; 13 | if (self) { 14 | self.imageView = [[UIImageView alloc] init]; 15 | self.imageView.translatesAutoresizingMaskIntoConstraints = false; 16 | self.imageView.contentMode = UIViewContentModeScaleAspectFit; 17 | self.imageView.clipsToBounds = YES; 18 | self.imageView.layer.cornerRadius = 22; 19 | 20 | self.checkIMG = [[UIImageView alloc] init]; 21 | self.checkIMG.image = [UIImage systemImageNamed:@"circle"]; 22 | self.checkIMG.translatesAutoresizingMaskIntoConstraints = false; 23 | 24 | [self addSubview:self.imageView]; 25 | [self addSubview:self.checkIMG]; 26 | 27 | [NSLayoutConstraint activateConstraints:@[ 28 | [self.imageView.topAnchor constraintEqualToAnchor:self.topAnchor], 29 | [self.imageView.leadingAnchor constraintEqualToAnchor:self.leadingAnchor], 30 | [self.imageView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], 31 | [self.imageView.heightAnchor constraintEqualToConstant:98], 32 | [self.imageView.widthAnchor constraintEqualToConstant:98], 33 | 34 | [self.checkIMG.topAnchor constraintEqualToAnchor:self.imageView.bottomAnchor constant:12], 35 | [self.checkIMG.centerXAnchor constraintEqualToAnchor:self.centerXAnchor], 36 | [self.checkIMG.widthAnchor constraintEqualToConstant:24], 37 | [self.checkIMG.heightAnchor constraintEqualToConstant:24], 38 | ]]; 39 | } 40 | return self; 41 | } 42 | + (NSString *)reuseIdentifier { 43 | return @"appicon"; 44 | } 45 | @end 46 | -------------------------------------------------------------------------------- /AppIcon/BHAppIconItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHAppIconItem.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | @interface BHAppIconItem : NSObject 12 | @property (nonatomic, strong) NSString *imageName; 13 | @property (nonatomic, strong) NSString *settingsImageName; 14 | @property(nonatomic, assign) BOOL isPrimaryIcon; 15 | - (instancetype)initWithImageName:(NSString *)imageName settingsImageName:(NSString *)settingsImageName isPrimaryIcon:(bool)isPrimaryIcon; 16 | @end 17 | -------------------------------------------------------------------------------- /AppIcon/BHAppIconItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // BHAppIconItem.m 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import "BHAppIconItem.h" 9 | 10 | @implementation BHAppIconItem 11 | - (instancetype)initWithImageName:(NSString *)imageName settingsImageName:(NSString *)settingsImageName isPrimaryIcon:(bool)isPrimaryIcon { 12 | self = [super init]; 13 | if (self) { 14 | _imageName = imageName; 15 | _settingsImageName = settingsImageName; 16 | _isPrimaryIcon = isPrimaryIcon; 17 | } 18 | return self; 19 | } 20 | @end 21 | -------------------------------------------------------------------------------- /AppIcon/BHAppIconViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHAppIconViewController.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface BHAppIconViewController : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /BHDownload/BHDownload.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHDownload.h 3 | // DIYTableView 4 | // 5 | // Created by BandarHelal on 12/01/1442 AH. 6 | // Copyright © 1442 BandarHelal. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol BHDownloadDelegate 15 | @optional 16 | - (void)downloadProgress:(float)progress; 17 | - (void)downloadDidFinish:(NSURL *)filePath Filename:(NSString *)fileName; 18 | - (void)downloadDidFailureWithError:(NSError *)error; 19 | @end 20 | 21 | @interface BHDownload : NSObject 22 | { 23 | id delegate; 24 | } 25 | - (void)setDelegate:(id)newDelegate; 26 | - (instancetype)init; 27 | - (void)downloadFileWithURL:(NSURL *)url; 28 | @property (nonatomic, strong) NSString *fileName; 29 | @end 30 | 31 | @interface BHDownload () 32 | @property (nonatomic, strong) NSURLSession *Session; 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /BHDownload/BHDownload.m: -------------------------------------------------------------------------------- 1 | // 2 | // BHDownload.m 3 | // DIYTableView 4 | // 5 | // Created by BandarHelal on 12/01/1442 AH. 6 | // Copyright © 1442 BandarHelal. All rights reserved. 7 | // 8 | 9 | #import "BHDownload.h" 10 | 11 | @implementation BHDownload 12 | - (instancetype)init { 13 | self = [super init]; 14 | if (self) { 15 | self.Session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[NSOperationQueue mainQueue]]; 16 | } 17 | return self; 18 | } 19 | 20 | - (void)downloadFileWithURL:(NSURL *)url { 21 | if (url) { 22 | self.fileName = url.absoluteString.lastPathComponent; 23 | NSURLSessionDownloadTask *downloadTask = [self.Session downloadTaskWithURL:url]; 24 | [downloadTask resume]; 25 | } 26 | } 27 | - (void)setDelegate:(id)newDelegate { 28 | if (newDelegate) { 29 | delegate = newDelegate; 30 | } 31 | } 32 | - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite { 33 | float prog = (float)totalBytesWritten / (float)totalBytesExpectedToWrite; 34 | [delegate downloadProgress:prog]; 35 | } 36 | - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(nonnull NSURL *)location { 37 | [delegate downloadDidFinish:location Filename:self.fileName]; 38 | } 39 | - (void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(NSError *)error { 40 | [delegate downloadDidFailureWithError:error]; 41 | } 42 | - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error { 43 | [delegate downloadDidFailureWithError:error]; 44 | } 45 | @end 46 | -------------------------------------------------------------------------------- /BHDownloadInlineButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHDownloadInlineButton.h 3 | // BHTwitter 4 | // 5 | // Created by BandarHelal on 09/04/2022. 6 | // 7 | 8 | #import 9 | #import "BHTManager.h" 10 | 11 | @interface BHDownloadInlineButton : UIButton 12 | { 13 | NSUInteger _displayType; 14 | NSUInteger _inlineActionType; 15 | T1StatusInlineActionsView *_delegate; 16 | id _buttonAnimator; 17 | id _viewModel; 18 | } 19 | 20 | + (CGSize)buttonImageSizeUsingViewModel:(id)arg1 options:(NSUInteger)arg2 overrideButtonSize:(CGSize)arg3 account:(id)arg4; 21 | @property(retain, nonatomic) id buttonAnimator; 22 | @property(retain, nonatomic) T1StatusInlineActionsView *delegate; 23 | @property(nonatomic, assign) UIEdgeInsets hitTestEdgeInsets; 24 | @property (nonatomic, assign, readwrite) UIEdgeInsets touchInsets; 25 | @property(nonatomic) NSUInteger inlineActionType; 26 | @property(nonatomic) NSUInteger displayType; 27 | @property (nonatomic) id viewModel; 28 | - (void)setTouchInsets:(UIEdgeInsets)arg1; 29 | - (id)_t1_imageNamed:(id)arg1 fitSize:(CGSize)arg2 fillColor:(id)arg3; 30 | - (_Bool)shouldShowCount; 31 | - (double)extraWidth; 32 | - (CGFloat)trailingEdgeInset; 33 | - (NSUInteger)touchInsetPriority; 34 | - (NSUInteger)alternateInlineActionType; 35 | - (NSUInteger)visibility; 36 | - (NSString *)actionSheetTitle; 37 | - (_Bool)enabled; 38 | - (void)statusDidUpdate:(id)arg1 options:(NSUInteger)arg2 displayTextOptions:(NSUInteger)arg3 animated:(BOOL)arg4; 39 | - (void)statusDidUpdate:(id)arg1 options:(NSUInteger)arg2 displayTextOptions:(NSUInteger)arg3 animated:(BOOL)arg4 featureSwitches:(id)arg5; 40 | - (instancetype)initWithOptions:(NSUInteger)arg1 overrideSize:(id)arg2 account:(id)arg3; 41 | - (instancetype)initWithInlineActionType:(NSUInteger)arg1 options:(NSUInteger)arg2 overrideSize:(id)arg3 account:(id)arg4; 42 | @end 43 | -------------------------------------------------------------------------------- /BHTBundle/BHTBundle.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHTBundle.h 3 | // BHTwitter 4 | // 5 | // Created by BandarHelal on 07/08/2022. 6 | // 7 | 8 | #import 9 | 10 | @interface BHTBundle : NSObject 11 | + (instancetype)sharedBundle; 12 | - (NSString *)localizedStringForKey:(NSString *)key; 13 | - (NSURL *)pathForFile:(NSString *)fileName; 14 | - (NSString *)BHTwitterVersion; 15 | @end 16 | -------------------------------------------------------------------------------- /BHTBundle/BHTBundle.m: -------------------------------------------------------------------------------- 1 | // 2 | // BHTBundle.m 3 | // BHTwitter 4 | // 5 | // Created by BandarHelal on 07/08/2022. 6 | // 7 | 8 | #import "BHTBundle.h" 9 | 10 | @interface BHTBundle () 11 | @property (nonatomic, strong) NSBundle *mainBundle; 12 | @end 13 | 14 | @implementation BHTBundle 15 | + (instancetype)sharedBundle { 16 | static BHTBundle *sharedBundle = nil; 17 | static dispatch_once_t onceToken; 18 | dispatch_once(&onceToken, ^{ 19 | NSFileManager *fileManager = [NSFileManager defaultManager]; 20 | NSURL *bundlePath = [NSURL new]; 21 | if ([fileManager fileExistsAtPath:@"/Library/Application Support/BHT/BHTwitter.bundle"]) { 22 | bundlePath = [NSURL fileURLWithPath:@"/Library/Application Support/BHT/BHTwitter.bundle"]; 23 | } else if ([fileManager fileExistsAtPath:@"/var/jb/Library/Application Support/BHT/BHTwitter.bundle"]) { 24 | bundlePath = [NSURL fileURLWithPath:@"/var/jb/Library/Application Support/BHT/BHTwitter.bundle"]; 25 | } else { 26 | bundlePath = [[NSBundle mainBundle] URLForResource:@"BHTwitter" withExtension:@"bundle"]; 27 | } 28 | 29 | sharedBundle = [[self alloc] initWithBundlePath:bundlePath]; 30 | }); 31 | return sharedBundle; 32 | } 33 | - (instancetype)initWithBundlePath:(NSURL *)bundlePath { 34 | if (self = [super init]) { 35 | self.mainBundle = [NSBundle bundleWithPath:[bundlePath path]]; 36 | } 37 | 38 | return self; 39 | } 40 | 41 | - (NSString *)localizedStringForKey:(NSString *)key { 42 | return [self.mainBundle localizedStringForKey:key value:key table:nil]; 43 | } 44 | - (NSURL *)pathForFile:(NSString *)fileName { 45 | return [self.mainBundle URLForResource:fileName withExtension:nil]; 46 | } 47 | - (NSString *)BHTwitterVersion { 48 | return [self.mainBundle objectForInfoDictionaryKey:@"BHTVersion"]; 49 | } 50 | @end 51 | -------------------------------------------------------------------------------- /BHTManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHTdownloadManager.h 3 | // BHT 4 | // 5 | // Created by BandarHelal on 24/12/1441 AH. 6 | // 7 | 8 | #import "TWHeaders.h" 9 | 10 | 11 | @interface BHTManager : NSObject 12 | + (NSString *)getDownloadingPersent:(float)per; 13 | + (void)cleanCache; 14 | + (NSString *)getVideoQuality:(NSString *)url; 15 | + (BOOL)isVideoCell:(id )model; 16 | + (bool)isDMVideoCell:(T1InlineMediaView *)view; 17 | + (BOOL)doesContainDigitsOnly:(NSString *)string; 18 | + (UIViewController *)BHTSettingsWithAccount:(TFNTwitterAccount *)twAccount; 19 | + (void)showSaveVC:(NSURL *)url; 20 | + (void)save:(NSURL *)url; 21 | + (MediaInformation *)getM3U8Information:(NSURL *)mediaURL; 22 | + (TFNMenuSheetViewController *)newFFmpegDownloadSheet:(MediaInformation *)mediaInformation downloadingURL:(NSURL *)downloadingURL progressView:(JGProgressHUD *)hud; 23 | 24 | + (BOOL)DownloadingVideos; 25 | + (BOOL)DirectSave; 26 | + (BOOL)UndoTweet; 27 | + (BOOL)NoHistory; 28 | + (BOOL)BioTranslate; 29 | + (BOOL)LikeConfirm; 30 | + (BOOL)TweetConfirm; 31 | + (BOOL)FollowConfirm; 32 | + (BOOL)HidePromoted; 33 | + (BOOL)HideTopics; 34 | + (BOOL)DisableVODCaptions; 35 | + (BOOL)Padlock; 36 | + (BOOL)OldStyle; 37 | + (BOOL)changeFont; 38 | + (BOOL)FLEX; 39 | + (BOOL)autoHighestLoad; 40 | + (BOOL)disableSensitiveTweetWarnings; 41 | + (BOOL)showScrollIndicator; 42 | + (BOOL)CopyProfileInfo; 43 | + (BOOL)tweetToImage; 44 | + (BOOL)hideSpacesBar; 45 | + (BOOL)disableRTL; 46 | + (BOOL)alwaysOpenSafari; 47 | + (BOOL)hideWhoToFollow; 48 | + (BOOL)hideTopicsToFollow; 49 | + (BOOL)hideViewCount; 50 | + (BOOL)forceTweetFullFrame; 51 | + (BOOL)stripTrackingParams; 52 | + (BOOL)alwaysFollowingPage; 53 | + (BOOL)stopHidingTabBar; 54 | + (BOOL)changeBackground; 55 | + (bool)backgroundImage; 56 | + (BOOL)hideBookmarkButton; 57 | + (BOOL)customVoice; 58 | @end 59 | 60 | -------------------------------------------------------------------------------- /BHTwitter.plist: -------------------------------------------------------------------------------- 1 | { Filter = { Bundles = ( "com.atebits.Tweetie2" ); }; } 2 | -------------------------------------------------------------------------------- /CustomTabBar/BHCustomTabBarItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHCustomTabBarItem.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface BHCustomTabBarItem : NSObject 13 | @property (nonatomic, strong) NSString *title; 14 | @property (nonatomic, strong) NSString *pageID; 15 | - (instancetype)initWithTitle:(NSString *)title pageID:(NSString *)pageID; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /CustomTabBar/BHCustomTabBarItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // BHCustomTabBarItem.m 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import "BHCustomTabBarItem.h" 9 | 10 | @implementation BHCustomTabBarItem 11 | - (instancetype)initWithTitle:(NSString *)title pageID:(NSString *)pageID { 12 | self = [super init]; 13 | if (self) { 14 | _title = title; 15 | _pageID = pageID; 16 | } 17 | return self; 18 | } 19 | 20 | - (void)encodeWithCoder:(NSCoder *)encoder { 21 | [encoder encodeObject:self.title forKey:@"title"]; 22 | [encoder encodeObject:self.pageID forKey:@"pageID"]; 23 | } 24 | 25 | - (instancetype)initWithCoder:(NSCoder *)decoder { 26 | self = [super init]; 27 | if (self) { 28 | _title = [decoder decodeObjectForKey:@"title"]; 29 | _pageID = [decoder decodeObjectForKey:@"pageID"]; 30 | } 31 | return self; 32 | } 33 | @end 34 | -------------------------------------------------------------------------------- /CustomTabBar/BHCustomTabBarSection.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHCustomTabBarSection.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | #import "BHCustomTabBarItem.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BHCustomTabBarSection : NSObject 14 | @property (nonatomic, strong) NSString *title; 15 | @property (nonatomic, strong) NSMutableArray *items; 16 | - (instancetype)initWithTitle:(NSString *)title items:(NSArray *)items; 17 | - (void)saveItemsForKey:(NSString *)key; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /CustomTabBar/BHCustomTabBarSection.m: -------------------------------------------------------------------------------- 1 | // 2 | // BHCustomTabBarSection.m 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import "BHCustomTabBarSection.h" 9 | 10 | @implementation BHCustomTabBarSection 11 | - (instancetype)initWithTitle:(NSString *)title items:(NSArray *)items { 12 | self = [super init]; 13 | if (self) { 14 | _title = title; 15 | _items = [items mutableCopy]; 16 | } 17 | return self; 18 | } 19 | 20 | - (void)saveItemsForKey:(NSString *)key { 21 | NSData *encodedItems = [NSKeyedArchiver archivedDataWithRootObject:self.items]; 22 | [[NSUserDefaults standardUserDefaults] setObject:encodedItems forKey:key]; 23 | } 24 | @end 25 | -------------------------------------------------------------------------------- /CustomTabBar/BHCustomTabBarUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHCustomTabBarUtility.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | #import "BHCustomTabBarSection.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BHCustomTabBarUtility : NSObject 14 | + (NSArray *)getAllowedTabBars; 15 | + (NSArray *)getHiddenTabBars; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /CustomTabBar/BHCustomTabBarUtility.m: -------------------------------------------------------------------------------- 1 | // 2 | // BHCustomTabBarUtility.m 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import "BHCustomTabBarUtility.h" 9 | 10 | @implementation BHCustomTabBarUtility 11 | + (NSArray *)getAllowedTabBars { 12 | NSData *savedItems = [[NSUserDefaults standardUserDefaults] objectForKey:@"allowed"]; 13 | if (savedItems) { 14 | NSArray *savedList = [NSKeyedUnarchiver unarchiveObjectWithData:savedItems]; 15 | NSMutableArray *tmpArr = [NSMutableArray array]; 16 | for (BHCustomTabBarItem *item in savedList) { 17 | [tmpArr addObject:item.pageID]; 18 | } 19 | return tmpArr; 20 | } 21 | return nil; 22 | } 23 | 24 | + (NSArray *)getHiddenTabBars { 25 | NSData *savedItems = [[NSUserDefaults standardUserDefaults] objectForKey:@"hidden"]; 26 | if (savedItems) { 27 | NSArray *savedList = [NSKeyedUnarchiver unarchiveObjectWithData:savedItems]; 28 | NSMutableArray *tmpArr = [NSMutableArray array]; 29 | for (BHCustomTabBarItem *item in savedList) { 30 | [tmpArr addObject:item.pageID]; 31 | } 32 | return tmpArr; 33 | } 34 | return nil; 35 | } 36 | @end 37 | -------------------------------------------------------------------------------- /CustomTabBar/BHCustomTabBarViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHCustomTabBarViewController.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 11/12/2023. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface BHCustomTabBarViewController : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDAnimation.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 20.7.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @class JGProgressHUD; 13 | 14 | /** 15 | You may subclass this class to create a custom progress indicator view. 16 | */ 17 | @interface JGProgressHUDAnimation : NSObject 18 | 19 | /** Convenience initializer. */ 20 | + (instancetype __nonnull)animation; 21 | 22 | /** The HUD using this animation. */ 23 | @property (nonatomic, weak, readonly, nullable) JGProgressHUD *progressHUD; 24 | 25 | /** 26 | The @c progressHUD is hidden from screen with @c alpha = 1 and @c hidden = @c YES. Ideally, you should prepare the HUD for presentation, then set @c hidden to @c NO on the @c progressHUD and then perform the animation. 27 | @post Call @c animationFinished. 28 | */ 29 | - (void)show NS_REQUIRES_SUPER; 30 | 31 | /** 32 | The @c progressHUD wis visible on screen with @c alpha = 1 and @c hidden = @c NO. You should only perform the animation in this method, the @c progressHUD itself will take care of hiding itself and removing itself from superview. 33 | @post Call @c animationFinished. 34 | */ 35 | - (void)hide NS_REQUIRES_SUPER; 36 | 37 | /** 38 | @pre This method should only be called at the end of a @c show or @c hide animaiton. 39 | @attention ALWAYS call this method after completing a @c show or @c hide animation. 40 | */ 41 | - (void)animationFinished NS_REQUIRES_SUPER; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDAnimation.m 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 20.7.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import "JGProgressHUDAnimation.h" 10 | #import "JGProgressHUD.h" 11 | 12 | @interface JGProgressHUD (Private) 13 | 14 | - (void)animationDidFinish:(BOOL)presenting; 15 | 16 | @end 17 | 18 | @interface JGProgressHUDAnimation () { 19 | BOOL _presenting; 20 | } 21 | 22 | @property (nonatomic, weak) JGProgressHUD *progressHUD; 23 | 24 | @end 25 | 26 | @implementation JGProgressHUDAnimation 27 | 28 | #pragma mark - Initializers 29 | 30 | + (instancetype)animation { 31 | return [[self alloc] init]; 32 | } 33 | 34 | #pragma mark - Public methods 35 | 36 | - (void)show { 37 | _presenting = YES; 38 | } 39 | 40 | - (void)hide { 41 | _presenting = NO; 42 | } 43 | 44 | - (void)animationFinished { 45 | [self.progressHUD animationDidFinish:_presenting]; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDErrorIndicatorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDErrorIndicatorView.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 19.08.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #pragma clang diagnostic push 10 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 11 | #import "JGProgressHUDImageIndicatorView.h" 12 | #pragma clang diagnostic pop 13 | 14 | /** 15 | An image indicator showing a cross, representing a failed operation. 16 | */ 17 | @interface JGProgressHUDErrorIndicatorView : JGProgressHUDImageIndicatorView 18 | 19 | /** 20 | Default initializer for this class. 21 | */ 22 | - (instancetype __nonnull)init; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDErrorIndicatorView.m: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDErrorIndicatorView.m 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 19.08.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import "JGProgressHUDErrorIndicatorView.h" 10 | #import "JGProgressHUD.h" 11 | 12 | static UIBezierPath *errorBezierPath() { 13 | static UIBezierPath *path; 14 | 15 | static dispatch_once_t onceToken; 16 | dispatch_once(&onceToken, ^{ 17 | path = [UIBezierPath bezierPath]; 18 | [path moveToPoint:CGPointMake(3, 3)]; 19 | [path addLineToPoint:CGPointMake(30, 30)]; 20 | [path moveToPoint:CGPointMake(30, 3)]; 21 | [path addLineToPoint:CGPointMake(3, 30)]; 22 | 23 | [path setLineWidth:3]; 24 | [path setLineJoinStyle:kCGLineJoinRound]; 25 | [path setLineCapStyle:kCGLineCapRound]; 26 | }); 27 | 28 | return path; 29 | } 30 | 31 | @implementation JGProgressHUDErrorIndicatorView 32 | 33 | - (instancetype)initWithContentView:(UIView *__unused)contentView { 34 | UIBezierPath *path = errorBezierPath(); 35 | 36 | UIGraphicsBeginImageContextWithOptions(CGSizeMake(33, 33), NO, 0.0); 37 | [[UIColor blackColor] setStroke]; 38 | [path stroke]; 39 | 40 | UIImage *img = [UIGraphicsGetImageFromCurrentImageContext() imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 41 | 42 | UIGraphicsEndImageContext(); 43 | 44 | self = [super initWithImage:img]; 45 | 46 | return self; 47 | } 48 | 49 | - (instancetype)init { 50 | return [self initWithContentView:nil]; 51 | } 52 | 53 | - (void)updateAccessibility { 54 | self.accessibilityLabel = NSLocalizedString(@"Error",); 55 | } 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDFadeAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDFadeAnimation.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 20.7.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #pragma clang diagnostic push 10 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 11 | #import "JGProgressHUDAnimation.h" 12 | #pragma clang diagnostic pop 13 | 14 | /** 15 | A simple fade animation that fades the HUD from alpha @c 0.0 to alpha @c 1.0. 16 | */ 17 | @interface JGProgressHUDFadeAnimation : JGProgressHUDAnimation 18 | 19 | /** 20 | Duration of the animation. 21 | 22 | @b Default: 0.4. 23 | */ 24 | @property (nonatomic, assign) NSTimeInterval duration; 25 | 26 | /** 27 | Animation options 28 | 29 | @b Default: UIViewAnimationOptionCurveEaseInOut. 30 | */ 31 | @property (nonatomic, assign) UIViewAnimationOptions animationOptions; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDFadeAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDFadeAnimation.m 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 20.7.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import "JGProgressHUDFadeAnimation.h" 10 | #import "JGProgressHUD.h" 11 | 12 | @implementation JGProgressHUDFadeAnimation 13 | 14 | #pragma mark - Initializers 15 | 16 | - (instancetype)init { 17 | self = [super init]; 18 | if (self) { 19 | self.duration = 0.4; 20 | self.animationOptions = UIViewAnimationOptionCurveEaseInOut; 21 | } 22 | return self; 23 | } 24 | 25 | - (void)setAnimationOptions:(UIViewAnimationOptions)animationOptions { 26 | _animationOptions = (animationOptions | UIViewAnimationOptionBeginFromCurrentState); 27 | } 28 | 29 | #pragma mark - Showing 30 | 31 | - (void)show { 32 | [super show]; 33 | 34 | self.progressHUD.alpha = 0.0; 35 | self.progressHUD.hidden = NO; 36 | 37 | [UIView animateWithDuration:self.duration delay:0.0 options:self.animationOptions animations:^{ 38 | self.progressHUD.alpha = 1.0; 39 | } completion:^(BOOL __unused finished) { 40 | [self animationFinished]; 41 | }]; 42 | } 43 | 44 | #pragma mark - Hiding 45 | 46 | - (void)hide { 47 | [super hide]; 48 | 49 | [UIView animateWithDuration:self.duration delay:0.0 options:self.animationOptions animations:^{ 50 | self.progressHUD.alpha = 0.0; 51 | } completion:^(BOOL __unused finished) { 52 | [self animationFinished]; 53 | }]; 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDFadeZoomAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDFadeZoomAnimation.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 20.7.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #pragma clang diagnostic push 10 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 11 | #import "JGProgressHUDAnimation.h" 12 | #pragma clang diagnostic pop 13 | 14 | /** 15 | An animation that fades in the HUD and expands the HUD from scale @c (0, 0) to a customizable scale, and finally to scale @c (1, 1), creating a bouncing effect. 16 | */ 17 | @interface JGProgressHUDFadeZoomAnimation : JGProgressHUDAnimation 18 | 19 | /** 20 | Duration of the animation from or to the shrinked state. 21 | 22 | @b Default: 0.2. 23 | */ 24 | @property (nonatomic, assign) NSTimeInterval shrinkAnimationDuaration; 25 | 26 | /** 27 | Duration of the animation from or to the expanded state. 28 | 29 | @b Default: 0.1. 30 | */ 31 | @property (nonatomic, assign) NSTimeInterval expandAnimationDuaration; 32 | 33 | /** 34 | The scale to apply to the HUD when expanding. 35 | 36 | @b Default: (1.1, 1.1). 37 | */ 38 | @property (nonatomic, assign) CGSize expandScale; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDImageIndicatorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDImageIndicatorView.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 05.08.15. 6 | // Copyright (c) 2015 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #pragma clang diagnostic push 10 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 11 | #import "JGProgressHUDIndicatorView.h" 12 | #pragma clang diagnostic pop 13 | 14 | /** 15 | An indicator for displaying custom images. Supports animated images. 16 | 17 | You may subclass this class to create a custom image indicator view. 18 | */ 19 | @interface JGProgressHUDImageIndicatorView : JGProgressHUDIndicatorView 20 | 21 | /** 22 | Initializes the indicator view with an UIImageView showing the @c image. 23 | 24 | @param image The image to show in the indicator view. 25 | */ 26 | - (instancetype __nonnull)initWithImage:(UIImage *__nonnull)image; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDImageIndicatorView.m: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDImageIndicatorView.m 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 05.08.15. 6 | // Copyright (c) 2015 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import "JGProgressHUDImageIndicatorView.h" 10 | 11 | @implementation JGProgressHUDImageIndicatorView { 12 | BOOL _customizedTintColor; 13 | } 14 | 15 | - (instancetype)initWithImage:(UIImage *)image { 16 | UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 17 | 18 | self = [super initWithContentView:imageView]; 19 | 20 | return self; 21 | } 22 | 23 | - (void)setUpForHUDStyle:(JGProgressHUDStyle)style vibrancyEnabled:(BOOL)vibrancyEnabled { 24 | [super setUpForHUDStyle:style vibrancyEnabled:vibrancyEnabled]; 25 | 26 | if (!_customizedTintColor) { 27 | if (style == JGProgressHUDStyleDark) { 28 | self.tintColor = [UIColor whiteColor]; 29 | } 30 | else { 31 | self.tintColor = [UIColor blackColor]; 32 | } 33 | _customizedTintColor = NO; 34 | } 35 | } 36 | 37 | - (void)setTintColor:(UIColor *)tintColor { 38 | [super setTintColor:tintColor]; 39 | _customizedTintColor = YES; 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDIndeterminateIndicatorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDIndeterminateIndicatorView.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 19.07.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #pragma clang diagnostic push 10 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 11 | #import "JGProgressHUDIndicatorView.h" 12 | #pragma clang diagnostic pop 13 | 14 | /** 15 | An indeterminate progress indicator showing a @c UIActivityIndicatorView. 16 | */ 17 | @interface JGProgressHUDIndeterminateIndicatorView : JGProgressHUDIndicatorView 18 | 19 | /** 20 | Set the color of the activity indicator view. 21 | @param color The color to apply to the activity indicator view. 22 | */ 23 | - (void)setColor:(UIColor *__nonnull)color; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDIndeterminateIndicatorView.m: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDIndeterminateIndicatorView.m 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 19.07.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import "JGProgressHUDIndeterminateIndicatorView.h" 10 | 11 | #ifndef __IPHONE_13_0 12 | #define __IPHONE_13_0 130000 13 | #endif 14 | 15 | @implementation JGProgressHUDIndeterminateIndicatorView 16 | 17 | - (instancetype)init { 18 | UIActivityIndicatorView *activityIndicatorView; 19 | 20 | #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0 21 | if (@available(iOS 13, tvOS 13, *)) { 22 | activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleLarge]; 23 | } 24 | else { 25 | #pragma clang diagnostic push 26 | #pragma clang diagnostic ignored "-Wdeprecated-declarations" 27 | activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 28 | #pragma clang diagnostic pop 29 | } 30 | #else 31 | activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 32 | #endif 33 | 34 | [activityIndicatorView startAnimating]; 35 | 36 | self = [super initWithContentView:activityIndicatorView]; 37 | return self; 38 | } 39 | 40 | - (instancetype)initWithHUDStyle:(JGProgressHUDStyle)style { 41 | return [self init]; 42 | } 43 | 44 | - (void)setUpForHUDStyle:(JGProgressHUDStyle)style vibrancyEnabled:(BOOL)vibrancyEnabled { 45 | [super setUpForHUDStyle:style vibrancyEnabled:vibrancyEnabled]; 46 | 47 | if (style != JGProgressHUDStyleDark) { 48 | self.color = [UIColor blackColor]; 49 | } 50 | else { 51 | self.color = [UIColor whiteColor]; 52 | } 53 | } 54 | 55 | - (void)setColor:(UIColor *)color { 56 | [(UIActivityIndicatorView *)self.contentView setColor:color]; 57 | } 58 | 59 | - (void)updateAccessibility { 60 | self.accessibilityLabel = NSLocalizedString(@"Indeterminate progress",); 61 | } 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDPieIndicatorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDPieIndicatorView.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 19.07.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #pragma clang diagnostic push 10 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 11 | #import "JGProgressHUDIndicatorView.h" 12 | #pragma clang diagnostic pop 13 | 14 | /** 15 | A pie shaped determinate progress indicator. 16 | */ 17 | @interface JGProgressHUDPieIndicatorView : JGProgressHUDIndicatorView 18 | 19 | /** 20 | Tint color of the Pie. 21 | @attention Custom values need to be set after assigning the indicator view to @c JGProgressHUD's @c indicatorView property. 22 | 23 | @b Default: White for JGProgressHUDStyleDark, otherwise black. 24 | */ 25 | @property (nonatomic, strong, nonnull) UIColor *color; 26 | 27 | /** 28 | The background fill color inside the pie. 29 | @attention Custom values need to be set after assigning the indicator view to @c JGProgressHUD's @c indicatorView property. 30 | 31 | @b Default: Dark gray for JGProgressHUDStyleDark, otherwise light gray. 32 | */ 33 | @property (nonatomic, strong, nonnull) UIColor *fillColor; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDRingIndicatorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDRingIndicatorView.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 20.7.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #pragma clang diagnostic push 10 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 11 | #import "JGProgressHUDIndicatorView.h" 12 | #pragma clang diagnostic pop 13 | 14 | /** 15 | A ring shaped determinate progress indicator. 16 | */ 17 | @interface JGProgressHUDRingIndicatorView : JGProgressHUDIndicatorView 18 | 19 | /** 20 | Background color of the ring. 21 | @attention Custom values need to be set after assigning the indicator view to @c JGProgressHUD's @c indicatorView property. 22 | 23 | @b Default: Black for JGProgressHUDStyleDark, light gray otherwise. 24 | */ 25 | @property (nonatomic, strong, nonnull) UIColor *ringBackgroundColor; 26 | 27 | /** 28 | Progress color of the progress ring. 29 | @attention Custom values need to be set after assigning the indicator view to @c JGProgressHUD's @c indicatorView property. 30 | 31 | @b Default: White for JGProgressHUDStyleDark, otherwise black. 32 | */ 33 | @property (nonatomic, strong, nonnull) UIColor *ringColor; 34 | 35 | /** 36 | Sets if the progress ring should have a rounded line cap. 37 | 38 | @b Default: NO. 39 | */ 40 | @property (nonatomic, assign) BOOL roundProgressLine; 41 | 42 | /** 43 | Width of the ring. 44 | 45 | @b Default: 3.0. 46 | */ 47 | @property (nonatomic, assign) CGFloat ringWidth; 48 | 49 | @end 50 | 51 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDShadow.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDShadow.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 25.09.17. 6 | // Copyright © 2017 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | A wrapper representing properties of a shadow. 13 | */ 14 | @interface JGProgressHUDShadow : NSObject 15 | 16 | - (instancetype __nonnull)initWithColor:(UIColor *__nonnull)color offset:(CGSize)offset radius:(CGFloat)radius opacity:(float)opacity; 17 | 18 | /** Convenience initializer. */ 19 | + (instancetype __nonnull)shadowWithColor:(UIColor *__nonnull)color offset:(CGSize)offset radius:(CGFloat)radius opacity:(float)opacity; 20 | 21 | /** 22 | The color of the shadow. Colors created from patterns are currently NOT supported. 23 | */ 24 | @property (nonatomic, strong, readonly, nonnull) UIColor *color; 25 | 26 | /** The shadow offset. */ 27 | @property (nonatomic, assign, readonly) CGSize offset; 28 | 29 | /** The blur radius used to create the shadow. */ 30 | @property (nonatomic, assign, readonly) CGFloat radius; 31 | 32 | /** 33 | The opacity of the shadow. Specifying a value outside the [0,1] range will give undefined results. 34 | */ 35 | @property (nonatomic, assign, readonly) float opacity; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDShadow.m: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDShadow.m 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 25.09.17. 6 | // Copyright © 2017 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import "JGProgressHUDShadow.h" 10 | 11 | @implementation JGProgressHUDShadow 12 | 13 | + (instancetype)shadowWithColor:(UIColor *)color offset:(CGSize)offset radius:(CGFloat)radius opacity:(float)opacity { 14 | return [[self alloc] initWithColor:color offset:offset radius:radius opacity:opacity]; 15 | } 16 | 17 | - (instancetype)initWithColor:(UIColor *)color offset:(CGSize)offset radius:(CGFloat)radius opacity:(float)opacity { 18 | self = [super init]; 19 | 20 | if (self) { 21 | _color = color; 22 | _offset = offset; 23 | _radius = radius; 24 | _opacity = opacity; 25 | } 26 | 27 | return self; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDSuccessIndicatorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDSuccessIndicatorView.h 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 19.08.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #pragma clang diagnostic push 10 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 11 | #import "JGProgressHUDImageIndicatorView.h" 12 | #pragma clang diagnostic pop 13 | 14 | /** 15 | An image indicator showing a checkmark, representing a failed operation. 16 | */ 17 | @interface JGProgressHUDSuccessIndicatorView : JGProgressHUDImageIndicatorView 18 | 19 | /** 20 | Default initializer for this class. 21 | */ 22 | - (instancetype __nonnull)init; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /JGProgressHUD/JGProgressHUDSuccessIndicatorView.m: -------------------------------------------------------------------------------- 1 | // 2 | // JGProgressHUDSuccessIndicatorView.m 3 | // JGProgressHUD 4 | // 5 | // Created by Jonas Gessner on 19.08.14. 6 | // Copyright (c) 2014 Jonas Gessner. All rights reserved. 7 | // 8 | 9 | #import "JGProgressHUDSuccessIndicatorView.h" 10 | #import "JGProgressHUD.h" 11 | 12 | static UIBezierPath *successBezierPath() { 13 | static UIBezierPath *path; 14 | 15 | static dispatch_once_t onceToken; 16 | dispatch_once(&onceToken, ^{ 17 | path = [UIBezierPath bezierPath]; 18 | [path moveToPoint:CGPointMake(1.5, 18)]; 19 | [path addLineToPoint:CGPointMake(11, 28)]; 20 | [path addLineToPoint:CGPointMake(31.5, 5.5)]; 21 | 22 | [path setLineWidth:3]; 23 | [path setLineJoinStyle:kCGLineJoinRound]; 24 | [path setLineCapStyle:kCGLineCapRound]; 25 | }); 26 | 27 | return path; 28 | } 29 | 30 | @implementation JGProgressHUDSuccessIndicatorView 31 | 32 | - (instancetype)initWithContentView:(UIView *__unused)contentView { 33 | UIBezierPath *path = successBezierPath(); 34 | 35 | UIGraphicsBeginImageContextWithOptions(CGSizeMake(33, 33), NO, 0.0); 36 | [[UIColor blackColor] setStroke]; 37 | [path stroke]; 38 | 39 | UIImage *img = [UIGraphicsGetImageFromCurrentImageContext() imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 40 | 41 | UIGraphicsEndImageContext(); 42 | 43 | self = [super initWithImage:img]; 44 | 45 | return self; 46 | } 47 | 48 | - (instancetype)init { 49 | return [self initWithContentView:nil]; 50 | } 51 | 52 | - (void)updateAccessibility { 53 | self.accessibilityLabel = NSLocalizedString(@"Success",); 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | ARCHS = arm64 2 | TARGET := iphone:clang:latest:14.0 3 | INSTALL_TARGET_PROCESSES = Twitter 4 | include $(THEOS)/makefiles/common.mk 5 | 6 | TWEAK_NAME = BHTwitter 7 | 8 | BHTwitter_FILES = Tweak.x $(wildcard *.m BHDownload/*.m BHTBundle/*.m Colours/*.m JGProgressHUD/*.m SAMKeychain/*.m AppIcon/*.m CustomTabBar/*.m ThemeColor/*.m) 9 | BHTwitter_FRAMEWORKS = UIKit Foundation AVFoundation AVKit CoreMotion GameController VideoToolbox Accelerate CoreMedia CoreImage CoreGraphics ImageIO Photos CoreServices SystemConfiguration SafariServices Security QuartzCore WebKit SceneKit 10 | BHTwitter_PRIVATE_FRAMEWORKS = Preferences 11 | BHTwitter_EXTRA_FRAMEWORKS = Cephei CepheiPrefs CepheiUI 12 | BHTwitter_OBJ_FILES = $(shell find lib -name '*.a') 13 | BHTwitter_LIBRARIES = sqlite3 bz2 c++ iconv z 14 | BHTwitter_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-nullability-completeness -Wno-unused-function -Wno-unused-property-ivar -Wno-error 15 | 16 | include $(THEOS_MAKE_PATH)/tweak.mk 17 | 18 | ifdef SIDELOADED 19 | SUBPROJECTS += libflex keychainfix 20 | else 21 | SUBPROJECTS += libflex 22 | endif 23 | 24 | include $(THEOS_MAKE_PATH)/aggregate.mk 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BHTwitter 2 | - Removed New Twitter Ads + Removed FFmpeg 3 | 4 | ازالة اعلانات تويتر الجديدة + ازالة مكتبة التحميل 5 | ffmpeg 6 | -------------------------------------------------------------------------------- /SAMKeychain/AuthViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AuthViewController.h 3 | // BHTwitter 4 | // 5 | // Created by BandarHelal on 25/09/2021. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface AuthViewController : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /SAMKeychain/AuthViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // AuthViewController.m 3 | // BHTwitter 4 | // 5 | // Created by BandarHelal on 25/09/2021. 6 | // 7 | 8 | #import "AuthViewController.h" 9 | #import 10 | #import "keychain.h" 11 | 12 | @interface AuthViewController () 13 | 14 | @end 15 | 16 | @implementation AuthViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | LAContext *context = [[LAContext alloc] init]; 21 | if ([self canEvaluateBiometrics]) { 22 | [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Touch ID or Face ID is required to use Twitter" reply:^(BOOL success, NSError * _Nullable error) { 23 | if (success) { 24 | [[keychain shared] saveDictionary:@{@"isAuthenticated": @YES}]; 25 | dispatch_async(dispatch_get_main_queue(), ^{ 26 | [self dismissViewControllerAnimated:true completion:nil]; 27 | }); 28 | } else { 29 | [[keychain shared] saveDictionary:@{@"isAuthenticated": @NO}]; 30 | NSLog(@"%@", error); 31 | } 32 | }]; 33 | } else if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:nil]) { 34 | [context evaluatePolicy:LAPolicyDeviceOwnerAuthentication localizedReason:@"Passcode is required to use Twitter" reply:^(BOOL success, NSError * _Nullable error) { 35 | if (success) { 36 | [[keychain shared] saveDictionary:@{@"isAuthenticated": @YES}]; 37 | dispatch_async(dispatch_get_main_queue(), ^{ 38 | [self dismissViewControllerAnimated:true completion:nil]; 39 | }); 40 | } else { 41 | [[keychain shared] saveDictionary:@{@"isAuthenticated": @NO}]; 42 | NSLog(@"%@", error); 43 | } 44 | }]; 45 | } else { 46 | [[keychain shared] saveDictionary:@{@"isAuthenticated": @NO}]; 47 | } 48 | } 49 | 50 | - (BOOL)canEvaluateBiometrics { 51 | NSMutableDictionary *infoPlistDict = [NSMutableDictionary dictionaryWithDictionary:[[NSBundle mainBundle] infoDictionary]]; 52 | return [infoPlistDict objectForKey:@"NSFaceIDUsageDescription"] != nil ? true : false; 53 | } 54 | @end 55 | -------------------------------------------------------------------------------- /SAMKeychain/keychain.h: -------------------------------------------------------------------------------- 1 | // 2 | // keychain.h 3 | // BHTwitter 4 | // 5 | // Created by BandarHelal on 25/09/2021. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface keychain : NSObject 13 | + (instancetype)shared; 14 | - (void)saveDictionary:(NSDictionary *)dicData; 15 | - (NSDictionary *)getData; 16 | - (void)deleteService; 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /SAMKeychain/keychain.m: -------------------------------------------------------------------------------- 1 | // 2 | // keychain.m 3 | // BHTwitter 4 | // 5 | // Created by BandarHelal on 25/09/2021. 6 | // 7 | 8 | #import "keychain.h" 9 | #import "SAMKeychainQuery.h" 10 | 11 | @interface keychain () 12 | @property (nonatomic, strong) SAMKeychainQuery *query; 13 | @end 14 | @implementation keychain 15 | 16 | + (instancetype)shared { 17 | static keychain *sharedManager = nil; 18 | static dispatch_once_t onceToken; 19 | dispatch_once(&onceToken, ^{ 20 | sharedManager = [[self alloc] init]; 21 | }); 22 | return sharedManager; 23 | } 24 | 25 | - (instancetype)init { 26 | self = [super init]; 27 | if (self) { 28 | self.query = [[SAMKeychainQuery alloc] init]; 29 | self.query.service = @"com.bhtwitter.padlock"; 30 | self.query.account = @"com.bhtwitter.user"; 31 | [self.query fetch:nil]; 32 | } 33 | return self; 34 | } 35 | 36 | - (void)saveDictionary:(NSDictionary *)dicData { 37 | self.query.passwordData = [NSKeyedArchiver archivedDataWithRootObject:dicData]; 38 | [self.query save:nil]; 39 | } 40 | 41 | - (NSDictionary *)getData { 42 | [self.query fetch:nil]; 43 | return (NSDictionary *)[NSKeyedUnarchiver unarchiveObjectWithData:self.query.passwordData]; 44 | } 45 | 46 | - (void)deleteService { 47 | [self.query deleteItem:nil]; 48 | } 49 | @end 50 | -------------------------------------------------------------------------------- /SettingsViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingsViewController.h 3 | // FlexCrack 4 | // 5 | // Created by BandarHelal on 25/11/2021. 6 | // 7 | 8 | #import "TWHeaders.h" 9 | #import 10 | #import 11 | 12 | typedef NS_ENUM(NSInteger, DynamicSpecifierOperatorType) { 13 | EqualToOperatorType, 14 | NotEqualToOperatorType, 15 | GreaterThanOperatorType, 16 | LessThanOperatorType, 17 | }; 18 | 19 | @interface SettingsViewController : HBListController 20 | - (instancetype)initWithTwitterAccount:(TFNTwitterAccount *)account; 21 | @end 22 | 23 | @interface BHButtonTableViewCell : HBTintedTableCell 24 | @end 25 | 26 | @interface BHSwitchTableCell : PSSwitchTableCell 27 | @end 28 | -------------------------------------------------------------------------------- /ThemeColor/BHColorThemeCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHColorThemeCell.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface BHColorThemeCell : UICollectionViewCell 13 | @property (nonatomic, strong) UILabel *colorLabel; 14 | @property (nonatomic, strong) UIImageView *checkIMG; 15 | + (NSString *)reuseIdentifier; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /ThemeColor/BHColorThemeCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // BHColorThemeCell.m 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import "BHColorThemeCell.h" 9 | 10 | @implementation BHColorThemeCell 11 | - (instancetype)initWithFrame:(CGRect)frame { 12 | self = [super initWithFrame:frame]; 13 | if (self) { 14 | self.colorLabel = [[UILabel alloc] init]; 15 | self.colorLabel.translatesAutoresizingMaskIntoConstraints = false; 16 | self.colorLabel.textColor = [UIColor labelColor]; 17 | self.colorLabel.textAlignment = NSTextAlignmentCenter; 18 | self.colorLabel.layer.masksToBounds = true; 19 | self.colorLabel.layer.cornerRadius = 18; 20 | self.colorLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightBold]; 21 | 22 | self.checkIMG = [[UIImageView alloc] init]; 23 | self.checkIMG.image = [UIImage systemImageNamed:@"circle"]; 24 | self.checkIMG.translatesAutoresizingMaskIntoConstraints = false; 25 | 26 | [self addSubview:self.colorLabel]; 27 | [self addSubview:self.checkIMG]; 28 | 29 | [NSLayoutConstraint activateConstraints:@[ 30 | [self.colorLabel.topAnchor constraintEqualToAnchor:self.topAnchor], 31 | [self.colorLabel.leadingAnchor constraintEqualToAnchor:self.leadingAnchor], 32 | [self.colorLabel.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], 33 | [self.colorLabel.heightAnchor constraintEqualToConstant:36], 34 | 35 | [self.checkIMG.topAnchor constraintEqualToAnchor:self.colorLabel.bottomAnchor constant:12], 36 | [self.checkIMG.centerXAnchor constraintEqualToAnchor:self.centerXAnchor], 37 | [self.checkIMG.widthAnchor constraintEqualToConstant:24], 38 | [self.checkIMG.heightAnchor constraintEqualToConstant:24], 39 | ]]; 40 | 41 | } 42 | return self; 43 | } 44 | 45 | + (NSString *)reuseIdentifier { 46 | return @"colorItem"; 47 | } 48 | @end 49 | -------------------------------------------------------------------------------- /ThemeColor/BHColorThemeItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHColorThemeItem.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BHColorThemeItem : NSObject 14 | @property(nonatomic, assign) NSInteger colorID; 15 | @property (nonatomic, strong) NSString *name; 16 | @property (nonatomic, strong) UIColor *color; 17 | - (instancetype)initWithColorID:(NSInteger)colorID name:(NSString *)name color:(UIColor *)color; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /ThemeColor/BHColorThemeItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // BHColorThemeItem.m 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import "BHColorThemeItem.h" 9 | 10 | @implementation BHColorThemeItem 11 | - (instancetype)initWithColorID:(NSInteger)colorID name:(NSString *)name color:(UIColor *)color { 12 | self = [super init]; 13 | if (self) { 14 | _colorID = colorID; 15 | _name = name; 16 | _color = color; 17 | } 18 | return self; 19 | } 20 | @end 21 | -------------------------------------------------------------------------------- /ThemeColor/BHColorThemeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BHColorThemeViewController.h 3 | // BHTwitter 4 | // 5 | // Created by Bandar Alruwaili on 10/12/2023. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface BHColorThemeViewController : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | Package: com.bandarhl.bhtwitter 2 | Name: BHTwitter 3 | Version: 4.3 4 | Architecture: iphoneos-arm 5 | Description: Awesome tweak for Twitter 6 | Maintainer: Bandar Alruwaili 7 | Author: Bandar Alruwaili 8 | Section: Tweaks 9 | Depends: mobilesubstrate, ws.hbang.common 10 | -------------------------------------------------------------------------------- /ffmpeg/AbstractSession.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_ABSTRACT_SESSION_H 21 | #define FFMPEG_KIT_ABSTRACT_SESSION_H 22 | 23 | #import 24 | #import "Session.h" 25 | 26 | /** 27 | * Defines how long default "getAll" methods wait, in milliseconds. 28 | */ 29 | extern int const AbstractSessionDefaultTimeoutForAsynchronousMessagesInTransmit; 30 | 31 | /** 32 | * Abstract session implementation which includes common features shared by FFmpeg, 33 | * FFprobe and MediaInformation sessions. 34 | */ 35 | @interface AbstractSession : NSObject 36 | 37 | /** 38 | * Creates a new abstract session. 39 | * 40 | * @param arguments command arguments 41 | * @param logCallback session specific log callback 42 | * @param logRedirectionStrategy session specific log redirection strategy 43 | */ 44 | - (instancetype)init:(NSArray *)arguments withLogCallback:(LogCallback)logCallback withLogRedirectionStrategy:(LogRedirectionStrategy)logRedirectionStrategy; 45 | 46 | /** 47 | * Waits for all asynchronous messages to be transmitted until the given timeout. 48 | * 49 | * @param timeout wait timeout in milliseconds 50 | */ 51 | - (void)waitForAsynchronousMessagesInTransmit:(int)timeout; 52 | 53 | @end 54 | 55 | #endif // FFMPEG_KIT_ABSTRACT_SESSION_H 56 | -------------------------------------------------------------------------------- /ffmpeg/ArchDetect.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_ARCH_DETECT_H 21 | #define FFMPEG_KIT_ARCH_DETECT_H 22 | 23 | #import 24 | 25 | /** 26 | * Detects the running architecture. 27 | */ 28 | @interface ArchDetect : NSObject 29 | 30 | /** 31 | * Returns architecture name of the cpu running. 32 | * 33 | * @return architecture name of the cpu running 34 | */ 35 | + (NSString *)getCpuArch; 36 | 37 | /** 38 | * Returns architecture name loaded. 39 | * 40 | * @return architecture name loaded 41 | */ 42 | + (NSString *)getArch; 43 | 44 | @end 45 | 46 | #endif // FFMPEG_KIT_ARCH_DETECT_H 47 | -------------------------------------------------------------------------------- /ffmpeg/AtomicLong.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_ATOMIC_LONG_H 21 | #define FFMPEG_KIT_ATOMIC_LONG_H 22 | 23 | #import 24 | 25 | /** 26 | * Represents an atomic long data type. 27 | */ 28 | @interface AtomicLong : NSObject 29 | 30 | - (instancetype)initWithValue:(long)value; 31 | 32 | - (long)incrementAndGet; 33 | 34 | - (long)getAndIncrement; 35 | 36 | @end 37 | 38 | #endif // FFMPEG_KIT_ATOMIC_LONG_H 39 | -------------------------------------------------------------------------------- /ffmpeg/FFmpegSessionCompleteCallback.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_FFMPEG_SESSION_COMPLETE_CALLBACK_H 21 | #define FFMPEG_KIT_FFMPEG_SESSION_COMPLETE_CALLBACK_H 22 | 23 | @class FFmpegSession; 24 | 25 | /** 26 | *

Callback function that is invoked when an asynchronous FFmpeg session has ended. 27 | *

Session has either SessionStateCompleted or SessionStateFailed state when 28 | * the callback is invoked. 29 | *

If it has SessionStateCompleted state, ReturnCode should be checked to 30 | * see the execution result. 31 | *

If getState returns SessionStateFailed then 32 | * getFailStackTrace should be used to get the failure reason. 33 | *

34 |  *  switch ([session getState]) {
35 |  *      case SessionStateCompleted:
36 |  *          ReturnCode *returnCode = [session getReturnCode];
37 |  *          break;
38 |  *      case SessionStateFailed:
39 |  *          NSString *failStackTrace = [session getFailStackTrace];
40 |  *          break;
41 |  *  }
42 |  * 
43 | * 44 | * @param session session of the completed execution 45 | */ 46 | typedef void (^FFmpegSessionCompleteCallback)(FFmpegSession *session); 47 | 48 | #import "FFmpegSession.h" 49 | 50 | #endif // FFMPEG_KIT_FFMPEG_SESSION_COMPLETE_CALLBACK_H 51 | -------------------------------------------------------------------------------- /ffmpeg/FFprobeSessionCompleteCallback.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_FFPROBE_SESSION_COMPLETE_CALLBACK_H 21 | #define FFMPEG_KIT_FFPROBE_SESSION_COMPLETE_CALLBACK_H 22 | 23 | @class FFprobeSession; 24 | 25 | /** 26 | *

Callback function that is invoked when an asynchronous FFprobe session has ended. 27 | *

Session has either SessionStateCompleted or SessionStateFailed state when 28 | * the callback is invoked. 29 | *

If it has SessionStateCompleted state, ReturnCode should be checked to 30 | * see the execution result. 31 | *

If getState returns SessionStateFailed then 32 | * getFailStackTrace should be used to get the failure reason. 33 | *

34 |  *  switch ([session getState]) {
35 |  *      case SessionStateCompleted:
36 |  *          ReturnCode *returnCode = [session getReturnCode];
37 |  *          break;
38 |  *      case SessionStateFailed:
39 |  *          NSString *failStackTrace = [session getFailStackTrace];
40 |  *          break;
41 |  *  }
42 |  * 
43 | * 44 | * @param session session of the completed execution 45 | */ 46 | typedef void (^FFprobeSessionCompleteCallback)(FFprobeSession *session); 47 | 48 | #import "FFprobeSession.h" 49 | 50 | #endif // FFMPEG_KIT_FFPROBE_SESSION_COMPLETE_CALLBACK_H 51 | -------------------------------------------------------------------------------- /ffmpeg/Log.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_LOG_H 21 | #define FFMPEG_KIT_LOG_H 22 | 23 | #import 24 | 25 | /** 26 | *

Log entry for an FFmpegKit session. 27 | */ 28 | @interface Log : NSObject 29 | 30 | - (instancetype)init:(long)sessionId :(int)level :(NSString *)message; 31 | 32 | - (long)getSessionId; 33 | 34 | - (int)getLevel; 35 | 36 | - (NSString *)getMessage; 37 | 38 | @end 39 | 40 | #endif // FFMPEG_KIT_LOG_H 41 | -------------------------------------------------------------------------------- /ffmpeg/LogCallback.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_LOG_CALLBACK_H 21 | #define FFMPEG_KIT_LOG_CALLBACK_H 22 | 23 | #import 24 | #import "Log.h" 25 | 26 | /** 27 | *

Callback that receives logs generated for FFmpegKit sessions. 28 | * 29 | * @param log log entry 30 | */ 31 | typedef void (^LogCallback)(Log *log); 32 | 33 | #endif // FFMPEG_KIT_LOG_CALLBACK_H 34 | -------------------------------------------------------------------------------- /ffmpeg/LogRedirectionStrategy.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_LOG_REDIRECTION_STRATEGY_H 21 | #define FFMPEG_KIT_LOG_REDIRECTION_STRATEGY_H 22 | 23 | typedef NS_ENUM(NSUInteger, LogRedirectionStrategy) { 24 | LogRedirectionStrategyAlwaysPrintLogs, 25 | LogRedirectionStrategyPrintLogsWhenNoCallbacksDefined, 26 | LogRedirectionStrategyPrintLogsWhenGlobalCallbackNotDefined, 27 | LogRedirectionStrategyPrintLogsWhenSessionCallbackNotDefined, 28 | LogRedirectionStrategyNeverPrintLogs 29 | }; 30 | 31 | #endif // FFMPEG_KIT_LOG_REDIRECTION_STRATEGY_H 32 | -------------------------------------------------------------------------------- /ffmpeg/MediaInformationJsonParser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018-2022 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_MEDIA_INFORMATION_PARSER_H 21 | #define FFMPEG_KIT_MEDIA_INFORMATION_PARSER_H 22 | 23 | #import 24 | #import "MediaInformation.h" 25 | 26 | /** 27 | * A parser that constructs MediaInformation from FFprobe's json output. 28 | */ 29 | @interface MediaInformationJsonParser : NSObject 30 | 31 | /** 32 | * Extracts MediaInformation from the given FFprobe json output. 33 | * 34 | * @param ffprobeJsonOutput FFprobe json output 35 | * @return created MediaInformation instance of nil if a parsing error occurs 36 | */ 37 | + (MediaInformation *)from:(NSString *)ffprobeJsonOutput; 38 | 39 | /** 40 | * Extracts MediaInformation from the given FFprobe json output. If a parsing error occurs an NSException 41 | * is thrown. 42 | * 43 | * @param ffprobeJsonOutput FFprobe json output 44 | * @return created MediaInformation instance 45 | */ 46 | + (MediaInformation *)fromWithError:(NSString *)ffprobeJsonOutput; 47 | 48 | @end 49 | 50 | #endif // FFMPEG_KIT_MEDIA_INFORMATION_PARSER_H 51 | -------------------------------------------------------------------------------- /ffmpeg/MediaInformationSessionCompleteCallback.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_MEDIA_INFORMATION_SESSION_COMPLETE_CALLBACK_H 21 | #define FFMPEG_KIT_MEDIA_INFORMATION_SESSION_COMPLETE_CALLBACK_H 22 | 23 | @class MediaInformationSession; 24 | 25 | /** 26 | *

Callback function that is invoked when an asynchronous MediaInformation session 27 | * has ended. 28 | *

Session has either SessionStateCompleted or SessionStateFailed state when 29 | * the callback is invoked. 30 | *

If it has SessionStateCompleted state, ReturnCode should be checked to 31 | * see the execution result. 32 | *

If getState returns SessionStateFailed then 33 | * getFailStackTrace should be used to get the failure reason. 34 | *

35 |  *  switch ([session getState]) {
36 |  *      case SessionStateCompleted:
37 |  *          ReturnCode *returnCode = [session getReturnCode];
38 |  *          break;
39 |  *      case SessionStateFailed:
40 |  *          NSString *failStackTrace = [session getFailStackTrace];
41 |  *          break;
42 |  *  }
43 |  * 
44 | * 45 | * @param session session of the completed execution 46 | */ 47 | typedef void (^MediaInformationSessionCompleteCallback)(MediaInformationSession *session); 48 | 49 | #import "MediaInformationSession.h" 50 | 51 | #endif // FFMPEG_KIT_MEDIA_INFORMATION_SESSION_COMPLETE_CALLBACK_H 52 | -------------------------------------------------------------------------------- /ffmpeg/Packages.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_PACKAGES_H 21 | #define FFMPEG_KIT_PACKAGES_H 22 | 23 | #import 24 | 25 | /** 26 | *

Helper class to extract binary package information. 27 | */ 28 | @interface Packages : NSObject 29 | 30 | /** 31 | * Returns the FFmpegKit binary package name. 32 | * 33 | * @return predicted FFmpegKit binary package name 34 | */ 35 | + (NSString *)getPackageName; 36 | 37 | /** 38 | * Returns enabled external libraries by FFmpeg. 39 | * 40 | * @return enabled external libraries 41 | */ 42 | + (NSArray *)getExternalLibraries; 43 | 44 | @end 45 | 46 | #endif // FFMPEG_KIT_PACKAGES_H 47 | -------------------------------------------------------------------------------- /ffmpeg/ReturnCode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_RETURN_CODE_H 21 | #define FFMPEG_KIT_RETURN_CODE_H 22 | 23 | #import 24 | 25 | typedef NS_ENUM(NSUInteger, ReturnCodeEnum) { 26 | ReturnCodeSuccess = 0, 27 | ReturnCodeCancel = 255 28 | }; 29 | 30 | @interface ReturnCode : NSObject 31 | 32 | - (instancetype)init:(int)value; 33 | 34 | + (BOOL)isSuccess:(ReturnCode *)value; 35 | 36 | + (BOOL)isCancel:(ReturnCode *)value; 37 | 38 | - (int)getValue; 39 | 40 | - (BOOL)isValueSuccess; 41 | 42 | - (BOOL)isValueError; 43 | 44 | - (BOOL)isValueCancel; 45 | 46 | @end 47 | 48 | #endif // FFMPEG_KIT_RETURN_CODE_H 49 | -------------------------------------------------------------------------------- /ffmpeg/SessionState.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_SESSION_STATE_H 21 | #define FFMPEG_KIT_SESSION_STATE_H 22 | 23 | typedef NS_ENUM(NSUInteger, SessionState) { 24 | SessionStateCreated, 25 | SessionStateRunning, 26 | SessionStateFailed, 27 | SessionStateCompleted 28 | }; 29 | 30 | #endif // FFMPEG_KIT_SESSION_STATE_H 31 | -------------------------------------------------------------------------------- /ffmpeg/Statistics.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_STATISTICS_H 21 | #define FFMPEG_KIT_STATISTICS_H 22 | 23 | #import 24 | 25 | /** 26 | * Statistics entry for an FFmpeg execute session. 27 | */ 28 | @interface Statistics : NSObject 29 | 30 | - (instancetype)init:(long)sessionId videoFrameNumber:(int)videoFrameNumber videoFps:(float)videoFps videoQuality:(float)videoQuality size:(int64_t)size time:(double)time bitrate:(double)bitrate speed:(double)speed; 31 | 32 | - (long)getSessionId; 33 | 34 | - (int)getVideoFrameNumber; 35 | 36 | - (float)getVideoFps; 37 | 38 | - (float)getVideoQuality; 39 | 40 | - (long)getSize; 41 | 42 | - (double)getTime; 43 | 44 | - (double)getBitrate; 45 | 46 | - (double)getSpeed; 47 | 48 | @end 49 | 50 | #endif // FFMPEG_KIT_STATISTICS_H 51 | -------------------------------------------------------------------------------- /ffmpeg/StatisticsCallback.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_STATISTICS_CALLBACK_H 21 | #define FFMPEG_KIT_STATISTICS_CALLBACK_H 22 | 23 | #import 24 | #import "Statistics.h" 25 | 26 | /** 27 | *

Callback that receives statistics generated for FFmpegKit sessions. 28 | * 29 | * @param statistics statistics entry 30 | */ 31 | typedef void (^StatisticsCallback)(Statistics *statistics); 32 | 33 | #endif // FFMPEG_KIT_STATISTICS_CALLBACK_H 34 | -------------------------------------------------------------------------------- /ffmpeg/ffmpegkit_exception.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018-2021 Taner Sener 3 | * 4 | * This file is part of FFmpegKit. 5 | * 6 | * FFmpegKit is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * FFmpegKit is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public License 17 | * along with FFmpegKit. If not, see . 18 | */ 19 | 20 | #ifndef FFMPEG_KIT_EXCEPTION_H 21 | #define FFMPEG_KIT_EXCEPTION_H 22 | 23 | #include 24 | #include 25 | 26 | /** Holds information to implement exception handling. */ 27 | extern __thread jmp_buf ex_buf__; 28 | 29 | #endif // FFMPEG_KIT_EXCEPTION_H 30 | -------------------------------------------------------------------------------- /ffmpeg/fftools_objpool.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * Copyright (c) 2023 ARTHENICA LTD 4 | * 5 | * FFmpeg is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * FFmpeg is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with FFmpeg; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | /* 21 | * This file is the modified version of objpool.h file living in ffmpeg source code under the fftools folder. We 22 | * manually update it each time we depend on a new ffmpeg version. Below you can see the list of changes applied 23 | * by us to develop ffmpeg-kit library. 24 | * 25 | * ffmpeg-kit changes by ARTHENICA LTD 26 | * 27 | * 07.2023 28 | * -------------------------------------------------------- 29 | * - FFmpeg 6.0 changes migrated 30 | */ 31 | 32 | #ifndef FFTOOLS_OBJPOOL_H 33 | #define FFTOOLS_OBJPOOL_H 34 | 35 | typedef struct ObjPool ObjPool; 36 | 37 | typedef void* (*ObjPoolCBAlloc)(void); 38 | typedef void (*ObjPoolCBReset)(void *); 39 | typedef void (*ObjPoolCBFree)(void **); 40 | 41 | void objpool_free(ObjPool **op); 42 | ObjPool *objpool_alloc(ObjPoolCBAlloc cb_alloc, ObjPoolCBReset cb_reset, 43 | ObjPoolCBFree cb_free); 44 | ObjPool *objpool_alloc_packets(void); 45 | ObjPool *objpool_alloc_frames(void); 46 | 47 | int objpool_get(ObjPool *op, void **obj); 48 | void objpool_release(ObjPool *op, void **obj); 49 | 50 | #endif // FFTOOLS_OBJPOOL_H 51 | -------------------------------------------------------------------------------- /ffmpeg/libavcodec/ac3_parser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * AC-3 parser prototypes 3 | * Copyright (c) 2003 Fabrice Bellard 4 | * Copyright (c) 2003 Michael Niedermayer 5 | * 6 | * This file is part of FFmpeg. 7 | * 8 | * FFmpeg is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2.1 of the License, or (at your option) any later version. 12 | * 13 | * FFmpeg is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with FFmpeg; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #ifndef AVCODEC_AC3_PARSER_H 24 | #define AVCODEC_AC3_PARSER_H 25 | 26 | #include 27 | #include 28 | 29 | /** 30 | * Extract the bitstream ID and the frame size from AC-3 data. 31 | */ 32 | int av_ac3_parse_header(const uint8_t *buf, size_t size, 33 | uint8_t *bitstream_id, uint16_t *frame_size); 34 | 35 | 36 | #endif /* AVCODEC_AC3_PARSER_H */ 37 | -------------------------------------------------------------------------------- /ffmpeg/libavcodec/adts_parser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVCODEC_ADTS_PARSER_H 20 | #define AVCODEC_ADTS_PARSER_H 21 | 22 | #include 23 | #include 24 | 25 | #define AV_AAC_ADTS_HEADER_SIZE 7 26 | 27 | /** 28 | * Extract the number of samples and frames from AAC data. 29 | * @param[in] buf pointer to AAC data buffer 30 | * @param[out] samples Pointer to where number of samples is written 31 | * @param[out] frames Pointer to where number of frames is written 32 | * @return Returns 0 on success, error code on failure. 33 | */ 34 | int av_adts_header_parse(const uint8_t *buf, uint32_t *samples, 35 | uint8_t *frames); 36 | 37 | #endif /* AVCODEC_ADTS_PARSER_H */ 38 | -------------------------------------------------------------------------------- /ffmpeg/libavcodec/jni.h: -------------------------------------------------------------------------------- 1 | /* 2 | * JNI public API functions 3 | * 4 | * Copyright (c) 2015-2016 Matthieu Bouron 5 | * 6 | * This file is part of FFmpeg. 7 | * 8 | * FFmpeg is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2.1 of the License, or (at your option) any later version. 12 | * 13 | * FFmpeg is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with FFmpeg; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #ifndef AVCODEC_JNI_H 24 | #define AVCODEC_JNI_H 25 | 26 | /* 27 | * Manually set a Java virtual machine which will be used to retrieve the JNI 28 | * environment. Once a Java VM is set it cannot be changed afterwards, meaning 29 | * you can call multiple times av_jni_set_java_vm with the same Java VM pointer 30 | * however it will error out if you try to set a different Java VM. 31 | * 32 | * @param vm Java virtual machine 33 | * @param log_ctx context used for logging, can be NULL 34 | * @return 0 on success, < 0 otherwise 35 | */ 36 | int av_jni_set_java_vm(void *vm, void *log_ctx); 37 | 38 | /* 39 | * Get the Java virtual machine which has been set with av_jni_set_java_vm. 40 | * 41 | * @param vm Java virtual machine 42 | * @return a pointer to the Java virtual machine 43 | */ 44 | void *av_jni_get_java_vm(void *log_ctx); 45 | 46 | #endif /* AVCODEC_JNI_H */ 47 | -------------------------------------------------------------------------------- /ffmpeg/libavcodec/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVCODEC_VERSION_H 20 | #define AVCODEC_VERSION_H 21 | 22 | /** 23 | * @file 24 | * @ingroup libavc 25 | * Libavcodec version macros. 26 | */ 27 | 28 | #include "libavutil/version.h" 29 | 30 | #include "version_major.h" 31 | 32 | #define LIBAVCODEC_VERSION_MINOR 3 33 | #define LIBAVCODEC_VERSION_MICRO 100 34 | 35 | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ 36 | LIBAVCODEC_VERSION_MINOR, \ 37 | LIBAVCODEC_VERSION_MICRO) 38 | #define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \ 39 | LIBAVCODEC_VERSION_MINOR, \ 40 | LIBAVCODEC_VERSION_MICRO) 41 | #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT 42 | 43 | #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) 44 | 45 | #endif /* AVCODEC_VERSION_H */ 46 | -------------------------------------------------------------------------------- /ffmpeg/libavdevice/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVDEVICE_VERSION_H 20 | #define AVDEVICE_VERSION_H 21 | 22 | /** 23 | * @file 24 | * @ingroup lavd 25 | * Libavdevice version macros 26 | */ 27 | 28 | #include "libavutil/version.h" 29 | 30 | #include "version_major.h" 31 | 32 | #define LIBAVDEVICE_VERSION_MINOR 1 33 | #define LIBAVDEVICE_VERSION_MICRO 100 34 | 35 | #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \ 36 | LIBAVDEVICE_VERSION_MINOR, \ 37 | LIBAVDEVICE_VERSION_MICRO) 38 | #define LIBAVDEVICE_VERSION AV_VERSION(LIBAVDEVICE_VERSION_MAJOR, \ 39 | LIBAVDEVICE_VERSION_MINOR, \ 40 | LIBAVDEVICE_VERSION_MICRO) 41 | #define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT 42 | 43 | #define LIBAVDEVICE_IDENT "Lavd" AV_STRINGIFY(LIBAVDEVICE_VERSION) 44 | 45 | #endif /* AVDEVICE_VERSION_H */ 46 | -------------------------------------------------------------------------------- /ffmpeg/libavdevice/version_major.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVDEVICE_VERSION_MAJOR_H 20 | #define AVDEVICE_VERSION_MAJOR_H 21 | 22 | /** 23 | * @file 24 | * @ingroup lavd 25 | * Libavdevice version macros 26 | */ 27 | 28 | #define LIBAVDEVICE_VERSION_MAJOR 60 29 | 30 | /** 31 | * FF_API_* defines may be placed below to indicate public API that will be 32 | * dropped at a future version bump. The defines themselves are not part of 33 | * the public API and may change, break or disappear at any time. 34 | */ 35 | 36 | #endif /* AVDEVICE_VERSION_MAJOR_H */ 37 | -------------------------------------------------------------------------------- /ffmpeg/libavfilter/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVFILTER_VERSION_H 22 | #define AVFILTER_VERSION_H 23 | 24 | /** 25 | * @file 26 | * @ingroup lavfi 27 | * Libavfilter version macros 28 | */ 29 | 30 | #include "libavutil/version.h" 31 | 32 | #include "version_major.h" 33 | 34 | #define LIBAVFILTER_VERSION_MINOR 3 35 | #define LIBAVFILTER_VERSION_MICRO 100 36 | 37 | 38 | #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ 39 | LIBAVFILTER_VERSION_MINOR, \ 40 | LIBAVFILTER_VERSION_MICRO) 41 | #define LIBAVFILTER_VERSION AV_VERSION(LIBAVFILTER_VERSION_MAJOR, \ 42 | LIBAVFILTER_VERSION_MINOR, \ 43 | LIBAVFILTER_VERSION_MICRO) 44 | #define LIBAVFILTER_BUILD LIBAVFILTER_VERSION_INT 45 | 46 | #define LIBAVFILTER_IDENT "Lavfi" AV_STRINGIFY(LIBAVFILTER_VERSION) 47 | 48 | #endif /* AVFILTER_VERSION_H */ 49 | -------------------------------------------------------------------------------- /ffmpeg/libavfilter/version_major.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVFILTER_VERSION_MAJOR_H 22 | #define AVFILTER_VERSION_MAJOR_H 23 | 24 | /** 25 | * @file 26 | * @ingroup lavfi 27 | * Libavfilter version macros 28 | */ 29 | 30 | #define LIBAVFILTER_VERSION_MAJOR 9 31 | 32 | /** 33 | * FF_API_* defines may be placed below to indicate public API that will be 34 | * dropped at a future version bump. The defines themselves are not part of 35 | * the public API and may change, break or disappear at any time. 36 | */ 37 | 38 | #endif /* AVFILTER_VERSION_MAJOR_H */ 39 | -------------------------------------------------------------------------------- /ffmpeg/libavformat/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVFORMAT_VERSION_H 22 | #define AVFORMAT_VERSION_H 23 | 24 | /** 25 | * @file 26 | * @ingroup libavf 27 | * Libavformat version macros 28 | */ 29 | 30 | #include "libavutil/version.h" 31 | 32 | #include "version_major.h" 33 | 34 | #define LIBAVFORMAT_VERSION_MINOR 3 35 | #define LIBAVFORMAT_VERSION_MICRO 100 36 | 37 | #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ 38 | LIBAVFORMAT_VERSION_MINOR, \ 39 | LIBAVFORMAT_VERSION_MICRO) 40 | #define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \ 41 | LIBAVFORMAT_VERSION_MINOR, \ 42 | LIBAVFORMAT_VERSION_MICRO) 43 | #define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT 44 | 45 | #define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) 46 | 47 | #endif /* AVFORMAT_VERSION_H */ 48 | -------------------------------------------------------------------------------- /ffmpeg/libavformat/version_major.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVFORMAT_VERSION_MAJOR_H 22 | #define AVFORMAT_VERSION_MAJOR_H 23 | 24 | /** 25 | * @file 26 | * @ingroup libavf 27 | * Libavformat version macros 28 | */ 29 | 30 | // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium) 31 | // Also please add any ticket numbers that you believe might be affected here 32 | #define LIBAVFORMAT_VERSION_MAJOR 60 33 | 34 | /** 35 | * FF_API_* defines may be placed below to indicate public API that will be 36 | * dropped at a future version bump. The defines themselves are not part of 37 | * the public API and may change, break or disappear at any time. 38 | * 39 | * @note, when bumping the major version it is recommended to manually 40 | * disable each FF_API_* in its own commit instead of disabling them all 41 | * at once through the bump. This improves the git bisect-ability of the change. 42 | * 43 | */ 44 | #define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 61) 45 | #define FF_API_GET_END_PTS (LIBAVFORMAT_VERSION_MAJOR < 61) 46 | #define FF_API_AVIODIRCONTEXT (LIBAVFORMAT_VERSION_MAJOR < 61) 47 | #define FF_API_AVFORMAT_IO_CLOSE (LIBAVFORMAT_VERSION_MAJOR < 61) 48 | 49 | 50 | #define FF_API_R_FRAME_RATE 1 51 | 52 | #endif /* AVFORMAT_VERSION_MAJOR_H */ 53 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/aarch64/timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Janne Grunau 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_AARCH64_TIMER_H 22 | #define AVUTIL_AARCH64_TIMER_H 23 | 24 | #include 25 | #include "config.h" 26 | 27 | #if defined(__APPLE__) 28 | 29 | #include 30 | 31 | #define AV_READ_TIME mach_absolute_time 32 | 33 | #elif HAVE_INLINE_ASM 34 | 35 | #define AV_READ_TIME read_time 36 | 37 | static inline uint64_t read_time(void) 38 | { 39 | uint64_t cycle_counter; 40 | __asm__ volatile( 41 | "isb \t\n" 42 | "mrs %0, pmccntr_el0 " 43 | : "=r"(cycle_counter) :: "memory" ); 44 | 45 | return cycle_counter; 46 | } 47 | 48 | #endif /* HAVE_INLINE_ASM */ 49 | 50 | #endif /* AVUTIL_AARCH64_TIMER_H */ 51 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/adler32.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2006 Mans Rullgard 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | /** 22 | * @file 23 | * @ingroup lavu_adler32 24 | * Public header for Adler-32 hash function implementation. 25 | */ 26 | 27 | #ifndef AVUTIL_ADLER32_H 28 | #define AVUTIL_ADLER32_H 29 | 30 | #include 31 | #include 32 | #include "attributes.h" 33 | 34 | /** 35 | * @defgroup lavu_adler32 Adler-32 36 | * @ingroup lavu_hash 37 | * Adler-32 hash function implementation. 38 | * 39 | * @{ 40 | */ 41 | 42 | typedef uint32_t AVAdler; 43 | 44 | /** 45 | * Calculate the Adler32 checksum of a buffer. 46 | * 47 | * Passing the return value to a subsequent av_adler32_update() call 48 | * allows the checksum of multiple buffers to be calculated as though 49 | * they were concatenated. 50 | * 51 | * @param adler initial checksum value 52 | * @param buf pointer to input buffer 53 | * @param len size of input buffer 54 | * @return updated checksum 55 | */ 56 | AVAdler av_adler32_update(AVAdler adler, const uint8_t *buf, 57 | size_t len) av_pure; 58 | 59 | /** 60 | * @} 61 | */ 62 | 63 | #endif /* AVUTIL_ADLER32_H */ 64 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/aes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2007 Michael Niedermayer 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_AES_H 22 | #define AVUTIL_AES_H 23 | 24 | #include 25 | 26 | #include "attributes.h" 27 | 28 | /** 29 | * @defgroup lavu_aes AES 30 | * @ingroup lavu_crypto 31 | * @{ 32 | */ 33 | 34 | extern const int av_aes_size; 35 | 36 | struct AVAES; 37 | 38 | /** 39 | * Allocate an AVAES context. 40 | */ 41 | struct AVAES *av_aes_alloc(void); 42 | 43 | /** 44 | * Initialize an AVAES context. 45 | * 46 | * @param a The AVAES context 47 | * @param key Pointer to the key 48 | * @param key_bits 128, 192 or 256 49 | * @param decrypt 0 for encryption, 1 for decryption 50 | */ 51 | int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt); 52 | 53 | /** 54 | * Encrypt or decrypt a buffer using a previously initialized context. 55 | * 56 | * @param a The AVAES context 57 | * @param dst destination array, can be equal to src 58 | * @param src source array, can be equal to dst 59 | * @param count number of 16 byte blocks 60 | * @param iv initialization vector for CBC mode, if NULL then ECB will be used 61 | * @param decrypt 0 for encryption, 1 for decryption 62 | */ 63 | void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); 64 | 65 | /** 66 | * @} 67 | */ 68 | 69 | #endif /* AVUTIL_AES_H */ 70 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/arm/timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009 Mans Rullgard 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_ARM_TIMER_H 22 | #define AVUTIL_ARM_TIMER_H 23 | 24 | #include 25 | #include "config.h" 26 | 27 | #if defined(__APPLE__) 28 | 29 | #include 30 | 31 | #define AV_READ_TIME mach_absolute_time 32 | 33 | #elif HAVE_INLINE_ASM && defined(__ARM_ARCH_7A__) 34 | 35 | #define AV_READ_TIME read_time 36 | 37 | static inline uint64_t read_time(void) 38 | { 39 | unsigned cc; 40 | __asm__ volatile ("mrc p15, 0, %0, c9, c13, 0" : "=r"(cc)); 41 | return cc; 42 | } 43 | 44 | #endif /* HAVE_INLINE_ASM && __ARM_ARCH_7A__ */ 45 | 46 | #endif /* AVUTIL_ARM_TIMER_H */ 47 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/attributes_internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_ATTRIBUTES_INTERNAL_H 20 | #define AVUTIL_ATTRIBUTES_INTERNAL_H 21 | 22 | #include "attributes.h" 23 | 24 | #if (AV_GCC_VERSION_AT_LEAST(4,0) || defined(__clang__)) && (defined(__ELF__) || defined(__MACH__)) 25 | # define attribute_visibility_hidden __attribute__((visibility("hidden"))) 26 | # define FF_VISIBILITY_PUSH_HIDDEN _Pragma("GCC visibility push(hidden)") 27 | # define FF_VISIBILITY_POP_HIDDEN _Pragma("GCC visibility pop") 28 | #else 29 | # define attribute_visibility_hidden 30 | # define FF_VISIBILITY_PUSH_HIDDEN 31 | # define FF_VISIBILITY_POP_HIDDEN 32 | #endif 33 | 34 | #endif /* AVUTIL_ATTRIBUTES_INTERNAL_H */ 35 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/avconfig.h: -------------------------------------------------------------------------------- 1 | /* Generated by ffmpeg configure */ 2 | #ifndef AVUTIL_AVCONFIG_H 3 | #define AVUTIL_AVCONFIG_H 4 | #define AV_HAVE_BIGENDIAN 0 5 | #define AV_HAVE_FAST_UNALIGNED 1 6 | #endif /* AVUTIL_AVCONFIG_H */ 7 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | /* Automatically generated by version.sh, do not manually edit! */ 2 | #ifndef AVUTIL_FFVERSION_H 3 | #define AVUTIL_FFVERSION_H 4 | #define FFMPEG_VERSION "n6.0" 5 | #endif /* AVUTIL_FFVERSION_H */ 6 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/hwcontext_cuda.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | 20 | #ifndef AVUTIL_HWCONTEXT_CUDA_H 21 | #define AVUTIL_HWCONTEXT_CUDA_H 22 | 23 | #ifndef CUDA_VERSION 24 | #include 25 | #endif 26 | 27 | #include "pixfmt.h" 28 | 29 | /** 30 | * @file 31 | * An API-specific header for AV_HWDEVICE_TYPE_CUDA. 32 | * 33 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return 34 | * AVBufferRefs whose data pointer is a CUdeviceptr. 35 | */ 36 | 37 | typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal; 38 | 39 | /** 40 | * This struct is allocated as AVHWDeviceContext.hwctx 41 | */ 42 | typedef struct AVCUDADeviceContext { 43 | CUcontext cuda_ctx; 44 | CUstream stream; 45 | AVCUDADeviceContextInternal *internal; 46 | } AVCUDADeviceContext; 47 | 48 | /** 49 | * AVHWFramesContext.hwctx is currently not used 50 | */ 51 | 52 | /** 53 | * @defgroup hwcontext_cuda Device context creation flags 54 | * 55 | * Flags for av_hwdevice_ctx_create. 56 | * 57 | * @{ 58 | */ 59 | 60 | /** 61 | * Use primary device context instead of creating a new one. 62 | */ 63 | #define AV_CUDA_USE_PRIMARY_CONTEXT (1 << 0) 64 | 65 | /** 66 | * @} 67 | */ 68 | 69 | #endif /* AVUTIL_HWCONTEXT_CUDA_H */ 70 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/hwcontext_mediacodec.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_HWCONTEXT_MEDIACODEC_H 20 | #define AVUTIL_HWCONTEXT_MEDIACODEC_H 21 | 22 | /** 23 | * MediaCodec details. 24 | * 25 | * Allocated as AVHWDeviceContext.hwctx 26 | */ 27 | typedef struct AVMediaCodecDeviceContext { 28 | /** 29 | * android/view/Surface handle, to be filled by the user. 30 | * 31 | * This is the default surface used by decoders on this device. 32 | */ 33 | void *surface; 34 | 35 | /** 36 | * Pointer to ANativeWindow. 37 | * 38 | * It both surface and native_window is NULL, try to create it 39 | * automatically if create_window is true and OS support 40 | * createPersistentInputSurface. 41 | * 42 | * It can be used as output surface for decoder and input surface for 43 | * encoder. 44 | */ 45 | void *native_window; 46 | 47 | /** 48 | * Enable createPersistentInputSurface automatically. 49 | * 50 | * Disabled by default. 51 | * 52 | * It can be enabled by setting this flag directly, or by setting 53 | * AVDictionary of av_hwdevice_ctx_create(), with "create_window" as key. 54 | * The second method is useful for ffmpeg cmdline, e.g., we can enable it 55 | * via: 56 | * -init_hw_device mediacodec=mediacodec,create_window=1 57 | */ 58 | int create_window; 59 | } AVMediaCodecDeviceContext; 60 | 61 | #endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */ 62 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/hwcontext_qsv.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_HWCONTEXT_QSV_H 20 | #define AVUTIL_HWCONTEXT_QSV_H 21 | 22 | #include 23 | 24 | /** 25 | * @file 26 | * An API-specific header for AV_HWDEVICE_TYPE_QSV. 27 | * 28 | * This API does not support dynamic frame pools. AVHWFramesContext.pool must 29 | * contain AVBufferRefs whose data pointer points to an mfxFrameSurface1 struct. 30 | */ 31 | 32 | /** 33 | * This struct is allocated as AVHWDeviceContext.hwctx 34 | */ 35 | typedef struct AVQSVDeviceContext { 36 | mfxSession session; 37 | /** 38 | * The mfxLoader handle used for mfxSession creation 39 | * 40 | * This field is only available for oneVPL user. For non-oneVPL user, this 41 | * field must be set to NULL. 42 | * 43 | * Filled by the user before calling av_hwdevice_ctx_init() and should be 44 | * cast to mfxLoader handle. Deallocating the AVHWDeviceContext will always 45 | * release this interface. 46 | */ 47 | void *loader; 48 | } AVQSVDeviceContext; 49 | 50 | /** 51 | * This struct is allocated as AVHWFramesContext.hwctx 52 | */ 53 | typedef struct AVQSVFramesContext { 54 | mfxFrameSurface1 *surfaces; 55 | int nb_surfaces; 56 | 57 | /** 58 | * A combination of MFX_MEMTYPE_* describing the frame pool. 59 | */ 60 | int frame_type; 61 | } AVQSVFramesContext; 62 | 63 | #endif /* AVUTIL_HWCONTEXT_QSV_H */ 64 | 65 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/hwcontext_vdpau.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_HWCONTEXT_VDPAU_H 20 | #define AVUTIL_HWCONTEXT_VDPAU_H 21 | 22 | #include 23 | 24 | /** 25 | * @file 26 | * An API-specific header for AV_HWDEVICE_TYPE_VDPAU. 27 | * 28 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return 29 | * AVBufferRefs whose data pointer is a VdpVideoSurface. 30 | */ 31 | 32 | /** 33 | * This struct is allocated as AVHWDeviceContext.hwctx 34 | */ 35 | typedef struct AVVDPAUDeviceContext { 36 | VdpDevice device; 37 | VdpGetProcAddress *get_proc_address; 38 | } AVVDPAUDeviceContext; 39 | 40 | /** 41 | * AVHWFramesContext.hwctx is currently not used 42 | */ 43 | 44 | #endif /* AVUTIL_HWCONTEXT_VDPAU_H */ 45 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/intfloat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Mans Rullgard 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_INTFLOAT_H 22 | #define AVUTIL_INTFLOAT_H 23 | 24 | #include 25 | #include "attributes.h" 26 | 27 | union av_intfloat32 { 28 | uint32_t i; 29 | float f; 30 | }; 31 | 32 | union av_intfloat64 { 33 | uint64_t i; 34 | double f; 35 | }; 36 | 37 | /** 38 | * Reinterpret a 32-bit integer as a float. 39 | */ 40 | static av_always_inline float av_int2float(uint32_t i) 41 | { 42 | union av_intfloat32 v; 43 | v.i = i; 44 | return v.f; 45 | } 46 | 47 | /** 48 | * Reinterpret a float as a 32-bit integer. 49 | */ 50 | static av_always_inline uint32_t av_float2int(float f) 51 | { 52 | union av_intfloat32 v; 53 | v.f = f; 54 | return v.i; 55 | } 56 | 57 | /** 58 | * Reinterpret a 64-bit integer as a double. 59 | */ 60 | static av_always_inline double av_int2double(uint64_t i) 61 | { 62 | union av_intfloat64 v; 63 | v.i = i; 64 | return v.f; 65 | } 66 | 67 | /** 68 | * Reinterpret a double as a 64-bit integer. 69 | */ 70 | static av_always_inline uint64_t av_double2int(double f) 71 | { 72 | union av_intfloat64 v; 73 | v.f = f; 74 | return v.i; 75 | } 76 | 77 | #endif /* AVUTIL_INTFLOAT_H */ 78 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/motion_vector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_MOTION_VECTOR_H 20 | #define AVUTIL_MOTION_VECTOR_H 21 | 22 | #include 23 | 24 | typedef struct AVMotionVector { 25 | /** 26 | * Where the current macroblock comes from; negative value when it comes 27 | * from the past, positive value when it comes from the future. 28 | * XXX: set exact relative ref frame reference instead of a +/- 1 "direction". 29 | */ 30 | int32_t source; 31 | /** 32 | * Width and height of the block. 33 | */ 34 | uint8_t w, h; 35 | /** 36 | * Absolute source position. Can be outside the frame area. 37 | */ 38 | int16_t src_x, src_y; 39 | /** 40 | * Absolute destination position. Can be outside the frame area. 41 | */ 42 | int16_t dst_x, dst_y; 43 | /** 44 | * Extra flag information. 45 | * Currently unused. 46 | */ 47 | uint64_t flags; 48 | /** 49 | * Motion vector 50 | * src_x = dst_x + motion_x / motion_scale 51 | * src_y = dst_y + motion_y / motion_scale 52 | */ 53 | int32_t motion_x, motion_y; 54 | uint16_t motion_scale; 55 | } AVMotionVector; 56 | 57 | #endif /* AVUTIL_MOTION_VECTOR_H */ 58 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/pixelutils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_PIXELUTILS_H 20 | #define AVUTIL_PIXELUTILS_H 21 | 22 | #include 23 | #include 24 | 25 | /** 26 | * Sum of abs(src1[x] - src2[x]) 27 | */ 28 | typedef int (*av_pixelutils_sad_fn)(const uint8_t *src1, ptrdiff_t stride1, 29 | const uint8_t *src2, ptrdiff_t stride2); 30 | 31 | /** 32 | * Get a potentially optimized pointer to a Sum-of-absolute-differences 33 | * function (see the av_pixelutils_sad_fn prototype). 34 | * 35 | * @param w_bits 1< 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_RANDOM_SEED_H 22 | #define AVUTIL_RANDOM_SEED_H 23 | 24 | #include 25 | /** 26 | * @addtogroup lavu_crypto 27 | * @{ 28 | */ 29 | 30 | /** 31 | * Get a seed to use in conjunction with random functions. 32 | * This function tries to provide a good seed at a best effort bases. 33 | * Its possible to call this function multiple times if more bits are needed. 34 | * It can be quite slow, which is why it should only be used as seed for a faster 35 | * PRNG. The quality of the seed depends on the platform. 36 | */ 37 | uint32_t av_get_random_seed(void); 38 | 39 | /** 40 | * @} 41 | */ 42 | 43 | #endif /* AVUTIL_RANDOM_SEED_H */ 44 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/rc4.h: -------------------------------------------------------------------------------- 1 | /* 2 | * RC4 encryption/decryption/pseudo-random number generator 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_RC4_H 22 | #define AVUTIL_RC4_H 23 | 24 | #include 25 | 26 | /** 27 | * @defgroup lavu_rc4 RC4 28 | * @ingroup lavu_crypto 29 | * @{ 30 | */ 31 | 32 | typedef struct AVRC4 { 33 | uint8_t state[256]; 34 | int x, y; 35 | } AVRC4; 36 | 37 | /** 38 | * Allocate an AVRC4 context. 39 | */ 40 | AVRC4 *av_rc4_alloc(void); 41 | 42 | /** 43 | * @brief Initializes an AVRC4 context. 44 | * 45 | * @param d pointer to the AVRC4 context 46 | * @param key buffer containig the key 47 | * @param key_bits must be a multiple of 8 48 | * @param decrypt 0 for encryption, 1 for decryption, currently has no effect 49 | * @return zero on success, negative value otherwise 50 | */ 51 | int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt); 52 | 53 | /** 54 | * @brief Encrypts / decrypts using the RC4 algorithm. 55 | * 56 | * @param d pointer to the AVRC4 context 57 | * @param count number of bytes 58 | * @param dst destination array, can be equal to src 59 | * @param src source array, can be equal to dst, may be NULL 60 | * @param iv not (yet) used for RC4, should be NULL 61 | * @param decrypt 0 for encryption, 1 for decryption, not (yet) used 62 | */ 63 | void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); 64 | 65 | /** 66 | * @} 67 | */ 68 | 69 | #endif /* AVUTIL_RC4_H */ 70 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/replaygain.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_REPLAYGAIN_H 20 | #define AVUTIL_REPLAYGAIN_H 21 | 22 | #include 23 | 24 | /** 25 | * ReplayGain information (see 26 | * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification). 27 | * The size of this struct is a part of the public ABI. 28 | */ 29 | typedef struct AVReplayGain { 30 | /** 31 | * Track replay gain in microbels (divide by 100000 to get the value in dB). 32 | * Should be set to INT32_MIN when unknown. 33 | */ 34 | int32_t track_gain; 35 | /** 36 | * Peak track amplitude, with 100000 representing full scale (but values 37 | * may overflow). 0 when unknown. 38 | */ 39 | uint32_t track_peak; 40 | /** 41 | * Same as track_gain, but for the whole album. 42 | */ 43 | int32_t album_gain; 44 | /** 45 | * Same as track_peak, but for the whole album, 46 | */ 47 | uint32_t album_peak; 48 | } AVReplayGain; 49 | 50 | #endif /* AVUTIL_REPLAYGAIN_H */ 51 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/reverse.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2004 Michael Niedermayer 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_REVERSE_H 22 | #define AVUTIL_REVERSE_H 23 | 24 | #include 25 | 26 | extern const uint8_t ff_reverse[256]; 27 | 28 | #endif /* AVUTIL_REVERSE_H */ 29 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/time.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000-2003 Fabrice Bellard 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_TIME_H 22 | #define AVUTIL_TIME_H 23 | 24 | #include 25 | 26 | /** 27 | * Get the current time in microseconds. 28 | */ 29 | int64_t av_gettime(void); 30 | 31 | /** 32 | * Get the current time in microseconds since some unspecified starting point. 33 | * On platforms that support it, the time comes from a monotonic clock 34 | * This property makes this time source ideal for measuring relative time. 35 | * The returned values may not be monotonic on platforms where a monotonic 36 | * clock is not available. 37 | */ 38 | int64_t av_gettime_relative(void); 39 | 40 | /** 41 | * Indicates with a boolean result if the av_gettime_relative() time source 42 | * is monotonic. 43 | */ 44 | int av_gettime_relative_is_monotonic(void); 45 | 46 | /** 47 | * Sleep for a period of time. Although the duration is expressed in 48 | * microseconds, the actual delay may be rounded to the precision of the 49 | * system timer. 50 | * 51 | * @param usec Number of microseconds to sleep. 52 | * @return zero on success or (negative) error code. 53 | */ 54 | int av_usleep(unsigned usec); 55 | 56 | #endif /* AVUTIL_TIME_H */ 57 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/x86/emms.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_X86_EMMS_H 20 | #define AVUTIL_X86_EMMS_H 21 | 22 | #include "config.h" 23 | #include "libavutil/attributes.h" 24 | 25 | void avpriv_emms_asm(void); 26 | 27 | #if HAVE_MMX_INLINE 28 | #ifndef __MMX__ 29 | #include "libavutil/cpu.h" 30 | #endif 31 | 32 | # define emms_c emms_c 33 | /** 34 | * Empty mmx state. 35 | * this must be called between any dsp function and float/double code. 36 | * for example sin(); dsp->idct_put(); emms_c(); cos() 37 | * Note, *alloc() and *free() also use float code in some libc implementations 38 | * thus this also applies to them or any function using them. 39 | */ 40 | static av_always_inline void emms_c(void) 41 | { 42 | /* Some inlined functions may also use mmx instructions regardless of 43 | * runtime cpuflags. With that in mind, we unconditionally empty the 44 | * mmx state if the target cpu chosen at configure time supports it. 45 | */ 46 | #if !defined(__MMX__) 47 | if(av_get_cpu_flags() & AV_CPU_FLAG_MMX) 48 | #endif 49 | __asm__ volatile ("emms" ::: "memory"); 50 | } 51 | #elif HAVE_MMX && HAVE_MM_EMPTY 52 | # include 53 | # define emms_c _mm_empty 54 | #elif HAVE_MMX_EXTERNAL 55 | # define emms_c avpriv_emms_asm 56 | #endif /* HAVE_MMX_INLINE */ 57 | 58 | #endif /* AVUTIL_X86_EMMS_H */ 59 | -------------------------------------------------------------------------------- /ffmpeg/libavutil/x86/timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2006 Michael Niedermayer 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_X86_TIMER_H 22 | #define AVUTIL_X86_TIMER_H 23 | 24 | #include 25 | 26 | #if HAVE_INLINE_ASM 27 | 28 | #define FF_TIMER_UNITS "decicycles" 29 | #define AV_READ_TIME read_time 30 | 31 | static inline uint64_t read_time(void) 32 | { 33 | uint32_t a, d; 34 | __asm__ volatile( 35 | #if ARCH_X86_64 || defined(__SSE2__) 36 | "lfence \n\t" 37 | #endif 38 | "rdtsc \n\t" 39 | : "=a" (a), "=d" (d)); 40 | return ((uint64_t)d << 32) + a; 41 | } 42 | 43 | #elif HAVE_RDTSC 44 | 45 | #include 46 | #define AV_READ_TIME __rdtsc 47 | 48 | #endif /* HAVE_INLINE_ASM */ 49 | 50 | #endif /* AVUTIL_X86_TIMER_H */ 51 | -------------------------------------------------------------------------------- /ffmpeg/libswresample/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of libswresample 5 | * 6 | * libswresample is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * libswresample is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with libswresample; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef SWRESAMPLE_VERSION_H 22 | #define SWRESAMPLE_VERSION_H 23 | 24 | /** 25 | * @file 26 | * Libswresample version macros 27 | */ 28 | 29 | #include "libavutil/version.h" 30 | 31 | #include "version_major.h" 32 | 33 | #define LIBSWRESAMPLE_VERSION_MINOR 10 34 | #define LIBSWRESAMPLE_VERSION_MICRO 100 35 | 36 | #define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \ 37 | LIBSWRESAMPLE_VERSION_MINOR, \ 38 | LIBSWRESAMPLE_VERSION_MICRO) 39 | #define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \ 40 | LIBSWRESAMPLE_VERSION_MINOR, \ 41 | LIBSWRESAMPLE_VERSION_MICRO) 42 | #define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT 43 | 44 | #define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION) 45 | 46 | #endif /* SWRESAMPLE_VERSION_H */ 47 | -------------------------------------------------------------------------------- /ffmpeg/libswresample/version_major.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of libswresample 5 | * 6 | * libswresample is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * libswresample is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with libswresample; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef SWRESAMPLE_VERSION_MAJOR_H 22 | #define SWRESAMPLE_VERSION_MAJOR_H 23 | 24 | /** 25 | * @file 26 | * Libswresample version macros 27 | */ 28 | 29 | #define LIBSWRESAMPLE_VERSION_MAJOR 4 30 | 31 | #endif /* SWRESAMPLE_VERSION_MAJOR_H */ 32 | -------------------------------------------------------------------------------- /ffmpeg/libswscale/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef SWSCALE_VERSION_H 20 | #define SWSCALE_VERSION_H 21 | 22 | /** 23 | * @file 24 | * swscale version macros 25 | */ 26 | 27 | #include "libavutil/version.h" 28 | 29 | #include "version_major.h" 30 | 31 | #define LIBSWSCALE_VERSION_MINOR 1 32 | #define LIBSWSCALE_VERSION_MICRO 100 33 | 34 | #define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \ 35 | LIBSWSCALE_VERSION_MINOR, \ 36 | LIBSWSCALE_VERSION_MICRO) 37 | #define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \ 38 | LIBSWSCALE_VERSION_MINOR, \ 39 | LIBSWSCALE_VERSION_MICRO) 40 | #define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT 41 | 42 | #define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION) 43 | 44 | #endif /* SWSCALE_VERSION_H */ 45 | -------------------------------------------------------------------------------- /ffmpeg/libswscale/version_major.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef SWSCALE_VERSION_MAJOR_H 20 | #define SWSCALE_VERSION_MAJOR_H 21 | 22 | /** 23 | * @file 24 | * swscale version macros 25 | */ 26 | 27 | #define LIBSWSCALE_VERSION_MAJOR 7 28 | 29 | /** 30 | * FF_API_* defines may be placed below to indicate public API that will be 31 | * dropped at a future version bump. The defines themselves are not part of 32 | * the public API and may change, break or disappear at any time. 33 | */ 34 | 35 | #endif /* SWSCALE_VERSION_MAJOR_H */ 36 | -------------------------------------------------------------------------------- /ffmpeg/openssl/asn1_mac.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #error "This file is obsolete; please update your software." 11 | -------------------------------------------------------------------------------- /ffmpeg/openssl/asyncerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_ASYNCERR_H 12 | # define OPENSSL_ASYNCERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * ASYNC reason codes. 23 | */ 24 | # define ASYNC_R_FAILED_TO_SET_POOL 101 25 | # define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 26 | # define ASYNC_R_INIT_FAILED 105 27 | # define ASYNC_R_INVALID_POOL_SIZE 103 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ffmpeg/openssl/bnerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_BNERR_H 12 | # define OPENSSL_BNERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * BN reason codes. 23 | */ 24 | # define BN_R_ARG2_LT_ARG3 100 25 | # define BN_R_BAD_RECIPROCAL 101 26 | # define BN_R_BIGNUM_TOO_LONG 114 27 | # define BN_R_BITS_TOO_SMALL 118 28 | # define BN_R_CALLED_WITH_EVEN_MODULUS 102 29 | # define BN_R_DIV_BY_ZERO 103 30 | # define BN_R_ENCODING_ERROR 104 31 | # define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 32 | # define BN_R_INPUT_NOT_REDUCED 110 33 | # define BN_R_INVALID_LENGTH 106 34 | # define BN_R_INVALID_RANGE 115 35 | # define BN_R_INVALID_SHIFT 119 36 | # define BN_R_NOT_A_SQUARE 111 37 | # define BN_R_NOT_INITIALIZED 107 38 | # define BN_R_NO_INVERSE 108 39 | # define BN_R_NO_PRIME_CANDIDATE 121 40 | # define BN_R_NO_SOLUTION 116 41 | # define BN_R_NO_SUITABLE_DIGEST 120 42 | # define BN_R_PRIVATE_KEY_TOO_LARGE 117 43 | # define BN_R_P_IS_NOT_PRIME 112 44 | # define BN_R_TOO_MANY_ITERATIONS 113 45 | # define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /ffmpeg/openssl/buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_BUFFER_H 11 | # define OPENSSL_BUFFER_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_BUFFER_H 17 | # endif 18 | 19 | # include 20 | # ifndef OPENSSL_CRYPTO_H 21 | # include 22 | # endif 23 | # include 24 | 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | # include 31 | # include 32 | 33 | # ifndef OPENSSL_NO_DEPRECATED_3_0 34 | # define BUF_strdup(s) OPENSSL_strdup(s) 35 | # define BUF_strndup(s, size) OPENSSL_strndup(s, size) 36 | # define BUF_memdup(data, size) OPENSSL_memdup(data, size) 37 | # define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) 38 | # define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) 39 | # define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) 40 | # endif 41 | 42 | struct buf_mem_st { 43 | size_t length; /* current number of bytes */ 44 | char *data; 45 | size_t max; /* size of buffer */ 46 | unsigned long flags; 47 | }; 48 | 49 | # define BUF_MEM_FLAG_SECURE 0x01 50 | 51 | BUF_MEM *BUF_MEM_new(void); 52 | BUF_MEM *BUF_MEM_new_ex(unsigned long flags); 53 | void BUF_MEM_free(BUF_MEM *a); 54 | size_t BUF_MEM_grow(BUF_MEM *str, size_t len); 55 | size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); 56 | void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); 57 | 58 | 59 | # ifdef __cplusplus 60 | } 61 | # endif 62 | #endif 63 | -------------------------------------------------------------------------------- /ffmpeg/openssl/buffererr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_BUFFERERR_H 12 | # define OPENSSL_BUFFERERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * BUF reason codes. 23 | */ 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /ffmpeg/openssl/cmac.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CMAC_H 11 | # define OPENSSL_CMAC_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_CMAC_H 17 | # endif 18 | 19 | # ifndef OPENSSL_NO_CMAC 20 | 21 | # ifdef __cplusplus 22 | extern "C" { 23 | # endif 24 | 25 | # include 26 | 27 | # ifndef OPENSSL_NO_DEPRECATED_3_0 28 | /* Opaque */ 29 | typedef struct CMAC_CTX_st CMAC_CTX; 30 | # endif 31 | # ifndef OPENSSL_NO_DEPRECATED_3_0 32 | OSSL_DEPRECATEDIN_3_0 CMAC_CTX *CMAC_CTX_new(void); 33 | OSSL_DEPRECATEDIN_3_0 void CMAC_CTX_cleanup(CMAC_CTX *ctx); 34 | OSSL_DEPRECATEDIN_3_0 void CMAC_CTX_free(CMAC_CTX *ctx); 35 | OSSL_DEPRECATEDIN_3_0 EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); 36 | OSSL_DEPRECATEDIN_3_0 int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); 37 | OSSL_DEPRECATEDIN_3_0 int CMAC_Init(CMAC_CTX *ctx, 38 | const void *key, size_t keylen, 39 | const EVP_CIPHER *cipher, ENGINE *impl); 40 | OSSL_DEPRECATEDIN_3_0 int CMAC_Update(CMAC_CTX *ctx, 41 | const void *data, size_t dlen); 42 | OSSL_DEPRECATEDIN_3_0 int CMAC_Final(CMAC_CTX *ctx, 43 | unsigned char *out, size_t *poutlen); 44 | OSSL_DEPRECATEDIN_3_0 int CMAC_resume(CMAC_CTX *ctx); 45 | # endif 46 | 47 | # ifdef __cplusplus 48 | } 49 | # endif 50 | 51 | # endif 52 | #endif 53 | -------------------------------------------------------------------------------- /ffmpeg/openssl/cmp_util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * Copyright Nokia 2007-2019 4 | * Copyright Siemens AG 2015-2019 5 | * 6 | * Licensed under the Apache License 2.0 (the "License"). You may not use 7 | * this file except in compliance with the License. You can obtain a copy 8 | * in the file LICENSE in the source distribution or at 9 | * https://www.openssl.org/source/license.html 10 | */ 11 | 12 | #ifndef OPENSSL_CMP_UTIL_H 13 | # define OPENSSL_CMP_UTIL_H 14 | # pragma once 15 | 16 | # include 17 | # ifndef OPENSSL_NO_CMP 18 | 19 | # include 20 | # include 21 | 22 | # ifdef __cplusplus 23 | extern "C" { 24 | # endif 25 | 26 | int OSSL_CMP_log_open(void); 27 | void OSSL_CMP_log_close(void); 28 | # define OSSL_CMP_LOG_PREFIX "CMP " 29 | 30 | /* 31 | * generalized logging/error callback mirroring the severity levels of syslog.h 32 | */ 33 | typedef int OSSL_CMP_severity; 34 | # define OSSL_CMP_LOG_EMERG 0 35 | # define OSSL_CMP_LOG_ALERT 1 36 | # define OSSL_CMP_LOG_CRIT 2 37 | # define OSSL_CMP_LOG_ERR 3 38 | # define OSSL_CMP_LOG_WARNING 4 39 | # define OSSL_CMP_LOG_NOTICE 5 40 | # define OSSL_CMP_LOG_INFO 6 41 | # define OSSL_CMP_LOG_DEBUG 7 42 | # define OSSL_CMP_LOG_TRACE 8 43 | # define OSSL_CMP_LOG_MAX OSSL_CMP_LOG_TRACE 44 | typedef int (*OSSL_CMP_log_cb_t)(const char *func, const char *file, int line, 45 | OSSL_CMP_severity level, const char *msg); 46 | 47 | int OSSL_CMP_print_to_bio(BIO *bio, const char *component, const char *file, 48 | int line, OSSL_CMP_severity level, const char *msg); 49 | /* use of the logging callback for outputting error queue */ 50 | void OSSL_CMP_print_errors_cb(OSSL_CMP_log_cb_t log_fn); 51 | 52 | # ifdef __cplusplus 53 | } 54 | # endif 55 | # endif /* !defined(OPENSSL_NO_CMP) */ 56 | #endif /* !defined(OPENSSL_CMP_UTIL_H) */ 57 | -------------------------------------------------------------------------------- /ffmpeg/openssl/comp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_COMP_H 11 | # define OPENSSL_COMP_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_COMP_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_COMP 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | 29 | 30 | COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); 31 | const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); 32 | int COMP_CTX_get_type(const COMP_CTX* comp); 33 | int COMP_get_type(const COMP_METHOD *meth); 34 | const char *COMP_get_name(const COMP_METHOD *meth); 35 | void COMP_CTX_free(COMP_CTX *ctx); 36 | 37 | int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, 38 | unsigned char *in, int ilen); 39 | int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, 40 | unsigned char *in, int ilen); 41 | 42 | COMP_METHOD *COMP_zlib(void); 43 | 44 | #ifndef OPENSSL_NO_DEPRECATED_1_1_0 45 | # define COMP_zlib_cleanup() while(0) continue 46 | #endif 47 | 48 | # ifdef OPENSSL_BIO_H 49 | # ifdef ZLIB 50 | const BIO_METHOD *BIO_f_zlib(void); 51 | # endif 52 | # endif 53 | 54 | 55 | # ifdef __cplusplus 56 | } 57 | # endif 58 | # endif 59 | #endif 60 | -------------------------------------------------------------------------------- /ffmpeg/openssl/comperr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_COMPERR_H 12 | # define OPENSSL_COMPERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_COMP 21 | 22 | 23 | /* 24 | * COMP reason codes. 25 | */ 26 | # define COMP_R_ZLIB_DEFLATE_ERROR 99 27 | # define COMP_R_ZLIB_INFLATE_ERROR 100 28 | # define COMP_R_ZLIB_NOT_SUPPORTED 101 29 | 30 | # endif 31 | #endif 32 | -------------------------------------------------------------------------------- /ffmpeg/openssl/conf_api.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CONF_API_H 11 | # define OPENSSL_CONF_API_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_CONF_API_H 17 | # endif 18 | 19 | # include 20 | # include 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | /* Up until OpenSSL 0.9.5a, this was new_section */ 27 | CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); 28 | /* Up until OpenSSL 0.9.5a, this was get_section */ 29 | CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); 30 | /* Up until OpenSSL 0.9.5a, this was CONF_get_section */ 31 | STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, 32 | const char *section); 33 | 34 | int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); 35 | char *_CONF_get_string(const CONF *conf, const char *section, 36 | const char *name); 37 | long _CONF_get_number(const CONF *conf, const char *section, 38 | const char *name); 39 | 40 | int _CONF_new_data(CONF *conf); 41 | void _CONF_free_data(CONF *conf); 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | #endif 47 | -------------------------------------------------------------------------------- /ffmpeg/openssl/conftypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CONFTYPES_H 11 | # define OPENSSL_CONFTYPES_H 12 | # pragma once 13 | 14 | #ifndef OPENSSL_CONF_H 15 | # include 16 | #endif 17 | 18 | /* 19 | * The contents of this file are deprecated and will be made opaque 20 | */ 21 | struct conf_method_st { 22 | const char *name; 23 | CONF *(*create) (CONF_METHOD *meth); 24 | int (*init) (CONF *conf); 25 | int (*destroy) (CONF *conf); 26 | int (*destroy_data) (CONF *conf); 27 | int (*load_bio) (CONF *conf, BIO *bp, long *eline); 28 | int (*dump) (const CONF *conf, BIO *bp); 29 | int (*is_number) (const CONF *conf, char c); 30 | int (*to_int) (const CONF *conf, char c); 31 | int (*load) (CONF *conf, const char *name, long *eline); 32 | }; 33 | 34 | struct conf_st { 35 | CONF_METHOD *meth; 36 | void *meth_data; 37 | LHASH_OF(CONF_VALUE) *data; 38 | int flag_dollarid; 39 | int flag_abspath; 40 | char *includedir; 41 | OSSL_LIB_CTX *libctx; 42 | }; 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /ffmpeg/openssl/core_object.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_CORE_OBJECT_H 11 | # define OPENSSL_CORE_OBJECT_H 12 | # pragma once 13 | 14 | # ifdef __cplusplus 15 | extern "C" { 16 | # endif 17 | 18 | /*- 19 | * Known object types 20 | * 21 | * These numbers are used as values for the OSSL_PARAM parameter 22 | * OSSL_OBJECT_PARAM_TYPE. 23 | * 24 | * For most of these types, there's a corresponding libcrypto object type. 25 | * The corresponding type is indicated with a comment after the number. 26 | */ 27 | # define OSSL_OBJECT_UNKNOWN 0 28 | # define OSSL_OBJECT_NAME 1 /* char * */ 29 | # define OSSL_OBJECT_PKEY 2 /* EVP_PKEY * */ 30 | # define OSSL_OBJECT_CERT 3 /* X509 * */ 31 | # define OSSL_OBJECT_CRL 4 /* X509_CRL * */ 32 | 33 | /* 34 | * The rest of the associated OSSL_PARAM elements is described in core_names.h 35 | */ 36 | 37 | # ifdef __cplusplus 38 | } 39 | # endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /ffmpeg/openssl/crmferr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_CRMFERR_H 12 | # define OPENSSL_CRMFERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_CRMF 21 | 22 | 23 | /* 24 | * CRMF reason codes. 25 | */ 26 | # define CRMF_R_BAD_PBM_ITERATIONCOUNT 100 27 | # define CRMF_R_CRMFERROR 102 28 | # define CRMF_R_ERROR 103 29 | # define CRMF_R_ERROR_DECODING_CERTIFICATE 104 30 | # define CRMF_R_ERROR_DECRYPTING_CERTIFICATE 105 31 | # define CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY 106 32 | # define CRMF_R_FAILURE_OBTAINING_RANDOM 107 33 | # define CRMF_R_ITERATIONCOUNT_BELOW_100 108 34 | # define CRMF_R_MALFORMED_IV 101 35 | # define CRMF_R_NULL_ARGUMENT 109 36 | # define CRMF_R_POPOSKINPUT_NOT_SUPPORTED 113 37 | # define CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY 117 38 | # define CRMF_R_POPO_MISSING 121 39 | # define CRMF_R_POPO_MISSING_PUBLIC_KEY 118 40 | # define CRMF_R_POPO_MISSING_SUBJECT 119 41 | # define CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED 120 42 | # define CRMF_R_SETTING_MAC_ALGOR_FAILURE 110 43 | # define CRMF_R_SETTING_OWF_ALGOR_FAILURE 111 44 | # define CRMF_R_UNSUPPORTED_ALGORITHM 112 45 | # define CRMF_R_UNSUPPORTED_CIPHER 114 46 | # define CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO 115 47 | # define CRMF_R_UNSUPPORTED_POPO_METHOD 116 48 | 49 | # endif 50 | #endif 51 | -------------------------------------------------------------------------------- /ffmpeg/openssl/cterr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_CTERR_H 12 | # define OPENSSL_CTERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_CT 21 | 22 | 23 | /* 24 | * CT reason codes. 25 | */ 26 | # define CT_R_BASE64_DECODE_ERROR 108 27 | # define CT_R_INVALID_LOG_ID_LENGTH 100 28 | # define CT_R_LOG_CONF_INVALID 109 29 | # define CT_R_LOG_CONF_INVALID_KEY 110 30 | # define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 31 | # define CT_R_LOG_CONF_MISSING_KEY 112 32 | # define CT_R_LOG_KEY_INVALID 113 33 | # define CT_R_SCT_FUTURE_TIMESTAMP 116 34 | # define CT_R_SCT_INVALID 104 35 | # define CT_R_SCT_INVALID_SIGNATURE 107 36 | # define CT_R_SCT_LIST_INVALID 105 37 | # define CT_R_SCT_LOG_ID_MISMATCH 114 38 | # define CT_R_SCT_NOT_SET 106 39 | # define CT_R_SCT_UNSUPPORTED_VERSION 115 40 | # define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 41 | # define CT_R_UNSUPPORTED_ENTRY_TYPE 102 42 | # define CT_R_UNSUPPORTED_VERSION 103 43 | 44 | # endif 45 | #endif 46 | -------------------------------------------------------------------------------- /ffmpeg/openssl/decodererr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_DECODERERR_H 12 | # define OPENSSL_DECODERERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * OSSL_DECODER reason codes. 23 | */ 24 | # define OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT 101 25 | # define OSSL_DECODER_R_DECODER_NOT_FOUND 102 26 | # define OSSL_DECODER_R_MISSING_GET_PARAMS 100 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ffmpeg/openssl/dsaerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_DSAERR_H 12 | # define OPENSSL_DSAERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | # ifndef OPENSSL_NO_DSA 21 | 22 | 23 | /* 24 | * DSA reason codes. 25 | */ 26 | # define DSA_R_BAD_FFC_PARAMETERS 114 27 | # define DSA_R_BAD_Q_VALUE 102 28 | # define DSA_R_BN_DECODE_ERROR 108 29 | # define DSA_R_BN_ERROR 109 30 | # define DSA_R_DECODE_ERROR 104 31 | # define DSA_R_INVALID_DIGEST_TYPE 106 32 | # define DSA_R_INVALID_PARAMETERS 112 33 | # define DSA_R_MISSING_PARAMETERS 101 34 | # define DSA_R_MISSING_PRIVATE_KEY 111 35 | # define DSA_R_MODULUS_TOO_LARGE 103 36 | # define DSA_R_NO_PARAMETERS_SET 107 37 | # define DSA_R_PARAMETER_ENCODING_ERROR 105 38 | # define DSA_R_P_NOT_PRIME 115 39 | # define DSA_R_Q_NOT_PRIME 113 40 | # define DSA_R_SEED_LEN_SMALL 110 41 | # define DSA_R_TOO_MANY_RETRIES 116 42 | 43 | # endif 44 | #endif 45 | -------------------------------------------------------------------------------- /ffmpeg/openssl/dtls1.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_DTLS1_H 11 | # define OPENSSL_DTLS1_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_DTLS1_H 17 | # endif 18 | 19 | # include 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | #include 26 | 27 | /* DTLS*_VERSION constants are defined in prov_ssl.h */ 28 | # ifndef OPENSSL_NO_DEPRECATED_3_0 29 | # define DTLS_MIN_VERSION DTLS1_VERSION 30 | # define DTLS_MAX_VERSION DTLS1_2_VERSION 31 | # endif 32 | # define DTLS1_VERSION_MAJOR 0xFE 33 | 34 | /* Special value for method supporting multiple versions */ 35 | # define DTLS_ANY_VERSION 0x1FFFF 36 | 37 | /* lengths of messages */ 38 | 39 | # define DTLS1_COOKIE_LENGTH 255 40 | 41 | # define DTLS1_RT_HEADER_LENGTH 13 42 | 43 | # define DTLS1_HM_HEADER_LENGTH 12 44 | 45 | # define DTLS1_HM_BAD_FRAGMENT -2 46 | # define DTLS1_HM_FRAGMENT_RETRY -3 47 | 48 | # define DTLS1_CCS_HEADER_LENGTH 1 49 | 50 | # define DTLS1_AL_HEADER_LENGTH 2 51 | 52 | # define DTLS1_TMO_ALERT_COUNT 12 53 | 54 | #ifdef __cplusplus 55 | } 56 | #endif 57 | #endif 58 | -------------------------------------------------------------------------------- /ffmpeg/openssl/ebcdic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_EBCDIC_H 11 | # define OPENSSL_EBCDIC_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_EBCDIC_H 17 | # endif 18 | 19 | # include 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | /* Avoid name clashes with other applications */ 26 | # define os_toascii _openssl_os_toascii 27 | # define os_toebcdic _openssl_os_toebcdic 28 | # define ebcdic2ascii _openssl_ebcdic2ascii 29 | # define ascii2ebcdic _openssl_ascii2ebcdic 30 | 31 | extern const unsigned char os_toascii[256]; 32 | extern const unsigned char os_toebcdic[256]; 33 | void *ebcdic2ascii(void *dest, const void *srce, size_t count); 34 | void *ascii2ebcdic(void *dest, const void *srce, size_t count); 35 | 36 | #ifdef __cplusplus 37 | } 38 | #endif 39 | #endif 40 | -------------------------------------------------------------------------------- /ffmpeg/openssl/ecdh.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #include 11 | -------------------------------------------------------------------------------- /ffmpeg/openssl/ecdsa.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #include 11 | -------------------------------------------------------------------------------- /ffmpeg/openssl/encodererr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_ENCODERERR_H 12 | # define OPENSSL_ENCODERERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * OSSL_ENCODER reason codes. 23 | */ 24 | # define OSSL_ENCODER_R_ENCODER_NOT_FOUND 101 25 | # define OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY 100 26 | # define OSSL_ENCODER_R_MISSING_GET_PARAMS 102 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ffmpeg/openssl/esserr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_ESSERR_H 12 | # define OPENSSL_ESSERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | /* 20 | * ESS reason codes. 21 | */ 22 | # define ESS_R_EMPTY_ESS_CERT_ID_LIST 107 23 | # define ESS_R_ESS_CERT_DIGEST_ERROR 103 24 | # define ESS_R_ESS_CERT_ID_NOT_FOUND 104 25 | # define ESS_R_ESS_CERT_ID_WRONG_ORDER 105 26 | # define ESS_R_ESS_DIGEST_ALG_UNKNOWN 106 27 | # define ESS_R_ESS_SIGNING_CERTIFICATE_ERROR 102 28 | # define ESS_R_ESS_SIGNING_CERT_ADD_ERROR 100 29 | # define ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR 101 30 | # define ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE 108 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ffmpeg/openssl/fipskey.h: -------------------------------------------------------------------------------- 1 | /* 2 | * WARNING: do not edit! 3 | * Generated by Makefile from include/openssl/fipskey.h.in 4 | * 5 | * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. 6 | * 7 | * Licensed under the Apache License 2.0 (the "License"). You may not use 8 | * this file except in compliance with the License. You can obtain a copy 9 | * in the file LICENSE in the source distribution or at 10 | * https://www.openssl.org/source/license.html 11 | */ 12 | 13 | #ifndef OPENSSL_FIPSKEY_H 14 | # define OPENSSL_FIPSKEY_H 15 | # pragma once 16 | 17 | # ifdef __cplusplus 18 | extern "C" { 19 | # endif 20 | 21 | /* 22 | * The FIPS validation HMAC key, usable as an array initializer. 23 | */ 24 | #define FIPS_KEY_ELEMENTS \ 25 | 0xf4, 0x55, 0x66, 0x50, 0xac, 0x31, 0xd3, 0x54, 0x61, 0x61, 0x0b, 0xac, 0x4e, 0xd8, 0x1b, 0x1a, 0x18, 0x1b, 0x2d, 0x8a, 0x43, 0xea, 0x28, 0x54, 0xcb, 0xae, 0x22, 0xca, 0x74, 0x56, 0x08, 0x13 26 | 27 | /* 28 | * The FIPS validation key, as a string. 29 | */ 30 | #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" 31 | 32 | # ifdef __cplusplus 33 | } 34 | # endif 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /ffmpeg/openssl/kdferr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_KDFERR_H 11 | # define OPENSSL_KDFERR_H 12 | # pragma once 13 | 14 | #include 15 | 16 | #endif /* !defined(OPENSSL_KDFERR_H) */ 17 | -------------------------------------------------------------------------------- /ffmpeg/openssl/md2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_MD2_H 11 | # define OPENSSL_MD2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_MD2_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_MD2 22 | # include 23 | # ifdef __cplusplus 24 | extern "C" { 25 | # endif 26 | 27 | # define MD2_DIGEST_LENGTH 16 28 | 29 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 30 | 31 | typedef unsigned char MD2_INT; 32 | 33 | # define MD2_BLOCK 16 34 | 35 | typedef struct MD2state_st { 36 | unsigned int num; 37 | unsigned char data[MD2_BLOCK]; 38 | MD2_INT cksm[MD2_BLOCK]; 39 | MD2_INT state[MD2_BLOCK]; 40 | } MD2_CTX; 41 | # endif 42 | # ifndef OPENSSL_NO_DEPRECATED_3_0 43 | OSSL_DEPRECATEDIN_3_0 const char *MD2_options(void); 44 | OSSL_DEPRECATEDIN_3_0 int MD2_Init(MD2_CTX *c); 45 | OSSL_DEPRECATEDIN_3_0 int MD2_Update(MD2_CTX *c, const unsigned char *data, 46 | size_t len); 47 | OSSL_DEPRECATEDIN_3_0 int MD2_Final(unsigned char *md, MD2_CTX *c); 48 | OSSL_DEPRECATEDIN_3_0 unsigned char *MD2(const unsigned char *d, size_t n, 49 | unsigned char *md); 50 | # endif 51 | 52 | # ifdef __cplusplus 53 | } 54 | # endif 55 | # endif 56 | #endif 57 | -------------------------------------------------------------------------------- /ffmpeg/openssl/md4.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_MD4_H 11 | # define OPENSSL_MD4_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_MD4_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_MD4 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | # define MD4_DIGEST_LENGTH 16 29 | 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | 32 | /*- 33 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 34 | * ! MD4_LONG has to be at least 32 bits wide. ! 35 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 36 | */ 37 | # define MD4_LONG unsigned int 38 | 39 | # define MD4_CBLOCK 64 40 | # define MD4_LBLOCK (MD4_CBLOCK/4) 41 | 42 | typedef struct MD4state_st { 43 | MD4_LONG A, B, C, D; 44 | MD4_LONG Nl, Nh; 45 | MD4_LONG data[MD4_LBLOCK]; 46 | unsigned int num; 47 | } MD4_CTX; 48 | # endif 49 | # ifndef OPENSSL_NO_DEPRECATED_3_0 50 | OSSL_DEPRECATEDIN_3_0 int MD4_Init(MD4_CTX *c); 51 | OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len); 52 | OSSL_DEPRECATEDIN_3_0 int MD4_Final(unsigned char *md, MD4_CTX *c); 53 | OSSL_DEPRECATEDIN_3_0 unsigned char *MD4(const unsigned char *d, size_t n, 54 | unsigned char *md); 55 | OSSL_DEPRECATEDIN_3_0 void MD4_Transform(MD4_CTX *c, const unsigned char *b); 56 | # endif 57 | 58 | # ifdef __cplusplus 59 | } 60 | # endif 61 | # endif 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /ffmpeg/openssl/md5.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_MD5_H 11 | # define OPENSSL_MD5_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_MD5_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_MD5 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | # define MD5_DIGEST_LENGTH 16 29 | 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | /* 32 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 33 | * ! MD5_LONG has to be at least 32 bits wide. ! 34 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 35 | */ 36 | # define MD5_LONG unsigned int 37 | 38 | # define MD5_CBLOCK 64 39 | # define MD5_LBLOCK (MD5_CBLOCK/4) 40 | 41 | typedef struct MD5state_st { 42 | MD5_LONG A, B, C, D; 43 | MD5_LONG Nl, Nh; 44 | MD5_LONG data[MD5_LBLOCK]; 45 | unsigned int num; 46 | } MD5_CTX; 47 | # endif 48 | # ifndef OPENSSL_NO_DEPRECATED_3_0 49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); 50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); 51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); 52 | OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, 53 | unsigned char *md); 54 | OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); 55 | # endif 56 | 57 | # ifdef __cplusplus 58 | } 59 | # endif 60 | # endif 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /ffmpeg/openssl/mdc2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_MDC2_H 11 | # define OPENSSL_MDC2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_MDC2_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_MDC2 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | # define MDC2_DIGEST_LENGTH 16 29 | 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | 32 | # define MDC2_BLOCK 8 33 | 34 | typedef struct mdc2_ctx_st { 35 | unsigned int num; 36 | unsigned char data[MDC2_BLOCK]; 37 | DES_cblock h, hh; 38 | unsigned int pad_type; /* either 1 or 2, default 1 */ 39 | } MDC2_CTX; 40 | # endif 41 | # ifndef OPENSSL_NO_DEPRECATED_3_0 42 | OSSL_DEPRECATEDIN_3_0 int MDC2_Init(MDC2_CTX *c); 43 | OSSL_DEPRECATEDIN_3_0 int MDC2_Update(MDC2_CTX *c, const unsigned char *data, 44 | size_t len); 45 | OSSL_DEPRECATEDIN_3_0 int MDC2_Final(unsigned char *md, MDC2_CTX *c); 46 | OSSL_DEPRECATEDIN_3_0 unsigned char *MDC2(const unsigned char *d, size_t n, 47 | unsigned char *md); 48 | # endif 49 | 50 | # ifdef __cplusplus 51 | } 52 | # endif 53 | # endif 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /ffmpeg/openssl/objectserr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_OBJECTSERR_H 12 | # define OPENSSL_OBJECTSERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * OBJ reason codes. 23 | */ 24 | # define OBJ_R_OID_EXISTS 102 25 | # define OBJ_R_UNKNOWN_NID 101 26 | # define OBJ_R_UNKNOWN_OBJECT_NAME 103 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ffmpeg/openssl/opensslconf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_OPENSSLCONF_H 11 | # define OPENSSL_OPENSSLCONF_H 12 | # pragma once 13 | 14 | # include 15 | # include 16 | 17 | #endif /* OPENSSL_OPENSSLCONF_H */ 18 | -------------------------------------------------------------------------------- /ffmpeg/openssl/ossl_typ.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | /* 11 | * The original was renamed to 12 | * 13 | * This header file only exists for compatibility reasons with older 14 | * applications which #include . 15 | */ 16 | # include 17 | -------------------------------------------------------------------------------- /ffmpeg/openssl/pem2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_PEM2_H 11 | # define OPENSSL_PEM2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_PEM2_H 17 | # endif 18 | # include 19 | #endif 20 | -------------------------------------------------------------------------------- /ffmpeg/openssl/pkcs12err.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_PKCS12ERR_H 12 | # define OPENSSL_PKCS12ERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * PKCS12 reason codes. 23 | */ 24 | # define PKCS12_R_CANT_PACK_STRUCTURE 100 25 | # define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 26 | # define PKCS12_R_DECODE_ERROR 101 27 | # define PKCS12_R_ENCODE_ERROR 102 28 | # define PKCS12_R_ENCRYPT_ERROR 103 29 | # define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 30 | # define PKCS12_R_INVALID_NULL_ARGUMENT 104 31 | # define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 32 | # define PKCS12_R_INVALID_TYPE 112 33 | # define PKCS12_R_IV_GEN_ERROR 106 34 | # define PKCS12_R_KEY_GEN_ERROR 107 35 | # define PKCS12_R_MAC_ABSENT 108 36 | # define PKCS12_R_MAC_GENERATION_ERROR 109 37 | # define PKCS12_R_MAC_SETUP_ERROR 110 38 | # define PKCS12_R_MAC_STRING_SET_ERROR 111 39 | # define PKCS12_R_MAC_VERIFY_FAILURE 113 40 | # define PKCS12_R_PARSE_ERROR 114 41 | # define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 42 | # define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 43 | # define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /ffmpeg/openssl/prov_ssl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_PROV_SSL_H 11 | # define OPENSSL_PROV_SSL_H 12 | # pragma once 13 | 14 | # ifdef __cplusplus 15 | extern "C" { 16 | # endif 17 | 18 | /* SSL/TLS related defines useful to providers */ 19 | 20 | # define SSL_MAX_MASTER_KEY_LENGTH 48 21 | 22 | # define SSL3_VERSION 0x0300 23 | # define TLS1_VERSION 0x0301 24 | # define TLS1_1_VERSION 0x0302 25 | # define TLS1_2_VERSION 0x0303 26 | # define TLS1_3_VERSION 0x0304 27 | # define DTLS1_VERSION 0xFEFF 28 | # define DTLS1_2_VERSION 0xFEFD 29 | # define DTLS1_BAD_VER 0x0100 30 | 31 | # ifdef __cplusplus 32 | } 33 | # endif 34 | #endif /* OPENSSL_PROV_SSL_H */ 35 | -------------------------------------------------------------------------------- /ffmpeg/openssl/rc4.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_RC4_H 11 | # define OPENSSL_RC4_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_RC4_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_RC4 22 | # include 23 | # ifdef __cplusplus 24 | extern "C" { 25 | # endif 26 | 27 | # ifndef OPENSSL_NO_DEPRECATED_3_0 28 | typedef struct rc4_key_st { 29 | RC4_INT x, y; 30 | RC4_INT data[256]; 31 | } RC4_KEY; 32 | # endif 33 | # ifndef OPENSSL_NO_DEPRECATED_3_0 34 | OSSL_DEPRECATEDIN_3_0 const char *RC4_options(void); 35 | OSSL_DEPRECATEDIN_3_0 void RC4_set_key(RC4_KEY *key, int len, 36 | const unsigned char *data); 37 | OSSL_DEPRECATEDIN_3_0 void RC4(RC4_KEY *key, size_t len, 38 | const unsigned char *indata, 39 | unsigned char *outdata); 40 | # endif 41 | 42 | # ifdef __cplusplus 43 | } 44 | # endif 45 | # endif 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /ffmpeg/openssl/ripemd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_RIPEMD_H 11 | # define OPENSSL_RIPEMD_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_RIPEMD_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_RMD160 22 | # include 23 | # include 24 | 25 | # define RIPEMD160_DIGEST_LENGTH 20 26 | 27 | # ifdef __cplusplus 28 | extern "C" { 29 | # endif 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | 32 | # define RIPEMD160_LONG unsigned int 33 | 34 | # define RIPEMD160_CBLOCK 64 35 | # define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) 36 | 37 | typedef struct RIPEMD160state_st { 38 | RIPEMD160_LONG A, B, C, D, E; 39 | RIPEMD160_LONG Nl, Nh; 40 | RIPEMD160_LONG data[RIPEMD160_LBLOCK]; 41 | unsigned int num; 42 | } RIPEMD160_CTX; 43 | # endif 44 | # ifndef OPENSSL_NO_DEPRECATED_3_0 45 | OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Init(RIPEMD160_CTX *c); 46 | OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, 47 | size_t len); 48 | OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); 49 | OSSL_DEPRECATEDIN_3_0 unsigned char *RIPEMD160(const unsigned char *d, size_t n, 50 | unsigned char *md); 51 | OSSL_DEPRECATEDIN_3_0 void RIPEMD160_Transform(RIPEMD160_CTX *c, 52 | const unsigned char *b); 53 | # endif 54 | 55 | # ifdef __cplusplus 56 | } 57 | # endif 58 | # endif 59 | #endif 60 | -------------------------------------------------------------------------------- /ffmpeg/openssl/srtp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | /* 11 | * DTLS code by Eric Rescorla 12 | * 13 | * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. 14 | */ 15 | 16 | #ifndef OPENSSL_SRTP_H 17 | # define OPENSSL_SRTP_H 18 | # pragma once 19 | 20 | # include 21 | # ifndef OPENSSL_NO_DEPRECATED_3_0 22 | # define HEADER_D1_SRTP_H 23 | # endif 24 | 25 | # include 26 | 27 | #ifdef __cplusplus 28 | extern "C" { 29 | #endif 30 | 31 | # define SRTP_AES128_CM_SHA1_80 0x0001 32 | # define SRTP_AES128_CM_SHA1_32 0x0002 33 | # define SRTP_AES128_F8_SHA1_80 0x0003 34 | # define SRTP_AES128_F8_SHA1_32 0x0004 35 | # define SRTP_NULL_SHA1_80 0x0005 36 | # define SRTP_NULL_SHA1_32 0x0006 37 | 38 | /* AEAD SRTP protection profiles from RFC 7714 */ 39 | # define SRTP_AEAD_AES_128_GCM 0x0007 40 | # define SRTP_AEAD_AES_256_GCM 0x0008 41 | 42 | # ifndef OPENSSL_NO_SRTP 43 | 44 | __owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); 45 | __owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); 46 | 47 | __owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); 48 | __owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); 49 | 50 | # endif 51 | 52 | #ifdef __cplusplus 53 | } 54 | #endif 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /ffmpeg/openssl/ssl2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_SSL2_H 11 | # define OPENSSL_SSL2_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_SSL2_H 17 | # endif 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | # define SSL2_VERSION 0x0002 24 | 25 | # define SSL2_MT_CLIENT_HELLO 1 26 | 27 | #ifdef __cplusplus 28 | } 29 | #endif 30 | #endif 31 | -------------------------------------------------------------------------------- /ffmpeg/openssl/storeerr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_STOREERR_H 12 | # define OPENSSL_STOREERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * OSSL_STORE reason codes. 23 | */ 24 | # define OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE 107 25 | # define OSSL_STORE_R_BAD_PASSWORD_READ 115 26 | # define OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC 113 27 | # define OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST 121 28 | # define OSSL_STORE_R_INVALID_SCHEME 106 29 | # define OSSL_STORE_R_IS_NOT_A 112 30 | # define OSSL_STORE_R_LOADER_INCOMPLETE 116 31 | # define OSSL_STORE_R_LOADING_STARTED 117 32 | # define OSSL_STORE_R_NOT_A_CERTIFICATE 100 33 | # define OSSL_STORE_R_NOT_A_CRL 101 34 | # define OSSL_STORE_R_NOT_A_NAME 103 35 | # define OSSL_STORE_R_NOT_A_PRIVATE_KEY 102 36 | # define OSSL_STORE_R_NOT_A_PUBLIC_KEY 122 37 | # define OSSL_STORE_R_NOT_PARAMETERS 104 38 | # define OSSL_STORE_R_NO_LOADERS_FOUND 123 39 | # define OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR 114 40 | # define OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE 108 41 | # define OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 119 42 | # define OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED 109 43 | # define OSSL_STORE_R_UNREGISTERED_SCHEME 105 44 | # define OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE 110 45 | # define OSSL_STORE_R_UNSUPPORTED_OPERATION 118 46 | # define OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE 120 47 | # define OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED 111 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /ffmpeg/openssl/symhacks.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_SYMHACKS_H 11 | # define OPENSSL_SYMHACKS_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_SYMHACKS_H 17 | # endif 18 | 19 | # include 20 | 21 | /* Case insensitive linking causes problems.... */ 22 | # if defined(OPENSSL_SYS_VMS) 23 | # undef ERR_load_CRYPTO_strings 24 | # define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings 25 | # undef OCSP_crlID_new 26 | # define OCSP_crlID_new OCSP_crlID2_new 27 | 28 | # undef d2i_ECPARAMETERS 29 | # define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS 30 | # undef i2d_ECPARAMETERS 31 | # define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS 32 | # undef d2i_ECPKPARAMETERS 33 | # define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS 34 | # undef i2d_ECPKPARAMETERS 35 | # define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS 36 | 37 | # endif 38 | 39 | #endif /* ! defined HEADER_VMS_IDHACKS_H */ 40 | -------------------------------------------------------------------------------- /ffmpeg/openssl/txt_db.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_TXT_DB_H 11 | # define OPENSSL_TXT_DB_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_TXT_DB_H 17 | # endif 18 | 19 | # include 20 | # include 21 | # include 22 | # include 23 | 24 | # define DB_ERROR_OK 0 25 | # define DB_ERROR_MALLOC 1 26 | # define DB_ERROR_INDEX_CLASH 2 27 | # define DB_ERROR_INDEX_OUT_OF_RANGE 3 28 | # define DB_ERROR_NO_INDEX 4 29 | # define DB_ERROR_INSERT_INDEX_CLASH 5 30 | # define DB_ERROR_WRONG_NUM_FIELDS 6 31 | 32 | #ifdef __cplusplus 33 | extern "C" { 34 | #endif 35 | 36 | typedef OPENSSL_STRING *OPENSSL_PSTRING; 37 | DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) 38 | 39 | typedef struct txt_db_st { 40 | int num_fields; 41 | STACK_OF(OPENSSL_PSTRING) *data; 42 | LHASH_OF(OPENSSL_STRING) **index; 43 | int (**qual) (OPENSSL_STRING *); 44 | long error; 45 | long arg1; 46 | long arg2; 47 | OPENSSL_STRING *arg_row; 48 | } TXT_DB; 49 | 50 | TXT_DB *TXT_DB_read(BIO *in, int num); 51 | long TXT_DB_write(BIO *out, TXT_DB *db); 52 | int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), 53 | OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); 54 | void TXT_DB_free(TXT_DB *db); 55 | OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, 56 | OPENSSL_STRING *value); 57 | int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); 58 | 59 | #ifdef __cplusplus 60 | } 61 | #endif 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /ffmpeg/openssl/uierr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by util/mkerr.pl DO NOT EDIT 3 | * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License 2.0 (the "License"). You may not use 6 | * this file except in compliance with the License. You can obtain a copy 7 | * in the file LICENSE in the source distribution or at 8 | * https://www.openssl.org/source/license.html 9 | */ 10 | 11 | #ifndef OPENSSL_UIERR_H 12 | # define OPENSSL_UIERR_H 13 | # pragma once 14 | 15 | # include 16 | # include 17 | # include 18 | 19 | 20 | 21 | /* 22 | * UI reason codes. 23 | */ 24 | # define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 25 | # define UI_R_INDEX_TOO_LARGE 102 26 | # define UI_R_INDEX_TOO_SMALL 103 27 | # define UI_R_NO_RESULT_BUFFER 105 28 | # define UI_R_PROCESSING_ERROR 107 29 | # define UI_R_RESULT_TOO_LARGE 100 30 | # define UI_R_RESULT_TOO_SMALL 101 31 | # define UI_R_SYSASSIGN_ERROR 109 32 | # define UI_R_SYSDASSGN_ERROR 110 33 | # define UI_R_SYSQIOW_ERROR 111 34 | # define UI_R_UNKNOWN_CONTROL_COMMAND 106 35 | # define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 36 | # define UI_R_USER_DATA_DUPLICATION_UNSUPPORTED 112 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /ffmpeg/openssl/whrlpool.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use 5 | * this file except in compliance with the License. You can obtain a copy 6 | * in the file LICENSE in the source distribution or at 7 | * https://www.openssl.org/source/license.html 8 | */ 9 | 10 | #ifndef OPENSSL_WHRLPOOL_H 11 | # define OPENSSL_WHRLPOOL_H 12 | # pragma once 13 | 14 | # include 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 16 | # define HEADER_WHRLPOOL_H 17 | # endif 18 | 19 | # include 20 | 21 | # ifndef OPENSSL_NO_WHIRLPOOL 22 | # include 23 | # include 24 | # ifdef __cplusplus 25 | extern "C" { 26 | # endif 27 | 28 | # define WHIRLPOOL_DIGEST_LENGTH (512/8) 29 | 30 | # if !defined(OPENSSL_NO_DEPRECATED_3_0) 31 | 32 | # define WHIRLPOOL_BBLOCK 512 33 | # define WHIRLPOOL_COUNTER (256/8) 34 | 35 | typedef struct { 36 | union { 37 | unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; 38 | /* double q is here to ensure 64-bit alignment */ 39 | double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; 40 | } H; 41 | unsigned char data[WHIRLPOOL_BBLOCK / 8]; 42 | unsigned int bitoff; 43 | size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; 44 | } WHIRLPOOL_CTX; 45 | # endif 46 | # ifndef OPENSSL_NO_DEPRECATED_3_0 47 | OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); 48 | OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, 49 | const void *inp, size_t bytes); 50 | OSSL_DEPRECATEDIN_3_0 void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, 51 | const void *inp, size_t bits); 52 | OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); 53 | OSSL_DEPRECATEDIN_3_0 unsigned char *WHIRLPOOL(const void *inp, size_t bytes, 54 | unsigned char *md); 55 | # endif 56 | 57 | # ifdef __cplusplus 58 | } 59 | # endif 60 | # endif 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /keychainfix/Makefile: -------------------------------------------------------------------------------- 1 | TARGET := iphone:clang:latest:14.0 2 | INSTALL_TARGET_PROCESSES = Twitter 3 | 4 | 5 | include $(THEOS)/makefiles/common.mk 6 | 7 | TWEAK_NAME = keychainfix 8 | 9 | keychainfix_FILES = Tweak.x 10 | keychainfix_FRAMEWORKS = UIKit Foundation Security 11 | keychainfix_CFLAGS = -fobjc-arc 12 | 13 | include $(THEOS_MAKE_PATH)/tweak.mk 14 | -------------------------------------------------------------------------------- /keychainfix/Tweak.x: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | 5 | static NSString * _Nonnull accessGroupID() { 6 | NSDictionary *query = [NSDictionary dictionaryWithObjectsAndKeys: 7 | (__bridge NSString *)kSecClassGenericPassword, (__bridge NSString *)kSecClass, 8 | @"bundleSeedID", kSecAttrAccount, 9 | @"", kSecAttrService, 10 | (id)kCFBooleanTrue, kSecReturnAttributes, 11 | nil]; 12 | CFDictionaryRef result = nil; 13 | OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, (CFTypeRef *)&result); 14 | if (status == errSecItemNotFound) 15 | status = SecItemAdd((__bridge CFDictionaryRef)query, (CFTypeRef *)&result); 16 | if (status != errSecSuccess) 17 | return nil; 18 | NSString *accessGroup = [(__bridge NSDictionary *)result objectForKey:(__bridge NSString *)kSecAttrAccessGroup]; 19 | 20 | return accessGroup; 21 | } 22 | 23 | %hook TFSKeychain 24 | - (NSString *)providerDefaultAccessGroup { 25 | return accessGroupID(); 26 | } 27 | - (NSString *)providerSharedAccessGroup { 28 | return accessGroupID(); 29 | } 30 | %end 31 | 32 | %hook TFSKeychainDefaultTwitterConfiguration 33 | - (NSString *)defaultAccessGroup { 34 | return accessGroupID(); 35 | } 36 | - (NSString *)sharedAccessGroup { 37 | return accessGroupID(); 38 | } 39 | %end -------------------------------------------------------------------------------- /keychainfix/keychainfix.plist: -------------------------------------------------------------------------------- 1 | { Filter = { Bundles = ( "com.atebits.Tweetie2" ); }; } 2 | -------------------------------------------------------------------------------- /layout/Library/Application Support/BHT/BHTwitter.bundle/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/layout/Library/Application Support/BHT/BHTwitter.bundle/Info.plist -------------------------------------------------------------------------------- /layout/Library/Application Support/BHT/BHTwitter.bundle/SAMKeychain.bundle/en.lproj/SAMKeychain.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/layout/Library/Application Support/BHT/BHTwitter.bundle/SAMKeychain.bundle/en.lproj/SAMKeychain.strings -------------------------------------------------------------------------------- /lib/libavcodec.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libavcodec.a -------------------------------------------------------------------------------- /lib/libavdevice.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libavdevice.a -------------------------------------------------------------------------------- /lib/libavfilter.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libavfilter.a -------------------------------------------------------------------------------- /lib/libavformat.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libavformat.a -------------------------------------------------------------------------------- /lib/libavutil.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libavutil.a -------------------------------------------------------------------------------- /lib/libcrypto.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libcrypto.a -------------------------------------------------------------------------------- /lib/libffmpegkit.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libffmpegkit.a -------------------------------------------------------------------------------- /lib/libffmpegkit.la: -------------------------------------------------------------------------------- 1 | # libffmpegkit.la - a libtool library file 2 | # Generated by libtool (GNU libtool) 2.4.7 3 | # 4 | # Please DO NOT delete this file! 5 | # It is necessary for linking the library. 6 | 7 | # The name that we can dlopen(3). 8 | dlname='' 9 | 10 | # Names of this library. 11 | library_names='' 12 | 13 | # The name of the static archive. 14 | old_library='libffmpegkit.a' 15 | 16 | # Linker flags that cannot go in dependency_libs. 17 | inherited_linker_flags=' -framework libavcodec -framework libavfilter -framework libavformat -framework libavutil -framework libswscale -framework libswresample' 18 | 19 | # Libraries that this one depends upon. 20 | dependency_libs=' -L=/usr/lib -lc++' 21 | 22 | # Names of additional weak libraries provided by this library 23 | weak_library_names='' 24 | 25 | # Version information for libffmpegkit. 26 | current=0 27 | age=0 28 | revision=0 29 | 30 | # Is this an already installed library? 31 | installed=yes 32 | 33 | # Should we warn about portability when linking against -modules? 34 | shouldnotlink=no 35 | 36 | # Files to dlopen/dlpreopen 37 | dlopen='' 38 | dlpreopen='' 39 | 40 | # Directory that this library needs to be installed in: 41 | libdir='/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg-kit/lib' 42 | -------------------------------------------------------------------------------- /lib/libssl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libssl.a -------------------------------------------------------------------------------- /lib/libswresample.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libswresample.a -------------------------------------------------------------------------------- /lib/libswscale.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/lib/libswscale.a -------------------------------------------------------------------------------- /lib/pkgconfig/libavcodec.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg 2 | exec_prefix=${prefix} 3 | libdir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/lib 4 | includedir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/include 5 | 6 | Name: libavcodec 7 | Description: FFmpeg codec library 8 | Version: 60.3.100 9 | Requires: libswresample >= 4.10.100, libavutil >= 58.2.100 10 | Requires.private: 11 | Conflicts: 12 | Libs: -L${libdir} -lavcodec -pthread -lm 13 | Libs.private: 14 | Cflags: -I${includedir} 15 | -------------------------------------------------------------------------------- /lib/pkgconfig/libavdevice.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg 2 | exec_prefix=${prefix} 3 | libdir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/lib 4 | includedir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/include 5 | 6 | Name: libavdevice 7 | Description: FFmpeg device handling library 8 | Version: 60.1.100 9 | Requires: libavfilter >= 9.3.100, libswscale >= 7.1.100, libavformat >= 60.3.100, libavcodec >= 60.3.100, libswresample >= 4.10.100, libavutil >= 58.2.100 10 | Requires.private: 11 | Conflicts: 12 | Libs: -L${libdir} -lavdevice -lm 13 | Libs.private: 14 | Cflags: -I${includedir} 15 | -------------------------------------------------------------------------------- /lib/pkgconfig/libavfilter.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg 2 | exec_prefix=${prefix} 3 | libdir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/lib 4 | includedir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/include 5 | 6 | Name: libavfilter 7 | Description: FFmpeg audio/video filtering library 8 | Version: 9.3.100 9 | Requires: libswscale >= 7.1.100, libavformat >= 60.3.100, libavcodec >= 60.3.100, libswresample >= 4.10.100, libavutil >= 58.2.100 10 | Requires.private: 11 | Conflicts: 12 | Libs: -L${libdir} -lavfilter -pthread -lm 13 | Libs.private: 14 | Cflags: -I${includedir} 15 | -------------------------------------------------------------------------------- /lib/pkgconfig/libavformat.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg 2 | exec_prefix=${prefix} 3 | libdir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/lib 4 | includedir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/include 5 | 6 | Name: libavformat 7 | Description: FFmpeg container format library 8 | Version: 60.3.100 9 | Requires: libavcodec >= 60.3.100, libswresample >= 4.10.100, libavutil >= 58.2.100 10 | Requires.private: 11 | Conflicts: 12 | Libs: -L${libdir} -lavformat -lm -L/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/openssl/lib -lssl -lcrypto 13 | Libs.private: 14 | Cflags: -I${includedir} 15 | -------------------------------------------------------------------------------- /lib/pkgconfig/libavutil.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg 2 | exec_prefix=${prefix} 3 | libdir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/lib 4 | includedir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/include 5 | 6 | Name: libavutil 7 | Description: FFmpeg utility library 8 | Version: 58.2.100 9 | Requires: 10 | Requires.private: 11 | Conflicts: 12 | Libs: -L${libdir} -lavutil -pthread -lm -framework CoreFoundation -framework CoreVideo -framework CoreMedia 13 | Libs.private: 14 | Cflags: -I${includedir} 15 | -------------------------------------------------------------------------------- /lib/pkgconfig/libcrypto.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/openssl 2 | exec_prefix=${prefix} 3 | libdir=${exec_prefix}/lib 4 | includedir=${prefix}/include 5 | enginesdir=${libdir}/engines-3 6 | modulesdir=${libdir}/ossl-modules 7 | 8 | Name: OpenSSL-libcrypto 9 | Description: OpenSSL cryptography library 10 | Version: 3.1.1 11 | Libs: -L${libdir} -lcrypto 12 | Libs.private: -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /lib/pkgconfig/libssl.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/openssl 2 | exec_prefix=${prefix} 3 | libdir=${exec_prefix}/lib 4 | includedir=${prefix}/include 5 | 6 | Name: OpenSSL-libssl 7 | Description: Secure Sockets Layer and cryptography libraries 8 | Version: 3.1.1 9 | Requires.private: libcrypto 10 | Libs: -L${libdir} -lssl 11 | Cflags: -I${includedir} 12 | -------------------------------------------------------------------------------- /lib/pkgconfig/libswresample.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg 2 | exec_prefix=${prefix} 3 | libdir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/lib 4 | includedir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/include 5 | 6 | Name: libswresample 7 | Description: FFmpeg audio resampling library 8 | Version: 4.10.100 9 | Requires: libavutil >= 58.2.100 10 | Requires.private: 11 | Conflicts: 12 | Libs: -L${libdir} -lswresample -lm 13 | Libs.private: 14 | Cflags: -I${includedir} 15 | -------------------------------------------------------------------------------- /lib/pkgconfig/libswscale.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg 2 | exec_prefix=${prefix} 3 | libdir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/lib 4 | includedir=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/ffmpeg/include 5 | 6 | Name: libswscale 7 | Description: FFmpeg image rescaling library 8 | Version: 7.1.100 9 | Requires: libavutil >= 58.2.100 10 | Requires.private: 11 | Conflicts: 12 | Libs: -L${libdir} -lswscale -lm 13 | Libs.private: 14 | Cflags: -I${includedir} 15 | -------------------------------------------------------------------------------- /lib/pkgconfig/openssl.pc: -------------------------------------------------------------------------------- 1 | prefix=/Users/bandaralruwaili/Downloads/ffmpeg-kit/prebuilt/apple-ios-arm64/openssl 2 | exec_prefix=${prefix} 3 | libdir=${exec_prefix}/lib 4 | includedir=${prefix}/include 5 | 6 | Name: OpenSSL 7 | Description: Secure Sockets Layer and cryptography libraries and tools 8 | Version: 3.1.1 9 | Requires: libssl libcrypto 10 | -------------------------------------------------------------------------------- /libflex/Makefile: -------------------------------------------------------------------------------- 1 | export ARCHS = arm64 arm64e 2 | TARGET := iphone:clang:latest:14.0 3 | include $(THEOS)/makefiles/common.mk 4 | 5 | # FULL PATH of the FLEX repo on your own machine 6 | FLEX_ROOT = FLEX 7 | 8 | # Function to convert /foo/bar to -I/foo/bar 9 | dtoim = $(foreach d,$(1),-I$(d)) 10 | 11 | # Gather FLEX sources 12 | SOURCES = $(shell find $(FLEX_ROOT)/Classes -name '*.c') 13 | SOURCES += $(shell find $(FLEX_ROOT)/Classes -name '*.m') 14 | SOURCES += $(shell find $(FLEX_ROOT)/Classes -name '*.mm') 15 | # Gather FLEX headers for search paths 16 | _IMPORTS = $(shell /bin/ls -d $(FLEX_ROOT)/Classes/*/) 17 | _IMPORTS += $(shell /bin/ls -d $(FLEX_ROOT)/Classes/*/*/) 18 | _IMPORTS += $(shell /bin/ls -d $(FLEX_ROOT)/Classes/*/*/*/) 19 | _IMPORTS += $(shell /bin/ls -d $(FLEX_ROOT)/Classes/*/*/*/*/) 20 | IMPORTS = -I$(FLEX_ROOT)/Classes/ $(call dtoim, $(_IMPORTS)) 21 | 22 | TWEAK_NAME = libbhFLEX 23 | $(TWEAK_NAME)_FILES = libbhFLEX.x $(SOURCES) 24 | $(TWEAK_NAME)_FRAMEWORKS = CoreGraphics UIKit ImageIO QuartzCore 25 | $(TWEAK_NAME)_LIBRARIES = sqlite3 z 26 | $(TWEAK_NAME)_CFLAGS += -fobjc-arc -w -Wno-unsupported-availability-guard $(IMPORTS) -g 27 | $(TWEAK_NAME)_CCFLAGS += -std=gnu++11 28 | 29 | include $(THEOS_MAKE_PATH)/tweak.mk 30 | 31 | before-stage:: 32 | find . -name ".DS_Store" -delete 33 | 34 | # For printing variables from the makefile 35 | print-% : ; @echo $* = $($*) 36 | -------------------------------------------------------------------------------- /libflex/control: -------------------------------------------------------------------------------- 1 | Package: libflex 2 | Name: libFLEX 3 | Pre-Depends: firmware (>= 9.0) 4 | Depends: 5 | Version: 4.7.0~b4 6 | Architecture: iphoneos-arm 7 | Description: A library for Flipboard Explorer. 8 | Maintainer: Tanner Bennett 9 | Author: Tanner Bennett 10 | Section: Tweaks 11 | Depiction: https://nscake.github.io/package.html?package=libflex 12 | SileoDepiction: https://nscake.github.io/depictions/libflex.sileo.json 13 | -------------------------------------------------------------------------------- /libflex/depiction: -------------------------------------------------------------------------------- 1 | A dynamically loadable library for FLEX. Requires a loader, such as FLEXing. 2 | 3 | Changelog 4 | -------------------------------------------------------------------------------- /libflex/libFLEX.h: -------------------------------------------------------------------------------- 1 | // 2 | // libFLEX.h 3 | // FLEXing 4 | // 5 | // Created by Tanner Bennett on 2019-08-16 6 | // Copyright © 2019 Tanner Bennett. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | id FLXGetManager(); 12 | SEL FLXRevealSEL(); 13 | Class FLXWindowClass(); 14 | -------------------------------------------------------------------------------- /libflex/libbhFLEX.plist: -------------------------------------------------------------------------------- 1 | { Filter = { Bundles = ( "com.atebits.Tweetie2" ); }; } 2 | -------------------------------------------------------------------------------- /libflex/libbhFLEX.x: -------------------------------------------------------------------------------- 1 | // 2 | // libFLEX.m 3 | // libflex 4 | // 5 | // Created by Tanner Bennett on 2019-08-16 6 | // Copyright © 2019 Tanner Bennett. All rights reserved. 7 | // 8 | 9 | #import "libFLEX.h" 10 | #import "FLEXWindow.h" 11 | #import "FLEXManager.h" 12 | 13 | id FLXGetManager() { 14 | return [FLEXManager sharedManager]; 15 | } 16 | 17 | SEL FLXRevealSEL() { 18 | return @selector(showExplorer); 19 | } 20 | 21 | Class FLXWindowClass() { 22 | return [FLEXWindow class]; 23 | } 24 | -------------------------------------------------------------------------------- /packages/PUT_IPA_HERE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nowesr1/BHTwitter/7b7c13d9301c4d9c9a2e32e7aeb24a2aed8ef729/packages/PUT_IPA_HERE --------------------------------------------------------------------------------