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

Reply via email to