<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>