mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-27 11:32:51 +00:00
v4l2src: set top field first for interlaced buffers if v4l2 exports it
https://bugzilla.gnome.org/show_bug.cgi?id=634393
This commit is contained in:
parent
351ac54822
commit
ab69275f4d
1 changed files with 8 additions and 0 deletions
|
@ -30,6 +30,8 @@
|
|||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "gst/video/video.h"
|
||||
|
||||
#include <gstv4l2bufferpool.h>
|
||||
#include "gstv4l2src.h"
|
||||
#include "gstv4l2sink.h"
|
||||
|
@ -545,6 +547,12 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool)
|
|||
|
||||
GST_V4L2_BUFFER_POOL_UNLOCK (pool);
|
||||
|
||||
/* set top/bottom field first if v4l2_buffer has the information */
|
||||
if (buffer.field == V4L2_FIELD_INTERLACED_TB)
|
||||
GST_BUFFER_FLAG_SET (pool_buffer, GST_VIDEO_BUFFER_TFF);
|
||||
if (buffer.field == V4L2_FIELD_INTERLACED_BT)
|
||||
GST_BUFFER_FLAG_UNSET (pool_buffer, GST_VIDEO_BUFFER_TFF);
|
||||
|
||||
/* this can change at every frame, esp. with jpeg */
|
||||
GST_BUFFER_SIZE (pool_buffer) = buffer.bytesused;
|
||||
|
||||
|
|
Loading…
Reference in a new issue