Changeset 37becd478f7fa51e8aebd595d7aebb205dfc1951
- Timestamp:
- 25/11/07 14:32:20 (1 year ago)
- git-parent:
- Files:
-
- configure.ac (modified) (1 diff)
- modules/video_chroma/Modules.am (modified) (1 diff)
- modules/video_chroma/i422_i420.c (added)
- modules/video_chroma/i422_yuy2.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
configure.ac
r7fa3031 r37becd4 1263 1263 VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap fake folder]) 1264 1264 VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur]) 1265 VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga ])1265 VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga i422_i420]) 1266 1266 VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler]) 1267 1267 VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer]) modules/video_chroma/Modules.am
r262b177 r37becd4 56 56 $(NULL) 57 57 58 SOURCES_i422_i420 = \ 59 i422_i420.c \ 60 $(NULL) 61 58 62 SOURCES_i420_ymga = \ 59 63 i420_ymga.c \ modules/video_chroma/i422_yuy2.c
r6ee1e19 r37becd4 1 1 /***************************************************************************** 2 * i422_yuy2.c : YUV toYUV conversion module for vlc2 * i422_yuy2.c : Planar YUV 4:2:2 to Packed YUV conversion module for vlc 3 3 ***************************************************************************** 4 4 * Copyright (C) 2000, 2001 the VideoLAN team … … 52 52 static void I422_Y211 ( vout_thread_t *, picture_t *, picture_t * ); 53 53 static void I422_Y211 ( vout_thread_t *, picture_t *, picture_t * ); 54 static void I422_YV12 ( vout_thread_t *, picture_t *, picture_t * );55 54 #endif 56 55 … … 120 119 p_vout->chroma.pf_convert = I422_Y211; 121 120 break; 122 123 case VLC_FOURCC('Y','V','1','2'):124 p_vout->chroma.pf_convert = I422_YV12;125 break;126 121 #endif 127 122 … … 549 544 } 550 545 #endif 551 552 553 /*****************************************************************************554 * I422_YV12: planar YUV 4:2:2 to planar YV12555 *****************************************************************************/556 #if defined (MODULE_NAME_IS_i422_yuy2)557 static void I422_YV12( vout_thread_t *p_vout, picture_t *p_source,558 picture_t *p_dest )559 {560 uint16_t i_dpy = p_dest->p[Y_PLANE].i_pitch;561 uint16_t i_spy = p_source->p[Y_PLANE].i_pitch;562 uint16_t i_dpuv = p_dest->p[U_PLANE].i_pitch;563 uint16_t i_spuv = p_source->p[U_PLANE].i_pitch;564 uint16_t i_width = p_vout->render.i_width;565 uint16_t i_y = p_vout->render.i_height;566 uint8_t *p_dy = p_dest->Y_PIXELS + (i_y-1)*i_dpy;567 uint8_t *p_y = p_source->Y_PIXELS + (i_y-1)*i_spy;568 uint8_t *p_du = p_dest->U_PIXELS + (i_y/2-1)*i_dpuv;569 uint8_t *p_u = p_source->U_PIXELS + (i_y-1)*i_spuv;570 uint8_t *p_dv = p_dest->V_PIXELS + (i_y/2-1)*i_dpuv;571 uint8_t *p_v = p_source->V_PIXELS + (i_y-1)*i_spuv;572 i_y /= 2;573 574 for ( ; i_y--; )575 {576 memcpy(p_dy, p_y, i_width); p_dy -= i_dpy; p_y -= i_spy;577 memcpy(p_dy, p_y, i_width); p_dy -= i_dpy; p_y -= i_spy;578 memcpy(p_du, p_u, i_width/2); p_du -= i_dpuv; p_u -= 2*i_spuv;579 memcpy(p_dv, p_v, i_width/2); p_dv -= i_dpuv; p_v -= 2*i_spuv;580 }581 582 }583 #endif
