aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-06-14 20:34:16 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-06-18 22:09:01 +0200
commit8a24ccfee3841d5b2069371b78921e7e6c8289dc (patch)
tree999cf5c3a2cc4546cb112d5e7772970b666f3404 /doc
parent3ba55ea4aec2ce6c179017e12a933e20a20a14d1 (diff)
downloadffmpeg-8a24ccfee3841d5b2069371b78921e7e6c8289dc.tar.gz
examples/demuxing_decoding: use properties from frame instead of video_dec_ctx
This is more robust. And only check if there is actually a frame returned. Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> (cherry picked from commit dd6c8575dbc8d3ff5dc2ffacb5028c253066ff78) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'doc')
-rw-r--r--doc/examples/demuxing_decoding.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/doc/examples/demuxing_decoding.c b/doc/examples/demuxing_decoding.c
index feeeb967f8..98b3a83097 100644
--- a/doc/examples/demuxing_decoding.c
+++ b/doc/examples/demuxing_decoding.c
@@ -81,22 +81,24 @@ static int decode_packet(int *got_frame, int cached)
fprintf(stderr, "Error decoding video frame (%s)\n", av_err2str(ret));
return ret;
}
- if (video_dec_ctx->width != width || video_dec_ctx->height != height ||
- video_dec_ctx->pix_fmt != pix_fmt) {
- /* To handle this change, one could call av_image_alloc again and
- * decode the following frames into another rawvideo file. */
- fprintf(stderr, "Error: Width, height and pixel format have to be "
- "constant in a rawvideo file, but the width, height or "
- "pixel format of the input video changed:\n"
- "old: width = %d, height = %d, format = %s\n"
- "new: width = %d, height = %d, format = %s\n",
- width, height, av_get_pix_fmt_name(pix_fmt),
- video_dec_ctx->width, video_dec_ctx->height,
- av_get_pix_fmt_name(video_dec_ctx->pix_fmt));
- return -1;
- }
if (*got_frame) {
+
+ if (frame->width != width || frame->height != height ||
+ frame->format != pix_fmt) {
+ /* To handle this change, one could call av_image_alloc again and
+ * decode the following frames into another rawvideo file. */
+ fprintf(stderr, "Error: Width, height and pixel format have to be "
+ "constant in a rawvideo file, but the width, height or "
+ "pixel format of the input video changed:\n"
+ "old: width = %d, height = %d, format = %s\n"
+ "new: width = %d, height = %d, format = %s\n",
+ width, height, av_get_pix_fmt_name(pix_fmt),
+ frame->width, frame->height,
+ av_get_pix_fmt_name(frame->format));
+ return -1;
+ }
+
printf("video_frame%s n:%d coded_n:%d pts:%s\n",
cached ? "(cached)" : "",
video_frame_count++, frame->coded_picture_number,