1

avcodec_decode_video2のドキュメントでは、次の警告が表示されます。

警告:

一部の最適化されたビットストリーム リーダーは一度に 32 ビットまたは 64 ビットを読み取り、最後まで読み取る可能性があるため、入力バッファーは実際の読み取りバイトよりも FF_INPUT_BUFFER_PADDING_SIZE 大きくする必要があります。破損した MPEG ストリームに対してオーバーリードが発生しないようにするには、入力バッファ buf の末尾を 0 に設定する必要があります。

これが実装されていない場合、オーバーリードが発生したときにセグメンテーション違反が発生しますか? それとも、奇妙な破損を引き起こす可能性がありますか? 破損があり、これが問題を引き起こしている可能性があるかどうかはわかりません。

4

1 に答える 1

2

必ずしもセグメンテーション違反が発生するわけではありませんがundefined behavior、これらのリーダーは未割り当てのメモリを読み取るため、発生する可能性があります。これにより、プログラムがすぐにクラッシュしたり、しばらく動作したり、正常に動作しているように見えることさえありますundefined behavior

于 2013-09-17T18:44:48.813 に答える