Hi,
I think my problem isn't clear, I explain it in another way:
It's possible to use av_read_frame() to read some packets and after
finishing, I use av_read_frame() to have the same packets another time
(like as I reinsert those packets in the beginning of the buffer or I
didn't read it at all)?
Best regards,
Ismail MEJRI.
Hi,
I want to decode same packets before send it to the player, because
avformat_find_stream_info() take long time to scan, I want to replace
it by a simple function, but now I am losing the decoded packets after
this function and this make the player take time to show the first
picture. So, how I can read multiple packets in ffmpeg without
deleting it after "av_packet_unref()"?
In otherwise how I can repointing to the first packet decoded after
terminate scanning with this function.
Or if you have any another idea to speed up the scan process?
my function:
found=av_read_frame(m_pFormatContext,&pkt1);
if (found == AVERROR(EAGAIN))
{
Close();
return false;
}
pkt = &pkt1;
str = m_pFormatContext->streams[pkt->stream_index];
if (str->codec->codec_type == AVMEDIA_TYPE_VIDEO && testv < 2) {
gotFrame = 0;
frame = av_frame_alloc();
m_codec=avcodec_find_decoder(str->codec->codec_id);
str->codec=avcodec_alloc_context3(m_codec);
if (avcodec_open2(str->codec, m_codec, NULL) >= 0) {
fine = avcodec_decode_video2(str->codec, frame, &gotFrame,
pkt);
if (fine >= 0)
{
testv = testv + gotFrame + 1;
}
av_frame_free(&frame);
}
}
Reply to me if you need more information.
I hope what I have requested is possible.
Best regards,
Ismail MEJRI.
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user