- return av_get_packet(pb, pkt, FFMIN(dsf->data_end - pos, st->codecpar->block_align));
+ ret = av_get_packet(pb, pkt, FFMIN(dsf->data_end - pos, st->codecpar->block_align));
+ if (ret < 0)
+ return ret;
+
+ pkt->stream_index = 0;
+ pkt->pts = (pos - s->internal->data_offset) / st->codecpar->channels;
+ pkt->duration = st->codecpar->block_align / st->codecpar->channels;
+
+ return 0;