工具/软件:Linux
您好 RAM、
我发现某些264媒体文件(在具有 VLC 应用程序的 PC 中是可以的)无法与 TI 264解码器一起播放。
outArgs 的扩展错误为 0x2000a00、该值被视为 IH264VDEC_ERR_MISSINGSLICE XDM_APPLIEDCONCEALMENT XDM_CORPTEDDATA。
我将此文件附在下面、请帮助我检查。
此外、解码器可以解析来自流头的正确宽度和高度。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Linux
您好 RAM、
我发现某些264媒体文件(在具有 VLC 应用程序的 PC 中是可以的)无法与 TI 264解码器一起播放。
outArgs 的扩展错误为 0x2000a00、该值被视为 IH264VDEC_ERR_MISSINGSLICE XDM_APPLIEDCONCEALMENT XDM_CORPTEDDATA。
我将此文件附在下面、请帮助我检查。
此外、解码器可以解析来自流头的正确宽度和高度。
高您好、
在共享/mp4文件中、VCL 数据丢失。 使用 ffmpeg 提取基本流时、该流能够解码并排除任何错误。 连接提取的基本流。
高您好、
[引用用户="Hongbo GAO"]我的 TI 解码器 SDK 版本是否较旧? 较新的 SDK 可能可以吗?! 您可以尝试上述 POST 中 RAM 所述的方法吗? 或者,您也可以在发行说明中检查编解码器版本。
我在独立的最新编解码器版本中没有看到任何错误。 此外、Vega 分析仪未显示提取的流的任何错误。
所有最新的编解码器版本都在这里: git.ti.com/.../codecs
Prashanth、您好!
[引用 user="Prashanth Kumar15"]您能否将帧编号 inputBytes 打印到编解码器和编解码器消耗的字节并共享日志。
VIDDEC3_Process mInCount 1、mInArgs->inputID=b5902f28、FD 0x20、mInput b5a04000、大小3035、 字节消耗3035、时间戳0.000、错误0
从上面的日志中、mInCount 是帧编号、size 是 inputBytes to codec 和 bytesConsumed。 错误是编解码器的结果。
我为您附加了名为 ti_264_decode_fail.zip 的日志。
最好的平地机。
Prashanth、您好!
感谢您的回答。 参数如下所示:
int32_t DecoderH264::initCommonStaticParams()
{
// xxx 其他编解码器支持;viddec3test 使用 IVIDDEC3_Params
mParams =(VIDDEC3_Params*) DCE_alloc (sizeof (IH264VDEC_Params));
if (!mParams){
错误("DEC 参数内存分配失败");
返回-1;
}
mParams->size = sizeof (IH264VDEC_Params);
mParams->maxBitRate = 10000000;
mParams->displayDelay = IVIDDEC3_DISPLAY_DELAY_AUTO;
mParams->numOutputDataUnits = 0;
//将最大宽度和高度设置为尽可能大
mParams->maxWidth = 4096;//mWidth
mParams->maxHeight = 4096;//mHeight
mParams->maxFrameRate = 30000;
mParams->dataEndease. = XDM_BYTE;
mParams->forceChromaFormat = XDM_YUV_420SP;
mParams->operatingMode = IVIDEO_DEDICE_ONLY;
mParams->displayBufsMode = IVIDDEC3_DISPLAYBUFS 嵌入式;
mParams->inputDataMode = IVIDEO_ENTIREFRAME;
mParams->metadataType[0] = IVIDEO_METADAPLANE_NONE;
mParams->metadataType[1] = IVIDEO_METADAPLANE_NONE;
mParams->metadataType[2] = IVIDEO_METADAPLANE_NONE;
mParams->outputDataMode = IVIDEO_ENTIREFRAME;
mParams->numInputDataUnits = 0;
mParams->errorInfoMode = IVIDEO_ERRORINFO_OFF;
返回0;
}
int32_t DecoderH264::initSpecStaticParams()
{
断言(mParams);
mH264Params =(IH264VDEC_Params *) mParams;
mH264Params->dpbSizeInFrames = IH264VDEC_DPB_NUMFRAMES_AUTO;
mH264Params->pConstantMemory = 0;
mH264Params->presetLevelIdc = IH264VDEC_LEVEL41;
mH264Params->errConcealmentMode = IH264VDEC_APPLE_HELITHOT;
mH264Params->temporalDirModePred = true;
mH264Params->detectCabacAlignErr = IH264VDEC_DISABLE_CABACALIGNERR_DETECTION;
mH264Params->bitStreamFormat = IH264VDEC_BYTE_STREAME_FORMAT;
mH264Params->假 帧类型= mDecodeIOnly? IH264VDEC_DEDEC_DEDR_I_ONLY:IH264VDEC_DEDEC_ALL;
调试("mDecodeIOnly %d"、mDecodeIOnly);
返回0;
}
int32_t DecoderH264:::initCommonDynamicParams()
{
如果(!mDynParams){
mDynParams =(IVIDDEC3_DynamicParams*) dc_alloc (sizeof (IH264VDEC_DynamicParams));
mDynParams->size = sizeof (IH264VDEC_DynamicParams);
mH264DynParams =(IH264VDEC_DynamicParams *) mDynParams;
mDynParams->displayWidth = 0;
mDynParams->frameSkipMode = IVIDEO_NO_SKIP;
mDynParams->newFrameFlag = XDAS_true;
}
//常用参数
mDynParams->DecodeHeader = mDecoderHeader? XDM_parse_header:XDM_decode_AU;
返回0;
}
int32_t DecoderH264::initSpecDynamicParams()
{
返回0;
}
首先、我将假头设置为 parse_header 模式、因为我要从流头解析 w/h。
在我获得流分辨率后、再次将 诱骗接头设置为解码_AU 模式。
此外、我注意到这些参数适用于其他264个流。