[转载]top block unavailable for requested intra mode

https://blog.51cto.com/fengyuzaitu/2060964 [h264 @ 04241fc0] top block unavailable for requested intra mode [h264 @ 04241fc0] error while decoding MB 2 0, bytestream 243592 [h264 @ 04241fc0] concealing 8160 DC, 8160 AC, 8160 MV errors in I frame [h264 @ 036da7a0] top block unavailable for requested intra mode [h264 @ 036da7a0] error while decoding MB 87 0, bytestream 13676 [h264 @ 036da7a0] concealing 8122 DC, 8122 AC, 8122 MV errors in P frame [swscaler @ 054140c0] deprecated pixel format used, make sure you did set range correctly [h264 @ 0447a540] concealing 7913 DC, 7913 AC, 7913 MV errors in P frame [h264 @ 0447a960] top block unavailable for requested intra modetop block unavailable for requested intra mode -1 [h264 @ 0447a960] error while decoding MB 52 0, bytestream 18938 ...

September 2, 2021 · 1 min · holdsky

ijkplayer 初始化参数 IJKFFOptions

key平台默认取值范围描述ancommon0整数–{0,1}禁用音频vncommon0整数–{0,1}禁用视频nodispcommon0整数–{0,1}禁用图像显示。和vn的区别是:vn不解码不渲染;nodisp解码不渲染volumecommon100整数–[0,100]音量loopcommon1整数设置循环播放次数infbufcommon0整数–{0,1}不限制输入缓冲区大小(对实时流很有用)max-fpscommon31整数–[-1,121]允许的最大播放帧率,当视频的实际帧率大于这个数值时,将丢弃部分视频帧。framedropcommon0整数–[-1,120]ijkplaer以音频帧为时间基准,当视频帧和音频帧不同步时,允许丢弃的视频帧数。seek-at-startcommon0非负整数起始播放位置的偏移量,单位毫秒。例如可以设置从第20秒的位置播放subtitlecommon0整数–{0,1}是否解码字幕数据find_stream_infocommon1整数–{0,1}读取和解码流以使用启发式方法填充丢失的信息。用来优化播放体验。overlay-formatcommonSDL_FCC_RV32{SDL_FCC_YV12,SDL_FCC_I420,SDL_FCC_RV16,SDL_FCC_RV24,SDL_FCC_RV32}图像颜色空间格式。 SDL_FCC_YV12 —- bpp=12, Planar mode: Y + V + U (3 planes) SDL_FCC_I420 —- bpp=12, Planar mode: Y + U + V (3 planes) SDL_FCC_RV16 —- bpp=16, RGB565 SDL_FCC_RV24 —- bpp=24, RGB888 SDL_FCC_RV32 —- bpp=32, RGBX8888start-on-preparedcommon1整数–{0,1}如果设置为1的话,播放准备工作完成后自动开始播放video-pictq-sizecommon3整数–[3,16]视频帧队列大小。max-buffer-sizecommon15 1024 1024整数–[0,15 1024 1024]预读数据的缓冲区大小。min-framescommon50000整数–[2,50000]停止预读的最小帧数。即预读帧数大于等于该值时,将停止预读。first-high-water-mark-mscommon100整数–[100,5000](缓冲)读取线程的第一次唤醒时间,单位毫秒next-high-water-mark-mscommon1000整数-- [100,5000](缓冲)读取线程的第二次唤醒时间,单位毫秒last-high-water-mark-mscommon5000整数–[100,5000](缓冲)读取线程的第三次唤醒时间,单位毫秒acket-bufferingcommon1整数–{0,1}暂停输出,直到停止后读取足够的数据包sync-av-startcommon1整数–{0,1}播放开始时对音视频进行同步操作iformatcommonNULL字符串强制使用指定格式,如RTSP, H264,FLV, MKV, MP4, AVI等no-time-adjustcommon0整数–{0,1}如果使用实时模式而不是调整模式,则返回流中的位置。这个用例主要是在使用自定义的不可搜索数据源时,该数据源以不是流开头的缓冲区开始。我们希望 get_current_position 返回流中的时间,而不是播放器的内部时间。preset-5-1-center-mix-levelcommon_1/sqrt(2)_双精度浮点数–[-32,32]为 5.1 声道预设中央混合电平enable-accurate-seekcommon0整数–{0,1}使用精确寻帧。例如,拖动播放后,会寻找最近的关键帧进行播放,很有可能关键帧的位置不是拖动后的位置,而是较前的位置。可以设置这个参数来解决问题accurate-seek-timeoutcommon5000整数–[0,5000]设置精确寻帧的超时时间。单位,毫秒skip-calc-frame-ratecommon0整数–{0,1}不计算真实的帧率async-init-decodercommon0整数–{0,1}异步创建解码器videotoolboxiOS0{0,1}是否使用videoToolbox框架解码。(非零表示使用)videotoolbox-max-frame-widthiOS0正整数使用videoToolbox框架解码帧画面最大宽度,0表示使用视频原始宽度。当设置大于0的值,且视频原始宽度大于设置值,则会进行相应缩放处理。videotoolbox-asynciOS0{0,1}异步解码模式kVTDecodeFrame_EnableAsynchronousDecompressionvideotoolbox-wait-asynciOS1{0,1}是否调用VTDecompressionSessionWaitForAsynchronousFrames。作用是等待异步解码完成后再返回。例如,在销毁播放器资源前调用,以保证资源能被正确释放。videotoolbox-handle-resolution-changeiOS0{0,1}自动处理分辨率变化

August 30, 2021 · 1 min · holdsky

Xcode调试iPhone真机 :code signature version is no longer supported

Details Unable to install "MyApp" Domain: com.apple.dt.MobileDeviceErrorDomain Code: -402620375 - The code signature version is no longer supported. Domain: com.apple.dt.MobileDeviceErrorDomain Code: -402620375 User Info: { DVTRadarComponentKey = 261622; MobileDeviceErrorCode = "(0xE8008029)"; "com.apple.dtdevicekit.stacktrace" = ( 0 DTDeviceKitBase 0x000000011edd83b8 DTDKCreateNSErrorFromAMDErrorCode + 220 1 DTDeviceKitBase 0x000000011ee16ae1 __90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 155 2 DVTFoundation 0x0000000107881b7c DVTInvokeWithStrongOwnership + 71 3 DTDeviceKitBase 0x000000011ee16822 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1440 4 IDEiOSSupportCore 0x000000011eccf999 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.294 + 3534 5 DVTFoundation 0x00000001079b4931 __DVT_CALLING_CLIENT_BLOCK__ + 7 6 DVTFoundation 0x00000001079b655b __DVTDispatchAsync_block_invoke + 1191 7 libdispatch.dylib 0x00007fff20508603 _dispatch_call_block_and_release + 12 8 libdispatch.dylib 0x00007fff205097e6 _dispatch_client_callout + 8 9 libdispatch.dylib 0x00007fff2050f5ca _dispatch_lane_serial_drain + 606 10 libdispatch.dylib 0x00007fff2051008d _dispatch_lane_invoke + 366 11 libdispatch.dylib 0x00007fff20519bed _dispatch_workloop_worker_thread + 811 12 libsystem_pthread.dylib 0x00007fff206b04c0 _pthread_wqthread + 314 13 libsystem_pthread.dylib 0x00007fff206af493 start_wqthread + 15 ); } - 可能是因为对framework的签名不一致导致,有的是 Do Not Embed, 有的是 Embed and Sign ...

July 30, 2021 · 1 min · holdsky

Xcode构建关于Bitcode的说明

启用/关闭Bitcode Xcode设置路径为 Build Settings -> Build Options -> Enable Bitcode 设置后,改变的是构建过程中环境变量 ENABLE_BITCODE 的值。 需要注意的是,这个设置在不同的构建中表现不一样 平时用于调试、部署的构建,启用Bitcode后,仅进行Bitcode依赖检测,不会生成Bitcode符号到产物中。(项目中即使有非Bitcode库,也不影响调试、部署) 当进行Archive打包时,启用Bitcode后,则要求项目的所有依赖库均启用Bitcode(所有库均要有Bitcode符号) 另外,Xcode构建时也会读取环境变量 HIDE_BITCODE_SYMBOLS,这个变量默认YES。当 HIDE_BITCODE_SYMBOL=NO 且 ENABLE_BITCODE=YES 时,则要求项目的所有依赖库均要有Bitcode符号 强制所有构建启用Bitcode 添加 -fembed-bitcode 编译标识。设置路径为 Build Settings -> Apple Clang - Custom Compiler Flags -> Other C Flags 添加后,无论哪种构建,均会强制启用Bitcode。 而通过 Build Settings -> Build Options -> Enable Bitcode 路径启用Bitcode,本质是添加了编译标识 -fembed-bitcode-marker,区别如下 -fembed-bitcode ,任何类型的Build都会带上Bitcode符号 -fembed-bitcode-marker, 只是在产物中做标记,表示可以支持Bitcode;而在Archive打包时,才会生成Bitcode符号 XcodeBuild构建如何启用BitCode Shell环境中构建SDK(静态库、动态库)的场景,此时没有Archive构建,那么可以设置 BITCODE_GENERATION_MODE=bitcode 解决。 BITCODE_GENERATION_MODE可以是 marker,也可以是 bitcode,默认取 marker 例如: xcodebuild BITCODE_GENERATION_MODE=bitcode ..... 如何查看SDK中是否含有Bitcode符号 可以通过 Mach-O View 工具查看,是否含有 Section (__LLVM ,__bitcode ). ...

July 1, 2021 · 1 min · holdsky

设置环境变量关闭react-scripts的sourceMap生成

关于 GENERATE_SOURCEMAP 的作用原理在这篇文章中介绍过。 http://139.155.43.7/2019/10/15/create-react-app-%ef%bc%9a%e4%b8%8d%e4%ba%a7%e7%94%9fsource-map%e6%9d%a5%e7%bc%a9%e5%87%8f%e6%89%93%e5%8c%85%e6%96%87%e4%bb%b6%e4%bd%93%e7%a7%af/ 可以通过创建 .env 环境变量文件影响 react-scripts start/build 等命令。其实还有另一种更灵活的方式设置环境变量,使用 export 可以对不同的命令设置不同的环境变量. 打开 package.json,找到 scripts 配置项 "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, 添加 export GENERATE_SOURCEMAP=true/false 修改为以下配置 "scripts": { "start": "export GENERATE_SOURCEMAP=true && react-scripts start", "build": "export GENERATE_SOURCEMAP=false && react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, 这样,在运行start调试时,产生sourceMap方便调试;运行build命令时,关闭sourceMap减少产物文件大小。

June 15, 2021 · 1 min · holdsky

React-ZLView 使用 x-y-width-height坐标布局

https://github.com/gm958spanda/React-ZLView https://gitee.com/gm958spanda/React-ZLView ZLView ZLView base react , super and sub , coordinate by x-y-width-height;基于react的视图,使用x-y-width-height坐标系 示例 使用多个div节点绘制正弦曲线 import React from 'react'; import * as zl from 'react-zlview' class App extends React.Component { private appView : zl.View | undefined; render() { if(this.appView === undefined) { this.appView = new zl.View(); this.appView.x = 200; this.appView.y = 100; this.appView.width = 1000; this.appView.height = 50; this.appView.backgroudColor = "white"; let colors = ["red","blue","gredd"]; for (let i = 0 ; 999 > i ; i ++) { let sub = new zl.View(); sub.x = i; sub.y = Math.sin(i / 3.14) * 15 + this.appView.height / 2; sub.width = 3; sub.height = 3; sub.backgroudColor = colors[i %3]; this.appView.addSubview(sub); } } // 也可以直接返回 this.appView.reactElement(); // return this.appView.reactElement(); return ( {this.appView.reactElement()} ); } } ZLView的坐标系统 一个ZLView对应一个 React Component,也可说是对 React Component 的封装;ZLView采用固定CSS样式,将 position 设置为 absolute,然后设置 left/right/widht/height。当然ZLView对此作了封装: ...

May 28, 2021 · 3 min · holdsky

【转载】使用TypeScript开发项目打包发布到npm

初始化项目 npm init 通过 npm init 初始化项目来创建用户 package.json 文件 也可以 npm init -y 这个是使用的默认的配置,我个人使用的是 npm init 创建tsconfig.json文件 tsc --init 就会生成一个tsconfig.json文件 修改tsconfig.json默认文件 把这两个注释打开 { "compilerOptions": { "declaration": true, //打包之后是否生成声明文件 "outDir": "./dist", //输出文件 } } 添加exclude,忽略dist文件 在打包的时候会排除这里面指定的路径文件 { "compilerOptions": { }, "exclude": [ "./dist" ] } 安装typescript依赖 npm install typescript -D 开始编码 创建xxxxx.ts文件,写入typescript代码 例如 const arrayMap = (array: [], callback:(item: any,index: number, arr: any[]) => any): any => { let i = -1 const len = array.length let resArray = [] while (++i < len){ resArray.push(callback(array[i],i,array)) } return resArray } export = arrayMap 对代码进行编译 tsc 此时我们的项目就会多了一个dist目录 ...

May 28, 2021 · 1 min · holdsky

typescript 导出 d.ts声明文件

需要在 tsconfig.json 中配置以下参数 { "noEmit": false, "declaration": true, "declarationDir": "dist/declaration", "outDir": "dist" } noEmit , 若要导出 d.ts 文件,必须为false。否则会忽略 declaration 相关参数 declaration,是否导出 d.ts 文件,当为true时且 noEmit 为true时才会进行导出操作. declarationDir, d.ts 文件存放的目录路径。当不设置改参数时,将使用 outDir 的值 outDir,将typescript 转换成js文件、以及 d.ts 文件的存放目录 配置完成后,运行 tsc --build tsconfig.json 即可

May 24, 2021 · 1 min · holdsky

iOS 编译宏与指令

版本依赖宏 当前系统支持的最小版本 __IPHONE_OS_VERSION_MIN_REQUIRED 当前系统支持的最大版本 __IPHONE_OS_VERSION_MAX_ALLOWED @interface ViewA : UIView #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_9_0 。。。 。。。 。。。 #endif @end @available 和版本依赖宏的功能类似,不过是一个编译指令,在运行时失效,用来判断当前运行的版本环境 if (@available(iOS 9.0,*)) { //iOS 9.0版本及以上系统环境执行此代码块 ..... } DEBUG 和 __DEBUG 用来判断是Release还是Debug运行模式。DEBUG定义为1或者TRUE #if DEBUG NSLog(Debug模式) #endi API版本宏 API_AVAILABLE 指定API在最小系统版本中可用 // 在 iOS 10.0版本及以后可用 API_AVAILABLE(ios(10.0)) @interface StepSlider : UIControl @end // 在 iOS 14.0版本及以后可用 - (instancetype)initWithFrame:(CGRect)frame primaryAction:(nullable UIAction *)primaryAction API_AVAILABLE(ios(14.0)); API降级宏 API_DEPRECATED 指定API在相应版本后不推荐使用 // 9.0之后,不推荐使用UIAlertView,应使用UIAlertController替换 UIKIT_EXTERN API_DEPRECATED(UIAlertView is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead, ios(2.0, 9.0)) API_UNAVAILABLE(tvos) @interface UIAlertView : UIView @end API不可用宏 API_UNAVAILABLE / OBJC_UNAVAILABLE / NS_UNAVAILABLE // tvos ,watchos平台不可用 @property (nonatomic, readwrite, nullable, copy) NSString *testabcd API_UNAVAILABLE(tvos, watchos); // 方法被删除,不再使用 -(void)funcA API_UNAVAILABLE(unavailable since now) // 方法不可用 -(void)funcB NS_UNAVAILABLE; C/C++ extern 宏 __BEGIN_DECLS 一般在头文件中使用,用来适配 .c 和 .cpp 的不同语法(也就是c/c++的语法差异) ...

April 27, 2021 · 1 min · holdsky

ImageOptim CLI(命令行)

ImageOptim 是macOS系统下的图像二次压缩工具集合,支持GUI模式和CLI模式。源码在https://github.com/ImageOptim/ImageOptim CLI模式可参考 https://imageoptim.com/command-line.html 例如 非阻塞模式,异步将当前文件夹下的所有图片进行二次压缩 open -a ImageOptim . 阻塞模式,同步将当前文件夹下所有png图片进行二次压缩 /Applications/ImageOptim.app/Contents/MacOS/ImageOptim *.png

April 22, 2021 · 1 min · holdsky