@ -72,58 +72,81 @@ struct buff_data {
struct fmt_map {
enum PixelFormat ff_fmt ;
enum CodecID codec_id ;
uint32_t v4l2_fmt ;
} ;
static struct fmt_map fmt_conversion_table [ ] = {
{
. ff_fmt = PIX_FMT_YUV420P ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_YUV420 ,
} ,
{
. ff_fmt = PIX_FMT_YUV422P ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_YUV422P ,
} ,
{
. ff_fmt = PIX_FMT_YUYV422 ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_YUYV ,
} ,
{
. ff_fmt = PIX_FMT_UYVY422 ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_UYVY ,
} ,
{
. ff_fmt = PIX_FMT_YUV411P ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_YUV411P ,
} ,
{
. ff_fmt = PIX_FMT_YUV410P ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_YUV410 ,
} ,
{
. ff_fmt = PIX_FMT_RGB555 ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_RGB555 ,
} ,
{
. ff_fmt = PIX_FMT_RGB565 ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_RGB565 ,
} ,
{
. ff_fmt = PIX_FMT_BGR24 ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_BGR24 ,
} ,
{
. ff_fmt = PIX_FMT_RGB24 ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_RGB24 ,
} ,
{
. ff_fmt = PIX_FMT_BGRA ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_BGR32 ,
} ,
{
. ff_fmt = PIX_FMT_GRAY8 ,
. codec_id = CODEC_ID_RAWVIDEO ,
. v4l2_fmt = V4L2_PIX_FMT_GREY ,
} ,
{
. ff_fmt = PIX_FMT_NONE ,
. codec_id = CODEC_ID_MJPEG ,
. v4l2_fmt = V4L2_PIX_FMT_MJPEG ,
} ,
{
. ff_fmt = PIX_FMT_NONE ,
. codec_id = CODEC_ID_MJPEG ,
. v4l2_fmt = V4L2_PIX_FMT_JPEG ,
} ,
} ;
static int device_open ( AVFormatContext * ctx , uint32_t * capabilities )