On Sun, May 26, 2019 at 01:46:32AM +0530, Swaraj Hota wrote: > + st = avformat_new_stream(s, NULL); > + if (!st) > + return AVERROR(ENOMEM); > + > + st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; > + st->codecpar->codec_id = AV_CODEC_ID_H264; > + st->codecpar->width = ifv->width; > + st->codecpar->height = ifv->height; > + st->start_time = 0; > + ifv->video_stream_index = st->index;
I suspect that it would have been ok to just assume/assert this will always be 0. > +static int ifv_read_packet(AVFormatContext *s, AVPacket *pkt) As far as I can tell, you just choose between audio and video by the closest timestamp. While this might be ok considering the limited importance and uses of the format, it is rather simplistic. I do not know if it follows the latest best practices, but mov_find_next_sample is an example of a more sophisticated way. It takes into account whether the underlying transport has issues seeking (like http, or even worse piped input) and in that case prefers file position over timestamp position. It also avoids wasting time reading streams marked as AVDISCARD_ALL (in mov_read_packet is that check). Maybe others following the project more closely can give additional/better best practice tips. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".