<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="color:#073763">Thank you for your replies.</div><div class="gmail_default" style=""><font color="#741b47">> The parser should tell you (if FFmpeg provides a parser for</font></div><font color="#741b47"><span class="gmail_default" style="">> </span>the video format).</font><div class="gmail_default" style="color:#073763">That's what I used to get what I need.</div><div class="gmail_default" style="color:#073763">Below is the code.</div><div class="gmail_default" style="color:#073763"><br></div><div class="gmail_default" style="color:#073763">Best regards.</div><div class="gmail_default" style="color:#073763">----------------------------------------</div><div class="gmail_default" style="color:#073763">AVFormatContext *pFormatContext = NULL;<br>    AVPacket *pPacket = NULL;<br><br>    pFormatContext = avformat_alloc_context();<br>    if (pFormatContext == NULL) {<br>        printf("%s\n", "error when allocating memory for pFormatContext !! \n");<br>        exit(1);<br>    }<br>    /* open the media file */<br>    if (avformat_open_input(&pFormatContext, filename, NULL, NULL) != 0) {<br>        printf("%s\n", "couldn't open the media !!");<br>        exit(1);<br>    }<br>    /* get information about the media file */<br>    avformat_find_stream_info(pFormatContext, NULL);<br>    /* print out some information */<br><br>    /* get packets from the video stream and decode them into frames */<br>    pPacket = av_packet_alloc();<br>    if (pPacket == NULL) {<br>        printf("%s\n", "unable to allocate memory for pPacket !! \n");<br>    }<br>    int cpt = 0;<br>    while (av_read_frame(pFormatContext, pPacket) >= 0) {<br>        ++cpt;<br>        printf("packet_number=%d \n", cpt);<br>        printf("packet_size=%d \n", pPacket->size);</div><div class="gmail_default" style="color:#073763">        // --- check whether the parser is freed or not yet. the parser is freed just after the last packet of the bit-stream is read.<br>        if (pFormatContext->streams[0]->parser != NULL) {<br>            printf("packet_type=%d \n", pFormatContext->streams[0]->parser->pict_type);<br>        } else {<br>            printf("packet_type=3 \n");<br>        }<br>        av_packet_unref(pPacket);<br>    }<br>    printf("the end of parsing ... \n");<br>    avformat_close_input(&pFormatContext);<br>    avformat_free_context(pFormatContext);<br>    av_packet_free(&pPacket);<br></div><div class="gmail_default" style="color:#073763"><br></div></div><div class="gmail_quote"><div><br></div><div><br></div><div><br></div><div><span class="gmail_default" style="color:rgb(7,55,99)"> </span>_______________________________________________</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br>
To unsubscribe, visit link above, or email<br>
<a href="mailto:libav-user-request@ffmpeg.org" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".</blockquote></div></div>