/* Generated by ./xlat/gen.sh from ./xlat/v4l2_buf_flags.in; do not edit. */

#ifdef IN_MPERS

# error static const struct xlat v4l2_buf_flags in mpers mode

#else

static
const struct xlat v4l2_buf_flags[] = {
#if defined(V4L2_BUF_FLAG_MAPPED) || (defined(HAVE_DECL_V4L2_BUF_FLAG_MAPPED) && HAVE_DECL_V4L2_BUF_FLAG_MAPPED)
  XLAT(V4L2_BUF_FLAG_MAPPED),
#endif
#if defined(V4L2_BUF_FLAG_QUEUED) || (defined(HAVE_DECL_V4L2_BUF_FLAG_QUEUED) && HAVE_DECL_V4L2_BUF_FLAG_QUEUED)
  XLAT(V4L2_BUF_FLAG_QUEUED),
#endif
#if defined(V4L2_BUF_FLAG_DONE) || (defined(HAVE_DECL_V4L2_BUF_FLAG_DONE) && HAVE_DECL_V4L2_BUF_FLAG_DONE)
  XLAT(V4L2_BUF_FLAG_DONE),
#endif
#if defined(V4L2_BUF_FLAG_KEYFRAME) || (defined(HAVE_DECL_V4L2_BUF_FLAG_KEYFRAME) && HAVE_DECL_V4L2_BUF_FLAG_KEYFRAME)
  XLAT(V4L2_BUF_FLAG_KEYFRAME),
#endif
#if defined(V4L2_BUF_FLAG_PFRAME) || (defined(HAVE_DECL_V4L2_BUF_FLAG_PFRAME) && HAVE_DECL_V4L2_BUF_FLAG_PFRAME)
  XLAT(V4L2_BUF_FLAG_PFRAME),
#endif
#if defined(V4L2_BUF_FLAG_BFRAME) || (defined(HAVE_DECL_V4L2_BUF_FLAG_BFRAME) && HAVE_DECL_V4L2_BUF_FLAG_BFRAME)
  XLAT(V4L2_BUF_FLAG_BFRAME),
#endif
#if defined(V4L2_BUF_FLAG_TIMECODE) || (defined(HAVE_DECL_V4L2_BUF_FLAG_TIMECODE) && HAVE_DECL_V4L2_BUF_FLAG_TIMECODE)
  XLAT(V4L2_BUF_FLAG_TIMECODE),
#endif
#if defined(V4L2_BUF_FLAG_INPUT) || (defined(HAVE_DECL_V4L2_BUF_FLAG_INPUT) && HAVE_DECL_V4L2_BUF_FLAG_INPUT)
  XLAT(V4L2_BUF_FLAG_INPUT),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
