diff options
author | Alfred E. Heggestad <alfred.heggestad@gmail.com> | 2016-12-26 16:03:39 +0100 |
---|---|---|
committer | Alfred E. Heggestad <alfred.heggestad@gmail.com> | 2016-12-26 16:03:39 +0100 |
commit | 59d91978a8088273aac8a21ebdc3817680925c5e (patch) | |
tree | b1a414c9196d77117a8164be1e55f1b3664694fc /modules | |
parent | 3223b553cd5a6191c33509ca06aea07232724dbb (diff) |
avformat: check pixel format after decoding
Diffstat (limited to 'modules')
-rw-r--r-- | modules/avformat/avformat.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/modules/avformat/avformat.c b/modules/avformat/avformat.c index b537868..12c6b2d 100644 --- a/modules/avformat/avformat.c +++ b/modules/avformat/avformat.c @@ -15,6 +15,7 @@ #include <libavformat/avformat.h> #include <libavdevice/avdevice.h> #include <libavcodec/avcodec.h> +#include <libavutil/pixdesc.h> /** @@ -143,8 +144,21 @@ static void handle_packet(struct vidsrc_st *st, AVPacket *pkt) return; } + switch (frame->format) { + + case AV_PIX_FMT_YUV420P: + vf.fmt = VID_FMT_YUV420P; + break; + + default: + warning("avformat: decode: bad pixel format" + " (%i) (%s)\n", + frame->format, + av_get_pix_fmt_name(frame->format)); + goto out; + } + vf.size = sz; - vf.fmt = VID_FMT_YUV420P; for (i=0; i<4; i++) { vf.data[i] = frame->data[i]; vf.linesize[i] = frame->linesize[i]; |