doc/examples/extract_mvs: make pkt local to the main function
This commit is contained in:
parent
82116bd8a4
commit
1cf93196fc
@ -31,13 +31,11 @@ static const char *src_filename = NULL;
|
|||||||
|
|
||||||
static int video_stream_idx = -1;
|
static int video_stream_idx = -1;
|
||||||
static AVFrame *frame = NULL;
|
static AVFrame *frame = NULL;
|
||||||
static AVPacket pkt;
|
|
||||||
static int video_frame_count = 0;
|
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) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "Error while sending a packet to the decoder: %s\n", av_err2str(ret));
|
fprintf(stderr, "Error while sending a packet to the decoder: %s\n", av_err2str(ret));
|
||||||
return ret;
|
return ret;
|
||||||
@ -71,7 +69,6 @@ static int decode_packet(void)
|
|||||||
av_frame_unref(frame);
|
av_frame_unref(frame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -124,6 +121,7 @@ static int open_codec_context(AVFormatContext *fmt_ctx, enum AVMediaType type)
|
|||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
AVPacket pkt = { 0 };
|
||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
fprintf(stderr, "Usage: %s <video>\n", argv[0]);
|
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");
|
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 */
|
/* read frames from the file */
|
||||||
while (av_read_frame(fmt_ctx, &pkt) >= 0) {
|
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);
|
av_packet_unref(&pkt);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* flush cached frames */
|
/* flush cached frames */
|
||||||
pkt.data = NULL;
|
decode_packet(NULL);
|
||||||
pkt.size = 0;
|
|
||||||
decode_packet();
|
|
||||||
|
|
||||||
end:
|
end:
|
||||||
avcodec_free_context(&video_dec_ctx);
|
avcodec_free_context(&video_dec_ctx);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user