diff options
author | James Almer <jamrial@gmail.com> | 2021-01-31 13:30:40 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2021-03-17 15:19:37 -0300 |
commit | 07b788c8af48584282f8648765467e0dee7b22c4 (patch) | |
tree | f9d56089910b5833da0ad32867b40f400540e41d | |
parent | 7643a354741e54444a9abb08ee2727ec510bcc3f (diff) | |
download | ffmpeg-07b788c8af48584282f8648765467e0dee7b22c4.tar.gz |
doc/examples/demuxing_decoding: use av_packet_alloc() to allocate packets
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r-- | doc/examples/demuxing_decoding.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/doc/examples/demuxing_decoding.c b/doc/examples/demuxing_decoding.c index 803e35d25c..db5e0cb951 100644 --- a/doc/examples/demuxing_decoding.c +++ b/doc/examples/demuxing_decoding.c @@ -51,7 +51,7 @@ static int video_dst_bufsize; static int video_stream_idx = -1, audio_stream_idx = -1; static AVFrame *frame = NULL; -static AVPacket pkt; +static AVPacket *pkt = NULL; static int video_frame_count = 0; static int audio_frame_count = 0; @@ -303,10 +303,12 @@ int main (int argc, char **argv) goto end; } - /* initialize packet, set data to NULL, let the demuxer fill it */ - av_init_packet(&pkt); - pkt.data = NULL; - pkt.size = 0; + pkt = av_packet_alloc(); + if (!pkt) { + fprintf(stderr, "Could not allocate packet\n"); + ret = AVERROR(ENOMEM); + goto end; + } if (video_stream) printf("Demuxing video from file '%s' into '%s'\n", src_filename, video_dst_filename); @@ -314,14 +316,14 @@ int main (int argc, char **argv) printf("Demuxing audio from file '%s' into '%s'\n", src_filename, audio_dst_filename); /* read frames from the file */ - while (av_read_frame(fmt_ctx, &pkt) >= 0) { + while (av_read_frame(fmt_ctx, pkt) >= 0) { // check if the packet belongs to a stream we are interested in, otherwise // skip it - if (pkt.stream_index == video_stream_idx) - ret = decode_packet(video_dec_ctx, &pkt); - else if (pkt.stream_index == audio_stream_idx) - ret = decode_packet(audio_dec_ctx, &pkt); - av_packet_unref(&pkt); + if (pkt->stream_index == video_stream_idx) + ret = decode_packet(video_dec_ctx, pkt); + else if (pkt->stream_index == audio_stream_idx) + ret = decode_packet(audio_dec_ctx, pkt); + av_packet_unref(pkt); if (ret < 0) break; } @@ -372,6 +374,7 @@ end: fclose(video_dst_file); if (audio_dst_file) fclose(audio_dst_file); + av_packet_free(&pkt); av_frame_free(&frame); av_free(video_dst_data[0]); |