Changeset 218efb93081e39e66b44a78d728847e1a3679db1
- Timestamp:
- 06/02/08 18:44:03 (3 months ago)
- git-parent:
- Files:
-
- include/vlc_filter.h (modified) (2 diffs)
- modules/video_chroma/chain.c (modified) (1 diff)
- modules/video_chroma/grey_yuv.c (modified) (4 diffs)
- modules/video_chroma/i420_rgb.c (modified) (11 diffs)
- modules/video_chroma/i420_rgb.h (modified) (2 diffs)
- modules/video_chroma/i420_ymga.c (modified) (4 diffs)
- modules/video_chroma/i420_yuy2.c (modified) (6 diffs)
- modules/video_chroma/i422_i420.c (modified) (4 diffs)
- modules/video_chroma/i422_yuy2.c (modified) (5 diffs)
- modules/video_chroma/yuy2_i420.c (modified) (5 diffs)
- modules/video_chroma/yuy2_i422.c (modified) (5 diffs)
- src/video_output/video_output.c (modified) (3 diffs)
- src/video_output/vout_pictures.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
include/vlc_filter.h
r2e2178f r218efb9 61 61 62 62 picture_t * ( * pf_video_filter ) ( filter_t *, picture_t * ); 63 void ( * pf_video_filter_io ) ( filter_t *, picture_t *, picture_t * ); /* Used by video filters with a preallocated output buffer (ie chroma conversion modules) */64 63 block_t * ( * pf_audio_filter ) ( filter_t *, block_t * ); 65 64 void ( * pf_video_blend ) ( filter_t *, picture_t *, … … 94 93 }; 95 94 95 96 /** 97 * Create a picture_t *(*)( filter_t *, picture_t * ) compatible wrapper 98 * using a void (*)( filter_t *, picture_t *, picture_t * ) function 99 * 100 * Currently used by the chroma video filters 101 */ 102 #define VIDEO_FILTER_WRAPPER( name ) \ 103 static picture_t *name ## _Filter ( filter_t *p_filter, \ 104 picture_t *p_pic ) \ 105 { \ 106 picture_t *p_outpic = p_filter->pf_vout_buffer_new( p_filter ); \ 107 if( !p_outpic ) \ 108 { \ 109 msg_Warn( p_filter, "can't get output picture" ); \ 110 if( p_pic->pf_release ) \ 111 p_pic->pf_release( p_pic ); \ 112 return NULL; \ 113 } \ 114 \ 115 name( p_filter, p_pic, p_outpic ); \ 116 \ 117 p_outpic->date = p_pic->date; \ 118 p_outpic->b_force = p_pic->b_force; \ 119 p_outpic->i_nb_fields = p_pic->i_nb_fields; \ 120 p_outpic->b_progressive = p_pic->b_progressive; \ 121 p_outpic->b_top_field_first = p_pic->b_top_field_first; \ 122 \ 123 if( p_pic->pf_release ) \ 124 p_pic->pf_release( p_pic ); \ 125 return p_outpic; \ 126 } 127 96 128 #endif /* _VLC_FILTER_H */ modules/video_chroma/chain.c
r2e2178f r218efb9 47 47 vlc_module_begin(); 48 48 set_description( N_("Chroma conversions using a chain of chroma conversion modules") ); 49 set_capability( " chroma", 1 );49 set_capability( "video filter2", 1 ); 50 50 set_callbacks( Activate, Destroy ); 51 51 vlc_module_end(); modules/video_chroma/grey_yuv.c
r2e2178f r218efb9 46 46 static void GREY_YUY2( filter_t *, picture_t *, picture_t * ); 47 47 48 static picture_t *GREY_I420_Filter( filter_t *, picture_t * ); 49 static picture_t *GREY_YUY2_Filter( filter_t *, picture_t * ); 50 48 51 /***************************************************************************** 49 52 * Module descriptor. … … 51 54 vlc_module_begin(); 52 55 set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 53 set_capability( " chroma", 80 );56 set_capability( "video filter2", 80 ); 54 57 set_callbacks( Activate, NULL ); 55 58 vlc_module_end(); … … 78 81 { 79 82 case VLC_FOURCC('I','4','2','0'): 80 p_filter->pf_video_filter _io = GREY_I420;83 p_filter->pf_video_filter = GREY_I420_Filter; 81 84 break; 82 85 case VLC_FOURCC('Y','U','Y','2'): 83 p_filter->pf_video_filter _io = GREY_YUY2;86 p_filter->pf_video_filter = GREY_YUY2_Filter; 84 87 break; 85 88 default: … … 94 97 return 0; 95 98 } 99 100 VIDEO_FILTER_WRAPPER( GREY_I420 ) 101 VIDEO_FILTER_WRAPPER( GREY_YUY2 ) 96 102 97 103 /* Following functions are local */ modules/video_chroma/i420_rgb.c
r2e2178f r218efb9 72 72 set_description( N_("I420,IYUV,YV12 to " 73 73 "RGB2,RV15,RV16,RV24,RV32 conversions") ); 74 set_capability( " chroma", 80 );74 set_capability( "video filter2", 80 ); 75 75 #elif defined (MODULE_NAME_IS_i420_rgb_mmx) 76 76 set_description( N_( "MMX I420,IYUV,YV12 to " 77 77 "RV15,RV16,RV24,RV32 conversions") ); 78 set_capability( " chroma", 100 );78 set_capability( "video filter2", 100 ); 79 79 add_requirement( MMX ); 80 80 #elif defined (MODULE_NAME_IS_i420_rgb_sse2) 81 81 set_description( N_( "SSE2 I420,IYUV,YV12 to " 82 82 "RV15,RV16,RV24,RV32 conversions") ); 83 set_capability( " chroma", 120 );83 set_capability( "video filter2", 120 ); 84 84 add_requirement( SSE2 ); 85 85 #endif … … 114 114 #if defined (MODULE_NAME_IS_i420_rgb) 115 115 case VLC_FOURCC('R','G','B','2'): 116 p_filter->pf_video_filter _io = I420_RGB8;116 p_filter->pf_video_filter = I420_RGB8_Filter; 117 117 break; 118 118 #endif … … 127 127 /* R5G5B6 pixel format */ 128 128 msg_Dbg(p_this, "RGB pixel format is R5G5B5"); 129 p_filter->pf_video_filter _io = I420_R5G5B5;129 p_filter->pf_video_filter = I420_R5G5B5_Filter; 130 130 } 131 131 else if( ( p_filter->fmt_out.video.i_rmask == 0xf800 … … 135 135 /* R5G6B5 pixel format */ 136 136 msg_Dbg(p_this, "RGB pixel format is R5G6B5"); 137 p_filter->pf_video_filter _io = I420_R5G6B5;137 p_filter->pf_video_filter = I420_R5G6B5_Filter; 138 138 } 139 139 else … … 141 141 #else 142 142 // generic C chroma converter */ 143 p_filter->pf_video_filter _io = I420_RGB16;143 p_filter->pf_video_filter = I420_RGB16_Filter; 144 144 #endif 145 145 break; … … 159 159 /* A8R8G8B8 pixel format */ 160 160 msg_Dbg(p_this, "RGB pixel format is A8R8G8B8"); 161 p_filter->pf_video_filter _io = I420_A8R8G8B8;161 p_filter->pf_video_filter = I420_A8R8G8B8_Filter; 162 162 } 163 163 else if( p_filter->fmt_out.video.i_rmask == 0xff000000 … … 167 167 /* R8G8B8A8 pixel format */ 168 168 msg_Dbg(p_this, "RGB pixel format is R8G8B8A8"); 169 p_filter->pf_video_filter _io = I420_R8G8B8A8;169 p_filter->pf_video_filter = I420_R8G8B8A8_Filter; 170 170 } 171 171 else if( p_filter->fmt_out.video.i_rmask == 0x0000ff00 … … 175 175 /* B8G8R8A8 pixel format */ 176 176 msg_Dbg(p_this, "RGB pixel format is B8G8R8A8"); 177 p_filter->pf_video_filter _io = I420_B8G8R8A8;177 p_filter->pf_video_filter = I420_B8G8R8A8_Filter; 178 178 } 179 179 else if( p_filter->fmt_out.video.i_rmask == 0x000000ff … … 183 183 /* A8B8G8R8 pixel format */ 184 184 msg_Dbg(p_this, "RGB pixel format is A8B8G8R8"); 185 p_filter->pf_video_filter _io = I420_A8B8G8R8;185 p_filter->pf_video_filter = I420_A8B8G8R8_Filter; 186 186 } 187 187 else … … 189 189 #else 190 190 /* generic C chroma converter */ 191 p_filter->pf_video_filter _io = I420_RGB32;191 p_filter->pf_video_filter = I420_RGB32_Filter; 192 192 #endif 193 193 break; … … 294 294 free( p_filter->p_sys ); 295 295 } 296 297 #if defined (MODULE_NAME_IS_i420_rgb) 298 VIDEO_FILTER_WRAPPER( I420_RGB8 ) 299 VIDEO_FILTER_WRAPPER( I420_RGB16 ) 300 VIDEO_FILTER_WRAPPER( I420_RGB32 ) 301 #else 302 VIDEO_FILTER_WRAPPER( I420_R5G5B5 ) 303 VIDEO_FILTER_WRAPPER( I420_R5G6B5 ) 304 VIDEO_FILTER_WRAPPER( I420_A8R8G8B8 ) 305 VIDEO_FILTER_WRAPPER( I420_R8G8B8A8 ) 306 VIDEO_FILTER_WRAPPER( I420_B8G8R8A8 ) 307 VIDEO_FILTER_WRAPPER( I420_A8B8G8R8 ) 308 #endif 296 309 297 310 #if defined (MODULE_NAME_IS_i420_rgb) modules/video_chroma/i420_rgb.h
r2e2178f r218efb9 61 61 void I420_RGB16 ( filter_t *, picture_t *, picture_t * ); 62 62 void I420_RGB32 ( filter_t *, picture_t *, picture_t * ); 63 static picture_t *I420_RGB8_Filter ( filter_t *, picture_t * ); 64 static picture_t *I420_RGB16_dither_Filter ( filter_t *, picture_t * ); 65 static picture_t *I420_RGB16_Filter ( filter_t *, picture_t * ); 66 static picture_t *I420_RGB32_Filter ( filter_t *, picture_t * ); 63 67 #else // if defined(MODULE_NAME_IS_i420_rgb_mmx) 64 68 void I420_R5G5B5 ( filter_t *, picture_t *, picture_t * ); … … 68 72 void I420_B8G8R8A8 ( filter_t *, picture_t *, picture_t * ); 69 73 void I420_A8B8G8R8 ( filter_t *, picture_t *, picture_t * ); 74 static picture_t *I420_R5G5B5_Filter ( filter_t *, picture_t * ); 75 static picture_t *I420_R5G6B5_Filter ( filter_t *, picture_t * ); 76 static picture_t *I420_A8R8G8B8_Filter ( filter_t *, picture_t * ); 77 static picture_t *I420_R8G8B8A8_Filter ( filter_t *, picture_t * ); 78 static picture_t *I420_B8G8R8A8_Filter ( filter_t *, picture_t * ); 79 static picture_t *I420_A8B8G8R8_Filter ( filter_t *, picture_t * ); 70 80 #endif 71 81 modules/video_chroma/i420_ymga.c
r2e2178f r218efb9 44 44 static int Activate ( vlc_object_t * ); 45 45 static void I420_YMGA ( filter_t *, picture_t *, picture_t * ); 46 static picture_t *I420_YMGA_Filter( filter_t *, picture_t * ); 46 47 47 48 /***************************************************************************** … … 51 52 #if defined (MODULE_NAME_IS_i420_ymga) 52 53 set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 53 set_capability( " chroma", 80 );54 set_capability( "video filter2", 80 ); 54 55 #elif defined (MODULE_NAME_IS_i420_ymga_mmx) 55 56 set_description( N_("MMX conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 56 set_capability( " chroma", 100 );57 set_capability( "video filter2", 100 ); 57 58 add_requirement( MMX ); 58 59 #endif … … 83 84 { 84 85 case VLC_FOURCC('Y','M','G','A'): 85 p_filter->pf_video_filter _io = I420_YMGA;86 p_filter->pf_video_filter = I420_YMGA_Filter; 86 87 break; 87 88 … … 99 100 100 101 /* Following functions are local */ 102 103 VIDEO_FILTER_WRAPPER( I420_YMGA ) 101 104 102 105 /***************************************************************************** modules/video_chroma/i420_yuy2.c
r2e2178f r218efb9 62 62 static void I420_YVYU ( filter_t *, picture_t *, picture_t * ); 63 63 static void I420_UYVY ( filter_t *, picture_t *, picture_t * ); 64 static picture_t *I420_YUY2_Filter ( filter_t *, picture_t * ); 65 static picture_t *I420_YVYU_Filter ( filter_t *, picture_t * ); 66 static picture_t *I420_UYVY_Filter ( filter_t *, picture_t * ); 64 67 #if !defined (MODULE_NAME_IS_i420_yuy2_altivec) 65 68 static void I420_IUYV ( filter_t *, picture_t *, picture_t * ); 66 69 static void I420_cyuv ( filter_t *, picture_t *, picture_t * ); 70 static picture_t *I420_IUYV_Filter ( filter_t *, picture_t * ); 71 static picture_t *I420_cyuv_Filter ( filter_t *, picture_t * ); 67 72 #endif 68 73 #if defined (MODULE_NAME_IS_i420_yuy2) 69 74 static void I420_Y211 ( filter_t *, picture_t *, picture_t * ); 75 static picture_t *I420_Y211_Filter ( filter_t *, picture_t * ); 70 76 #endif 71 77 … … 82 88 #if defined (MODULE_NAME_IS_i420_yuy2) 83 89 set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 84 set_capability( " chroma", 80 );90 set_capability( "video filter2", 80 ); 85 91 #elif defined (MODULE_NAME_IS_i420_yuy2_mmx) 86 92 set_description( N_("MMX conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 87 set_capability( " chroma", 100 );93 set_capability( "video filter2", 100 ); 88 94 add_requirement( MMX ); 89 95 #elif defined (MODULE_NAME_IS_i420_yuy2_sse2) 90 96 set_description( N_("SSE2 conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 91 set_capability( " chroma", 120 );97 set_capability( "video filter2", 120 ); 92 98 add_requirement( SSE2 ); 93 99 #elif defined (MODULE_NAME_IS_i420_yuy2_altivec) 94 100 set_description( 95 101 _("AltiVec conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 96 set_capability( " chroma", 100 );102 set_capability( "video filter2", 100 ); 97 103 add_requirement( ALTIVEC ); 98 104 #endif … … 124 130 case VLC_FOURCC('Y','U','Y','2'): 125 131 case VLC_FOURCC('Y','U','N','V'): 126 p_filter->pf_video_filter _io = I420_YUY2;132 p_filter->pf_video_filter = I420_YUY2_Filter; 127 133 break; 128 134 129 135 case VLC_FOURCC('Y','V','Y','U'): 130 p_filter->pf_video_filter _io = I420_YVYU;136 p_filter->pf_video_filter = I420_YVYU_Filter; 131 137 break; 132 138 … … 134 140 case VLC_FOURCC('U','Y','N','V'): 135 141 case VLC_FOURCC('Y','4','2','2'): 136 p_filter->pf_video_filter _io = I420_UYVY;142 p_filter->pf_video_filter = I420_UYVY_Filter; 137 143 break; 138 144 #if !defined (MODULE_NAME_IS_i420_yuy2_altivec) 139 145 case VLC_FOURCC('I','U','Y','V'): 140 p_filter->pf_video_filter _io = I420_IUYV;146 p_filter->pf_video_filter = I420_IUYV_Filter; 141 147 break; 142 148 143 149 case VLC_FOURCC('c','y','u','v'): 144 p_filter->pf_video_filter _io = I420_cyuv;150 p_filter->pf_video_filter = I420_cyuv_Filter; 145 151 break; 146 152 #endif … … 148 154 #if defined (MODULE_NAME_IS_i420_yuy2) 149 155 case VLC_FOURCC('Y','2','1','1'): 150 p_filter->pf_video_filter _io = I420_Y211;156 p_filter->pf_video_filter = I420_Y211_Filter; 151 157 break; 152 158 #endif … … 175 181 176 182 /* Following functions are local */ 183 184 VIDEO_FILTER_WRAPPER( I420_YUY2 ) 185 VIDEO_FILTER_WRAPPER( I420_YVYU ) 186 VIDEO_FILTER_WRAPPER( I420_UYVY ) 187 #if !defined (MODULE_NAME_IS_i420_yuy2_altivec) 188 VIDEO_FILTER_WRAPPER( I420_IUYV ) 189 #endif 190 #if defined (MODULE_NAME_IS_i420_yuy2) 191 VIDEO_FILTER_WRAPPER( I420_Y211 ) 192 #endif 193 177 194 /***************************************************************************** 178 195 * I420_YUY2: planar YUV 4:2:0 to packed YUYV 4:2:2 modules/video_chroma/i422_i420.c
r2e2178f r218efb9 47 47 static void I422_YV12( filter_t *, picture_t *, picture_t * ); 48 48 static void I422_YUVA( filter_t *, picture_t *, picture_t * ); 49 static picture_t *I422_I420_Filter( filter_t *, picture_t * ); 50 static picture_t *I422_YV12_Filter( filter_t *, picture_t * ); 51 static picture_t *I422_YUVA_Filter( filter_t *, picture_t * ); 49 52 50 53 /***************************************************************************** … … 53 56 vlc_module_begin(); 54 57 set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 55 set_capability( " chroma", 60 );58 set_capability( "video filter2", 60 ); 56 59 set_callbacks( Activate, NULL ); 57 60 vlc_module_end(); … … 81 84 case VLC_FOURCC('I','Y','U','V'): 82 85 case VLC_FOURCC('J','4','2','0'): 83 p_filter->pf_video_filter _io = I422_I420;86 p_filter->pf_video_filter = I422_I420_Filter; 84 87 break; 85 88 86 89 case VLC_FOURCC('Y','V','1','2'): 87 p_filter->pf_video_filter _io = I422_YV12;90 p_filter->pf_video_filter = I422_YV12_Filter; 88 91 break; 89 92 90 93 case VLC_FOURCC('Y','U','V','A'): 91 p_filter->pf_video_filter _io = I422_YUVA;94 p_filter->pf_video_filter = I422_YUVA_Filter; 92 95 break; 93 96 … … 104 107 105 108 /* Following functions are local */ 109 VIDEO_FILTER_WRAPPER( I422_I420 ) 110 VIDEO_FILTER_WRAPPER( I422_YV12 ) 111 VIDEO_FILTER_WRAPPER( I422_YUVA ) 106 112 107 113 /***************************************************************************** modules/video_chroma/i422_yuy2.c
r2e2178f r218efb9 50 50 static int Activate ( vlc_object_t * ); 51 51 52 static void I422_YUY2 ( filter_t *, picture_t *, picture_t * ); 53 static void I422_YVYU ( filter_t *, picture_t *, picture_t * ); 54 static void I422_UYVY ( filter_t *, picture_t *, picture_t * ); 55 static void I422_IUYV ( filter_t *, picture_t *, picture_t * ); 56 static void I422_cyuv ( filter_t *, picture_t *, picture_t * ); 57 #if defined (MODULE_NAME_IS_i422_yuy2) 58 static void I422_Y211 ( filter_t *, picture_t *, picture_t * ); 59 static void I422_Y211 ( filter_t *, picture_t *, picture_t * ); 52 static void I422_YUY2 ( filter_t *, picture_t *, picture_t * ); 53 static void I422_YVYU ( filter_t *, picture_t *, picture_t * ); 54 static void I422_UYVY ( filter_t *, picture_t *, picture_t * ); 55 static void I422_IUYV ( filter_t *, picture_t *, picture_t * ); 56 static void I422_cyuv ( filter_t *, picture_t *, picture_t * ); 57 static picture_t *I422_YUY2_Filter ( filter_t *, picture_t * ); 58 static picture_t *I422_YVYU_Filter ( filter_t *, picture_t * ); 59 static picture_t *I422_UYVY_Filter ( filter_t *, picture_t * ); 60 static picture_t *I422_IUYV_Filter ( filter_t *, picture_t * ); 61 static picture_t *I422_cyuv_Filter ( filter_t *, picture_t * ); 62 #if defined (MODULE_NAME_IS_i422_yuy2) 63 static void I422_Y211 ( filter_t *, picture_t *, picture_t * ); 64 static picture_t *I422_Y211_Filter ( filter_t *, picture_t * ); 60 65 #endif 61 66 … … 66 71 #if defined (MODULE_NAME_IS_i422_yuy2) 67 72 set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 68 set_capability( " chroma", 80 );73 set_capability( "video filter2", 80 ); 69 74 #elif defined (MODULE_NAME_IS_i422_yuy2_mmx) 70 75 set_description( N_("MMX conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 71 set_capability( " chroma", 100 );76 set_capability( "video filter2", 100 ); 72 77 add_requirement( MMX ); 73 78 #elif defined (MODULE_NAME_IS_i422_yuy2_sse2) 74 79 set_description( N_("SSE2 conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 75 set_capability( " chroma", 120 );80 set_capability( "video filter2", 120 ); 76 81 add_requirement( SSE2 ); 77 82 #endif … … 101 106 case VLC_FOURCC('Y','U','Y','2'): 102 107 case VLC_FOURCC('Y','U','N','V'): 103 p_filter->pf_video_filter _io = I422_YUY2;108 p_filter->pf_video_filter = I422_YUY2_Filter; 104 109 break; 105 110 106 111 case VLC_FOURCC('Y','V','Y','U'): 107 p_filter->pf_video_filter _io = I422_YVYU;112 p_filter->pf_video_filter = I422_YVYU_Filter; 108 113 break; 109 114 … … 111 116 case VLC_FOURCC('U','Y','N','V'): 112 117 case VLC_FOURCC('Y','4','2','2'): 113 p_filter->pf_video_filter _io = I422_UYVY;118 p_filter->pf_video_filter = I422_UYVY_Filter; 114 119 break; 115 120 116 121 case VLC_FOURCC('I','U','Y','V'): 117 p_filter->pf_video_filter _io = I422_IUYV;122 p_filter->pf_video_filter = I422_IUYV_Filter; 118 123 break; 119 124 120 125 case VLC_FOURCC('c','y','u','v'): 121 p_filter->pf_video_filter _io = I422_cyuv;126 p_filter->pf_video_filter = I422_cyuv_Filter; 122 127 break; 123 128 124 129 #if defined (MODULE_NAME_IS_i422_yuy2) 125 130 case VLC_FOURCC('Y','2','1','1'): 126 p_filter->pf_video_filter _io = I422_Y211;131 p_filter->pf_video_filter = I422_Y211_Filter; 127 132 break; 128 133 #endif … … 140 145 141 146 /* Following functions are local */ 147 148 VIDEO_FILTER_WRAPPER( I422_YUY2 ) 149 VIDEO_FILTER_WRAPPER( I422_YVYU ) 150 VIDEO_FILTER_WRAPPER( I422_UYVY ) 151 VIDEO_FILTER_WRAPPER( I422_IUYV ) 152 VIDEO_FILTER_WRAPPER( I422_cyuv ) 153 #if defined (MODULE_NAME_IS_i422_yuy2) 154 VIDEO_FILTER_WRAPPER( I422_Y211 ) 155 #endif 142 156 143 157 /***************************************************************************** modules/video_chroma/yuy2_i420.c
r2e2178f r218efb9 48 48 static void cyuv_I420 ( filter_t *, picture_t *, picture_t * ); 49 49 50 static picture_t *YUY2_I420_Filter ( filter_t *, picture_t * ); 51 static picture_t *YVYU_I420_Filter ( filter_t *, picture_t * ); 52 static picture_t *UYVY_I420_Filter ( filter_t *, picture_t * ); 53 static picture_t *cyuv_I420_Filter ( filter_t *, picture_t * ); 54 50 55 /***************************************************************************** 51 56 * Module descriptor … … 53 58 vlc_module_begin(); 54 59 set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 55 set_capability( " chroma", 80 );60 set_capability( "video filter2", 80 ); 56 61 set_callbacks( Activate, NULL ); 57 62 vlc_module_end(); … … 79 84 case VLC_FOURCC('Y','U','Y','2'): 80 85 case VLC_FOURCC('Y','U','N','V'): 81 p_filter->pf_video_filter _io = YUY2_I420;86 p_filter->pf_video_filter = YUY2_I420_Filter; 82 87 break; 83 88 84 89 case VLC_FOURCC('Y','V','Y','U'): 85 p_filter->pf_video_filter _io = YVYU_I420;90 p_filter->pf_video_filter = YVYU_I420_Filter; 86 91 break; 87 92 … … 89 94 case VLC_FOURCC('U','Y','N','V'): 90 95 case VLC_FOURCC('Y','4','2','2'): 91 p_filter->pf_video_filter _io = UYVY_I420;96 p_filter->pf_video_filter = UYVY_I420_Filter; 92 97 break; 93 98 94 99 case VLC_FOURCC('c','y','u','v'): 95 p_filter->pf_video_filter _io = cyuv_I420;100 p_filter->pf_video_filter = cyuv_I420_Filter; 96 101 break; 97 102 … … 108 113 109 114 /* Following functions are local */ 115 VIDEO_FILTER_WRAPPER( YUY2_I420 ) 116 VIDEO_FILTER_WRAPPER( YVYU_I420 ) 117 VIDEO_FILTER_WRAPPER( UYVY_I420 ) 118 VIDEO_FILTER_WRAPPER( cyuv_I420 ) 110 119 111 120 /***************************************************************************** modules/video_chroma/yuy2_i422.c
r2e2178f r218efb9 47 47 static void UYVY_I422 ( filter_t *, picture_t *, picture_t * ); 48 48 static void cyuv_I422 ( filter_t *, picture_t *, picture_t * ); 49 static picture_t *YUY2_I422_Filter ( filter_t *, picture_t * ); 50 static picture_t *YVYU_I422_Filter ( filter_t *, picture_t * ); 51 static picture_t *UYVY_I422_Filter ( filter_t *, picture_t * ); 52 static picture_t *cyuv_I422_Filter ( filter_t *, picture_t * ); 49 53 50 54 /***************************************************************************** … … 53 57 vlc_module_begin(); 54 58 set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) ); 55 set_capability( " chroma", 80 );59 set_capability( "video filter2", 80 ); 56 60 set_callbacks( Activate, NULL ); 57 61 vlc_module_end(); … … 79 83 case VLC_FOURCC('Y','U','Y','2'): 80 84 case VLC_FOURCC('Y','U','N','V'): 81 p_filter->pf_video_filter _io = YUY2_I422;85 p_filter->pf_video_filter = YUY2_I422_Filter; 82 86 break; 83 87 84 88 case VLC_FOURCC('Y','V','Y','U'): 85 p_filter->pf_video_filter _io = YVYU_I422;89 p_filter->pf_video_filter = YVYU_I422_Filter; 86 90 break; 87 91 … … 89 93 case VLC_FOURCC('U','Y','N','V'): 90 94 case VLC_FOURCC('Y','4','2','2'): 91 p_filter->pf_video_filter _io = UYVY_I422;95 p_filter->pf_video_filter = UYVY_I422_Filter; 92 96 break; 93 97 94 98 case VLC_FOURCC('c','y','u','v'): 95 p_filter->pf_video_filter _io = cyuv_I422;99 p_filter->pf_video_filter = cyuv_I422_Filter; 96 100 break; 97 101 … … 109 113 /* Following functions are local */ 110 114 115 VIDEO_FILTER_WRAPPER( YUY2_I422 ) 116 VIDEO_FILTER_WRAPPER( YVYU_I422 ) 117 VIDEO_FILTER_WRAPPER( UYVY_I422 ) 118 VIDEO_FILTER_WRAPPER( cyuv_I422 ) 119 111 120 /***************************************************************************** 112 121 * YUY2_I422: packed YUY2 4:2:2 to planar YUV 4:2:2 src/video_output/video_output.c
r2e2178f r218efb9 515 515 * modified inside this function. 516 516 *****************************************************************************/ 517 static picture_t *get_pic( filter_t *p_filter ) 518 { 519 picture_t *p_pic = (picture_t *)p_filter->p_owner; 520 p_filter->p_owner = NULL; 521 return p_pic; 522 } 523 517 524 static int InitThread( vout_thread_t *p_vout ) 518 525 { … … 673 680 p_chroma->fmt_out.video.i_rbshift = p_vout->output.i_rbshift; 674 681 p_chroma->fmt_out.video.i_lbshift = p_vout->output.i_lbshift; 675 msg_Err( p_vout, "HOLA! %4.4s \n", (char*)&p_chroma->fmt_in.video.i_chroma );676 msg_Err( p_vout, "HOLA! %4.4s \n", (char*)&p_chroma->fmt_out.video.i_chroma );677 p_chroma->p_module = module_Need( p_chroma, " chroma", NULL, 0 );682 msg_Err( p_vout, "HOLA! %4.4s", (char*)&p_chroma->fmt_in.video.i_chroma ); 683 msg_Err( p_vout, "HOLA! %4.4s", (char*)&p_chroma->fmt_out.video.i_chroma ); 684 p_chroma->p_module = module_Need( p_chroma, "video filter2", NULL, 0 ); 678 685 679 686 if( p_chroma->p_module == NULL ) … … 688 695 return VLC_EGENERIC; 689 696 } 697 p_chroma->pf_vout_buffer_new = get_pic; 690 698 691 699 msg_Dbg( p_vout, "indirect render, mapping " src/video_output/vout_pictures.c
r2e2178f r218efb9 379 379 380 380 /* Convert image to the first direct buffer */ 381 p_vout->p_chroma->pf_video_filter_io( p_vout->p_chroma, p_pic, p_tmp_pic ); 381 p_vout->p_chroma->p_owner = (picture_t *)p_tmp_pic; 382 p_vout->p_chroma->pf_video_filter( p_vout->p_chroma, p_pic ); 382 383 383 384 /* Render subpictures on the first direct buffer */ … … 399 400 400 401 /* Convert image to the first direct buffer */ 401 p_vout->p_chroma->pf_video_filter_io( p_vout->p_chroma, p_pic, &p_vout->p_picture[0] ); 402 p_vout->p_chroma->p_owner = (picture_t *)&p_vout->p_picture[0]; 403 p_vout->p_chroma->pf_video_filter( p_vout->p_chroma, p_pic ); 402 404 403 405 /* Render subpictures on the first direct buffer */
