Commit 1cf93196 authored by Matthieu Bouron's avatar Matthieu Bouron

doc/examples/extract_mvs: make pkt local to the main function

parent 82116bd8
......@@ -31,13 +31,11 @@ static const char *src_filename = NULL;
static int video_stream_idx = -1;
static AVFrame *frame = NULL;
static AVPacket pkt;
static int video_frame_count = 0;
static int decode_packet(void)
static int decode_packet(const AVPacket *pkt)
{
if (pkt.stream_index == video_stream_idx) {
int ret = avcodec_send_packet(video_dec_ctx, &pkt);
int ret = avcodec_send_packet(video_dec_ctx, pkt);
if (ret < 0) {
fprintf(stderr, "Error while sending a packet to the decoder: %s\n", av_err2str(ret));
return ret;
......@@ -71,7 +69,6 @@ static int decode_packet(void)
av_frame_unref(frame);
}
}
}
return 0;
}
......@@ -124,6 +121,7 @@ static int open_codec_context(AVFormatContext *fmt_ctx, enum AVMediaType type)
int main(int argc, char **argv)
{
int ret = 0;
AVPacket pkt = { 0 };
if (argc != 2) {
fprintf(stderr, "Usage: %s <video>\n", argv[0]);
......@@ -162,21 +160,17 @@ int main(int argc, char **argv)
printf("framenum,source,blockw,blockh,srcx,srcy,dstx,dsty,flags\n");
/* initialize packet, set data to NULL, let the demuxer fill it */
av_init_packet(&pkt);
/* read frames from the file */
while (av_read_frame(fmt_ctx, &pkt) >= 0) {
ret = decode_packet();
if (pkt.stream_index == video_stream_idx)
ret = decode_packet(&pkt);
av_packet_unref(&pkt);
if (ret < 0)
break;
}
/* flush cached frames */
pkt.data = NULL;
pkt.size = 0;
decode_packet();
decode_packet(NULL);
end:
avcodec_free_context(&video_dec_ctx);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment