Changeset 4253


Ignore:
Timestamp:
Sep 13, 2012 8:35:24 AM (8 years ago)
Author:
ming
Message:

Re #1562: Add support for multiple GUIDs that represents the same format (such as I420/IYUV) in DShow device.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia-videodev/dshow_dev.c

    r4241 r4253  
    6666    pjmedia_format_id    pjmedia_format; 
    6767    const GUID          *dshow_format; 
     68    pj_bool_t            enabled; 
    6869} dshow_fmt_info; 
    6970 
    7071static dshow_fmt_info dshow_fmts[] = 
    7172{ 
    72     {PJMEDIA_FORMAT_YUY2, &MEDIASUBTYPE_YUY2} , 
    73     {PJMEDIA_FORMAT_RGB24, &MEDIASUBTYPE_RGB24} , 
    74     {PJMEDIA_FORMAT_RGB32, &MEDIASUBTYPE_RGB32} , 
    75     {PJMEDIA_FORMAT_IYUV, &MEDIASUBTYPE_IYUV} , 
    76     {PJMEDIA_FORMAT_I420, &WMMEDIASUBTYPE_I420} 
     73    {PJMEDIA_FORMAT_YUY2, &MEDIASUBTYPE_YUY2, PJ_FALSE} , 
     74    {PJMEDIA_FORMAT_RGB24, &MEDIASUBTYPE_RGB24, PJ_FALSE} , 
     75    {PJMEDIA_FORMAT_RGB32, &MEDIASUBTYPE_RGB32, PJ_FALSE} , 
     76    {PJMEDIA_FORMAT_IYUV, &MEDIASUBTYPE_IYUV, PJ_FALSE} , 
     77    {PJMEDIA_FORMAT_I420, &WMMEDIASUBTYPE_I420, PJ_FALSE} 
    7778}; 
    7879 
     
    332333                                rpcstatus2 == RPC_S_OK) 
    333334                            { 
     335                                if (!dshow_fmt) 
     336                                    dshow_fmts[j].enabled = PJ_TRUE; 
    334337                                if (sup_fmt) 
    335338                                    sup_fmt[j] = PJ_TRUE; 
     
    643646 
    644647    for (i = 0; i < sizeof(dshow_fmts)/sizeof(dshow_fmts[0]); i++) { 
    645         if (dshow_fmts[i].pjmedia_format == id) 
     648        if (dshow_fmts[i].pjmedia_format == id && dshow_fmts[i].enabled) 
    646649            return &dshow_fmts[i]; 
    647650    } 
Note: See TracChangeset for help on using the changeset viewer.