diff options
author | Clément Bœsch <cboesch@gopro.com> | 2017-04-04 11:48:23 +0200 |
---|---|---|
committer | Clément Bœsch <cboesch@gopro.com> | 2017-04-04 11:48:23 +0200 |
commit | 6db36a0227656057b43ab562dcabc2aa3fb8686f (patch) | |
tree | e12d2ab2860a751876dba305ae02791f50416f1a /doc/examples | |
parent | 4ea942f2ceaafbfed43933895bd0e8aad043ca44 (diff) | |
parent | 59ab9e8ba1df7e3347a4cd2bd56c32e74aede802 (diff) | |
download | ffmpeg-6db36a0227656057b43ab562dcabc2aa3fb8686f.tar.gz |
Merge commit '59ab9e8ba1df7e3347a4cd2bd56c32e74aede802'
* commit '59ab9e8ba1df7e3347a4cd2bd56c32e74aede802':
examples/encode_video: allocate the packet dynamically
Merged-by: Clément Bœsch <cboesch@gopro.com>
Diffstat (limited to 'doc/examples')
-rw-r--r-- | doc/examples/encode_video.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/doc/examples/encode_video.c b/doc/examples/encode_video.c index f29e9fbca3..d2075c12bf 100644 --- a/doc/examples/encode_video.c +++ b/doc/examples/encode_video.c @@ -71,7 +71,7 @@ int main(int argc, char **argv) int i, ret, x, y; FILE *f; AVFrame *frame; - AVPacket pkt; + AVPacket *pkt; uint8_t endcode[] = { 0, 0, 1, 0xb7 }; if (argc <= 2) { @@ -96,6 +96,10 @@ int main(int argc, char **argv) exit(1); } + pkt = av_packet_alloc(); + if (!pkt) + exit(1); + /* put sample parameters */ c->bit_rate = 400000; /* resolution must be a multiple of two */ @@ -147,10 +151,6 @@ int main(int argc, char **argv) /* encode 1 second of video */ for (i = 0; i < 25; i++) { - av_init_packet(&pkt); - pkt.data = NULL; // packet data will be allocated by the encoder - pkt.size = 0; - fflush(stdout); /* make sure the frame data is writable */ @@ -177,11 +177,11 @@ int main(int argc, char **argv) frame->pts = i; /* encode the image */ - encode(c, frame, &pkt, f); + encode(c, frame, pkt, f); } /* flush the encoder */ - encode(c, NULL, &pkt, f); + encode(c, NULL, pkt, f); /* add sequence end code to have a real MPEG file */ fwrite(endcode, 1, sizeof(endcode), f); @@ -189,6 +189,7 @@ int main(int argc, char **argv) avcodec_free_context(&c); av_frame_free(&frame); + av_packet_free(&pkt); return 0; } |