summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAlfred E. Heggestad <alfred.heggestad@gmail.com>2016-12-26 16:03:39 +0100
committerAlfred E. Heggestad <alfred.heggestad@gmail.com>2016-12-26 16:03:39 +0100
commit59d91978a8088273aac8a21ebdc3817680925c5e (patch)
treeb1a414c9196d77117a8164be1e55f1b3664694fc /modules
parent3223b553cd5a6191c33509ca06aea07232724dbb (diff)
avformat: check pixel format after decoding
Diffstat (limited to 'modules')
-rw-r--r--modules/avformat/avformat.c16
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];