]> git.sesse.net Git - vlc/blobdiff - modules/video_filter/filter_picture.h
Use var_InheritString for --decklink-video-connection.
[vlc] / modules / video_filter / filter_picture.h
index 98069034aa85c72dedf8a24762c3c6647b47480a..c5b4473aa2f38344e583176fe9783d5f21237b24 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
+/* FIXME: do all of these really have square pixels? */
+#define CASE_PLANAR_YUV_SQUARE              \
+        case VLC_CODEC_I420:   \
+        case VLC_CODEC_J420:   \
+        case VLC_CODEC_YV12:   \
+        case VLC_CODEC_I411:   \
+        case VLC_CODEC_I410:   \
+        case VLC_CODEC_I444:   \
+        case VLC_CODEC_J444:   \
+        case VLC_CODEC_YUVA:
+
+#define CASE_PLANAR_YUV_NONSQUARE           \
+        case VLC_CODEC_I422:   \
+        case VLC_CODEC_J422:
+
 #define CASE_PLANAR_YUV                     \
-        case VLC_FOURCC('I','4','2','0'):   \
-        case VLC_FOURCC('I','Y','U','V'):   \
-        case VLC_FOURCC('J','4','2','0'):   \
-        case VLC_FOURCC('Y','V','1','2'):   \
-        case VLC_FOURCC('I','4','1','1'):   \
-        case VLC_FOURCC('I','4','1','0'):   \
-        case VLC_FOURCC('Y','V','U','9'):   \
-        case VLC_FOURCC('I','4','2','2'):   \
-        case VLC_FOURCC('J','4','2','2'):   \
-        case VLC_FOURCC('I','4','4','4'):   \
-        case VLC_FOURCC('J','4','4','4'):   \
-        case VLC_FOURCC('Y','U','V','A'):
+        CASE_PLANAR_YUV_SQUARE              \
+        CASE_PLANAR_YUV_NONSQUARE           \
 
 #define CASE_PACKED_YUV_422                 \
-        case VLC_FOURCC('U','Y','V','Y'):   \
-        case VLC_FOURCC('U','Y','N','V'):   \
-        case VLC_FOURCC('Y','4','2','2'):   \
-        case VLC_FOURCC('c','y','u','v'):   \
-        case VLC_FOURCC('Y','U','Y','2'):   \
-        case VLC_FOURCC('Y','U','N','V'):   \
-        case VLC_FOURCC('Y','V','Y','U'):
+        case VLC_CODEC_UYVY:   \
+        case VLC_CODEC_CYUV:   \
+        case VLC_CODEC_YUYV:   \
+        case VLC_CODEC_YVYU:
 
 static inline int GetPackedYuvOffsets( vlc_fourcc_t i_chroma,
     int *i_y_offset, int *i_u_offset, int *i_v_offset )
 {
     switch( i_chroma )
     {
-        case VLC_FOURCC('U','Y','V','Y'):
-        case VLC_FOURCC('U','Y','N','V'):
-        case VLC_FOURCC('Y','4','2','2'):
-        case VLC_FOURCC('c','y','u','v'): /* <-- FIXME: reverted, whatever that means */
+        case VLC_CODEC_UYVY:
+        case VLC_CODEC_CYUV: /* <-- FIXME: reverted, whatever that means */
             /* UYVY */
             *i_y_offset = 1;
             *i_u_offset = 0;
             *i_v_offset = 2;
             return VLC_SUCCESS;
-        case VLC_FOURCC('Y','U','Y','2'):
-        case VLC_FOURCC('Y','U','N','V'):
+        case VLC_CODEC_YUYV:
             /* YUYV */
             *i_y_offset = 0;
             *i_u_offset = 1;
             *i_v_offset = 3;
             return VLC_SUCCESS;
-        case VLC_FOURCC('Y','V','Y','U'):
+        case VLC_CODEC_YVYU:
             /* YVYU */
             *i_y_offset = 0;
             *i_u_offset = 3;
@@ -75,3 +74,15 @@ static inline int GetPackedYuvOffsets( vlc_fourcc_t i_chroma,
             return VLC_EGENERIC;
     }
 }
+
+/*****************************************************************************
+ *
+ *****************************************************************************/
+static inline picture_t *CopyInfoAndRelease( picture_t *p_outpic, picture_t *p_inpic )
+{
+    picture_CopyProperties( p_outpic, p_inpic );
+
+    picture_Release( p_inpic );
+
+    return p_outpic;
+}