summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2012-08-21 18:13:14 +0200
committerStefano Sabatini <stefasab@gmail.com>2012-08-24 17:31:10 +0200
commit864e8adcf1310f5d0eed2a2b8018b901cadaece0 (patch)
tree2654653705448b582aa51f94f6944490d6da67bf /doc
parent5ac603df83e9f25d5ad5153b101e065783dfdb96 (diff)
examples/muxing: update to the new avcodec_encode_video2() API
Diffstat (limited to 'doc')
-rw-r--r--doc/examples/muxing.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/doc/examples/muxing.c b/doc/examples/muxing.c
index e7ab145077..481adf2bf7 100644
--- a/doc/examples/muxing.c
+++ b/doc/examples/muxing.c
@@ -313,7 +313,7 @@ static void fill_yuv_image(AVFrame *pict, int frame_index,
static void write_video_frame(AVFormatContext *oc, AVStream *st)
{
- int out_size, ret;
+ int ret;
AVCodecContext *c;
static struct SwsContext *img_convert_ctx;
@@ -362,13 +362,21 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
ret = av_interleaved_write_frame(oc, &pkt);
} else {
/* encode the image */
- out_size = avcodec_encode_video(c, video_outbuf,
- video_outbuf_size, picture);
- /* If size is zero, it means the image was buffered. */
- if (out_size > 0) {
- AVPacket pkt;
- av_init_packet(&pkt);
+ AVPacket pkt;
+ int got_output;
+
+ av_init_packet(&pkt);
+ pkt.data = NULL; // packet data will be allocated by the encoder
+ pkt.size = 0;
+ ret = avcodec_encode_video2(c, &pkt, picture, &got_output);
+ if (ret < 0) {
+ fprintf(stderr, "error encoding frame\n");
+ exit(1);
+ }
+
+ /* If size is zero, it means the image was buffered. */
+ if (got_output) {
if (c->coded_frame->pts != AV_NOPTS_VALUE)
pkt.pts = av_rescale_q(c->coded_frame->pts,
c->time_base, st->time_base);
@@ -376,8 +384,6 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
- pkt.data = video_outbuf;
- pkt.size = out_size;
/* Write the compressed frame to the media file. */
ret = av_interleaved_write_frame(oc, &pkt);