- state = (*s->decoder)->DecodeFrame2(s->decoder, avpkt->data, avpkt->size, ptrs, &info);
+ if (!avpkt->data) {
+#if OPENH264_VER_AT_LEAST(1, 9)
+ int end_of_stream = 1;
+ (*s->decoder)->SetOption(s->decoder, DECODER_OPTION_END_OF_STREAM, &end_of_stream);
+ state = (*s->decoder)->FlushFrame(s->decoder, ptrs, &info);
+#else
+ return 0;
+#endif
+ } else {
+ info.uiInBsTimeStamp = avpkt->pts;
+ state = (*s->decoder)->DecodeFrame2(s->decoder, avpkt->data, avpkt->size, ptrs, &info);
+ }