Changeset 37becd478f7fa51e8aebd595d7aebb205dfc1951

Show
Ignore:
Timestamp:
25/11/07 14:32:20 (1 year ago)
Author:
Antoine Cellerier <dionoea@videolan.org>
git-committer:
Antoine Cellerier <dionoea@videolan.org> 1195997540 +0000
git-parent:

[1689169ec7248d0e18de86baf790d3ad86a1478d]

git-author:
Antoine Cellerier <dionoea@videolan.org> 1195997540 +0000
Message:

Split i422->packed YUV and i422->planar YUV. Add i422->YUVA. This still needs some testing.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • configure.ac

    r7fa3031 r37becd4  
    12631263  VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap fake folder]) 
    12641264  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]) 
    12661266  VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler]) 
    12671267  VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer]) 
  • modules/video_chroma/Modules.am

    r262b177 r37becd4  
    5656    $(NULL) 
    5757 
     58SOURCES_i422_i420 = \ 
     59    i422_i420.c \ 
     60    $(NULL) 
     61 
    5862SOURCES_i420_ymga = \ 
    5963    i420_ymga.c \ 
  • modules/video_chroma/i422_yuy2.c

    r6ee1e19 r37becd4  
    11/***************************************************************************** 
    2  * i422_yuy2.c : YUV to YUV conversion module for vlc 
     2 * i422_yuy2.c : Planar YUV 4:2:2 to Packed YUV conversion module for vlc 
    33 ***************************************************************************** 
    44 * Copyright (C) 2000, 2001 the VideoLAN team 
     
    5252static void I422_Y211           ( vout_thread_t *, picture_t *, picture_t * ); 
    5353static void I422_Y211           ( vout_thread_t *, picture_t *, picture_t * ); 
    54 static void I422_YV12           ( vout_thread_t *, picture_t *, picture_t * ); 
    5554#endif 
    5655 
     
    120119                    p_vout->chroma.pf_convert = I422_Y211; 
    121120                    break; 
    122  
    123                 case VLC_FOURCC('Y','V','1','2'): 
    124                     p_vout->chroma.pf_convert = I422_YV12; 
    125                     break; 
    126121#endif 
    127122 
     
    549544} 
    550545#endif 
    551  
    552  
    553 /***************************************************************************** 
    554  * I422_YV12: planar YUV 4:2:2 to planar YV12 
    555  *****************************************************************************/ 
    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