亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rtsp.c

?? uclinux 下的vlc播放器源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    {        buf = strdup(what);    }    else    {        buf = malloc( strlen(rtsp->p_private->host) +                      strlen(rtsp->p_private->path) + 16 );        sprintf( buf, "rtsp://%s:%i/%s", rtsp->p_private->host,                 rtsp->p_private->port, rtsp->p_private->path );    }    rtsp_send_request( rtsp, "SET_PARAMETER", buf );    free( buf );    return rtsp_get_answers( rtsp );}int rtsp_request_play( rtsp_client_t *rtsp, const char *what ){    char *buf;    if( what )    {        buf = strdup( what );    }    else    {        buf = malloc( strlen(rtsp->p_private->host) +                      strlen(rtsp->p_private->path) + 16 );        sprintf( buf, "rtsp://%s:%i/%s", rtsp->p_private->host,                 rtsp->p_private->port, rtsp->p_private->path );    }    rtsp_send_request( rtsp, "PLAY", buf );    free( buf );    return rtsp_get_answers( rtsp );}int rtsp_request_tearoff( rtsp_client_t *rtsp, const char *what ){    rtsp_send_request( rtsp, "TEAROFF", what );    return rtsp_get_answers( rtsp );}/* * read opaque data from stream */int rtsp_read_data( rtsp_client_t *rtsp, char *buffer, unsigned int size ){    int i, seq;    if( size >= 4 )    {        i = rtsp->pf_read( rtsp->p_userdata, buffer, (unsigned int) 4 );        if( i < 4 ) return i;        if( buffer[0]=='S' && buffer[1]=='E' && buffer[2]=='T' &&            buffer[3]=='_' )        {            char *rest = rtsp_get( rtsp );            if( !rest ) return -1;            seq = -1;            do            {                free( rest );                rest = rtsp_get( rtsp );                if( !rest ) return -1;                if( !strncasecmp( rest, "Cseq:", 5 ) )                    sscanf( rest, "%*s %u", &seq );            } while( *rest );            free( rest );            if( seq < 0 )            {                //fprintf(stderr, "warning: cseq not recognized!\n");                seq = 1;            }            /* lets make the server happy */            rtsp_put( rtsp, "RTSP/1.0 451 Parameter Not Understood" );            rest = malloc(17);            sprintf( rest,"CSeq: %u", seq );            rtsp_put( rtsp, rest );            rtsp_put( rtsp, "" );            free( rest );            i = rtsp->pf_read( rtsp->p_userdata, (unsigned char*)buffer, size );        }        else        {            i = rtsp->pf_read( rtsp->p_userdata, (unsigned char*)buffer + 4, size - 4 );            i += 4;        }    }    else i = rtsp->pf_read( rtsp->p_userdata, (unsigned char*)buffer, size );    //fprintf( stderr, "<< %d of %d bytes\n", i, size );    return i;}/* * connect to a rtsp server */int rtsp_connect( rtsp_client_t *rtsp, const char *psz_mrl,                  const char *psz_user_agent ){    rtsp_t *s;    char *mrl_ptr;    char *slash, *colon;    unsigned int hostend, pathbegin, i;    if( !psz_mrl ) return -1;    s = malloc( sizeof(rtsp_t) );    rtsp->p_private = s;    if( !strncmp( psz_mrl, "rtsp://", 7 ) ) psz_mrl += 7;    mrl_ptr = strdup( psz_mrl );    for( i=0; i<MAX_FIELDS; i++ )    {        s->answers[i]=NULL;        s->scheduled[i]=NULL;    }    s->host = NULL;    s->port = 554; /* rtsp standard port */    s->path = NULL;    s->mrl  = strdup(psz_mrl);    s->server = NULL;    s->server_state = 0;    s->server_caps = 0;    s->cseq = 0;    s->session = NULL;    if( psz_user_agent ) s->user_agent = strdup( psz_user_agent );    else s->user_agent = strdup( "User-Agent: RealMedia Player Version "                                 "6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)" );    slash = strchr( mrl_ptr, '/' );    colon = strchr( mrl_ptr, ':' );    if( !slash ) slash = mrl_ptr + strlen(mrl_ptr) + 1;    if( !colon ) colon = slash;     if( colon > slash ) colon = slash;    pathbegin = slash - mrl_ptr;    hostend = colon - mrl_ptr;    s->host = malloc(hostend+1);    strncpy( s->host, mrl_ptr, hostend );    s->host[hostend] = 0;    if( pathbegin < strlen(mrl_ptr) ) s->path = strdup(mrl_ptr+pathbegin+1);    if( colon != slash )    {        char buffer[pathbegin-hostend];        strncpy( buffer, mrl_ptr+hostend+1, pathbegin-hostend-1 );        buffer[pathbegin-hostend-1] = 0;        s->port = atoi(buffer);        if( s->port < 0 || s->port > 65535 ) s->port = 554;    }    free( mrl_ptr );    //fprintf( stderr, "got mrl: %s %i %s\n", s->host, s->port, s->path );    s->s = rtsp->pf_connect( rtsp->p_userdata, s->host, s->port );    if( s->s < 0 )    {        //fprintf(stderr, "rtsp: failed to connect to '%s'\n", s->host);        rtsp_close( rtsp );        return -1;    }    s->server_state = RTSP_CONNECTED;    /* now lets send an options request. */    rtsp_schedule_field( rtsp, "CSeq: 1");    rtsp_schedule_field( rtsp, s->user_agent);    rtsp_schedule_field( rtsp, "ClientChallenge: "                               "9e26d33f2984236010ef6253fb1887f7");    rtsp_schedule_field( rtsp, "PlayerStarttime: [28/03/2003:22:50:23 00:00]");    rtsp_schedule_field( rtsp, "CompanyID: KnKV4M4I/B2FjJ1TToLycw==" );    rtsp_schedule_field( rtsp, "GUID: 00000000-0000-0000-0000-000000000000" );    rtsp_schedule_field( rtsp, "RegionData: 0" );    rtsp_schedule_field( rtsp, "ClientID: "                               "Linux_2.4_6.0.9.1235_play32_RN01_EN_586" );    /*rtsp_schedule_field( rtsp, "Pragma: initiate-session" );*/    rtsp_request_options( rtsp, NULL );    return 0;}/* * closes an rtsp connection  */void rtsp_close( rtsp_client_t *rtsp ){    if( rtsp->p_private->server_state )    {        /* TODO: send a TEAROFF */        rtsp->pf_disconnect( rtsp->p_userdata );    }    if( rtsp->p_private->path ) free( rtsp->p_private->path );    if( rtsp->p_private->host ) free( rtsp->p_private->host );    if( rtsp->p_private->mrl ) free( rtsp->p_private->mrl );    if( rtsp->p_private->session ) free( rtsp->p_private->session );    if( rtsp->p_private->user_agent ) free( rtsp->p_private->user_agent );    if( rtsp->p_private->server ) free( rtsp->p_private->server );    rtsp_free_answers( rtsp );    rtsp_unschedule_all( rtsp );    free( rtsp->p_private );}/* * search in answers for tags. returns a pointer to the content * after the first matched tag. returns NULL if no match found. */char *rtsp_search_answers( rtsp_client_t *rtsp, const char *tag ){    char **answer;    char *ptr;    if( !rtsp->p_private->answers ) return NULL;    answer = rtsp->p_private->answers;    while(*answer)    {        if( !strncasecmp( *answer, tag, strlen(tag) ) )        {            ptr = strchr(*answer, ':');            ptr++;            while( *ptr == ' ' ) ptr++;            return ptr;        }        answer++;    }    return NULL;}/* * session id management */void rtsp_set_session( rtsp_client_t *rtsp, const char *id ){    if( rtsp->p_private->session ) free( rtsp->p_private->session );    rtsp->p_private->session = strdup(id);}char *rtsp_get_session( rtsp_client_t *rtsp ){    return rtsp->p_private->session;}char *rtsp_get_mrl( rtsp_client_t *rtsp ){    return rtsp->p_private->mrl;}/* * schedules a field for transmission */void rtsp_schedule_field( rtsp_client_t *rtsp, const char *string ){    int i = 0;    if( !string ) return;    while( rtsp->p_private->scheduled[i] ) i++;    rtsp->p_private->scheduled[i] = strdup(string);}/* * removes the first scheduled field which prefix matches string.  */void rtsp_unschedule_field( rtsp_client_t *rtsp, const char *string ){    char **ptr = rtsp->p_private->scheduled;    if( !string ) return;    while( *ptr )    {      if( !strncmp(*ptr, string, strlen(string)) ) break;    }    if( *ptr ) free( *ptr );    ptr++;    do    {        *(ptr-1) = *ptr;    } while( *ptr );}/* * unschedule all fields */void rtsp_unschedule_all( rtsp_client_t *rtsp ){    char **ptr;    if( !rtsp->p_private->scheduled ) return;    ptr = rtsp->p_private->scheduled;    while( *ptr )    {        free( *ptr );        *ptr = NULL;        ptr++;    }}/* * free answers */void rtsp_free_answers( rtsp_client_t *rtsp ){    char **answer;    if( !rtsp->p_private->answers ) return;    answer = rtsp->p_private->answers;    while( *answer )    {        free( *answer );        *answer = NULL;        answer++;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777xxx欧美| 欧美精品乱码久久久久久| 黄色成人免费在线| 日本一道高清亚洲日美韩| 亚洲成人资源在线| 亚洲一区在线观看视频| 一区二区成人在线视频| 一二三区精品福利视频| 亚洲一区二区三区爽爽爽爽爽| 亚洲影院在线观看| 亚洲mv在线观看| 日本在线观看不卡视频| 日韩高清不卡一区二区三区| 蜜乳av一区二区| 激情综合亚洲精品| 成人免费视频caoporn| 粉嫩av一区二区三区在线播放 | 丝袜美腿亚洲一区二区图片| 午夜精品久久久久久久99樱桃| 香蕉乱码成人久久天堂爱免费| 视频在线观看国产精品| 毛片av中文字幕一区二区| 国产乱子伦一区二区三区国色天香| 国产一区二区导航在线播放| 国产不卡视频一区二区三区| 不卡的av在线播放| 欧美视频一区二区在线观看| 欧美一区午夜精品| 久久综合网色—综合色88| 国产欧美日韩精品一区| 亚洲四区在线观看| 亚洲 欧美综合在线网络| 久久精品国产色蜜蜜麻豆| 国产成人8x视频一区二区| 一本大道综合伊人精品热热| 欧美日本在线一区| 久久久不卡网国产精品二区| 亚洲欧美自拍偷拍色图| 日韩精品一区第一页| 国产一级精品在线| 色综合久久天天综合网| 日韩一区二区精品在线观看| 亚洲国产精品精华液ab| 亚洲免费在线视频一区 二区| 亚洲一区二区三区美女| 高清久久久久久| 亚洲免费看黄网站| 久久综合狠狠综合久久综合88 | 久久精品在线免费观看| 成人h版在线观看| 秋霞午夜鲁丝一区二区老狼| 亚洲国产精品久久久久婷婷884| 国产女人18毛片水真多成人如厕| 在线电影院国产精品| 欧美亚洲自拍偷拍| 男男成人高潮片免费网站| 国产激情精品久久久第一区二区 | 久久精品在线观看| 日韩一级欧美一级| 亚洲天天做日日做天天谢日日欢 | 久久久久久久久久久黄色| 国产成人精品免费| 在线观看不卡视频| 久久精品欧美一区二区三区不卡| 毛片不卡一区二区| 精东粉嫩av免费一区二区三区| 国产一区二区在线观看视频| 色噜噜夜夜夜综合网| 久久网这里都是精品| 日本一区二区三区四区在线视频| 狠狠色综合播放一区二区| 色欧美乱欧美15图片| 亚洲国产美女搞黄色| 午夜精品久久久久久久久| 欧美久久久一区| 午夜精品免费在线观看| 欧美日韩免费一区二区三区| 波多野结衣视频一区| 日本中文字幕一区二区视频| 精品国产91洋老外米糕| 亚洲福利一二三区| 91尤物视频在线观看| 久久久高清一区二区三区| 免费成人在线观看| 欧美日韩免费高清一区色橹橹 | 欧美激情一区二区| 久久精品72免费观看| 欧美久久一二三四区| 亚洲激情成人在线| 9i在线看片成人免费| 中文在线一区二区| 国产风韵犹存在线视精品| 欧美va亚洲va| 久久精品国产第一区二区三区| 91麻豆精品国产91久久久使用方法| 亚洲精品久久嫩草网站秘色| av中文字幕在线不卡| 国产精品久久久久7777按摩| 国产麻豆午夜三级精品| 在线不卡免费av| 五月天视频一区| 久久伊人蜜桃av一区二区| 伦理电影国产精品| 日韩欧美一区电影| 久久国产福利国产秒拍| 欧美va亚洲va在线观看蝴蝶网| 奇米影视在线99精品| 日韩三级电影网址| 麻豆freexxxx性91精品| 日韩一区二区在线观看| 另类的小说在线视频另类成人小视频在线| 制服丝袜日韩国产| 捆绑调教美女网站视频一区| 精品国产髙清在线看国产毛片 | 成人黄色在线网站| 国产精品丝袜在线| 一本色道久久加勒比精品| 一区二区三区四区激情| 欧美日韩国产成人在线91| 老司机午夜精品| 91精品国产综合久久福利| 热久久一区二区| 久久综合久久综合久久综合| 国产大陆亚洲精品国产| 一区在线观看视频| 欧美性猛交xxxxxx富婆| 视频一区二区三区入口| 日韩欧美的一区二区| 国产成人亚洲综合色影视| 国产精品成人免费| 日本福利一区二区| 蜜桃精品视频在线| 中文字幕在线视频一区| 欧美午夜一区二区| 精品一区二区三区影院在线午夜 | 最新不卡av在线| 欧美三级三级三级爽爽爽| 六月丁香综合在线视频| 国产精品女上位| 欧美日韩国产综合一区二区三区| 麻豆精品一区二区av白丝在线| 中文字幕乱码日本亚洲一区二区 | 日韩三级电影网址| 成人黄色片在线观看| 亚洲国产一区二区视频| 精品国产91乱码一区二区三区| 欧美午夜精品一区| 日韩免费视频一区| 国产精品18久久久久| 亚洲另类色综合网站| 91精品久久久久久久99蜜桃| 成人午夜私人影院| 午夜欧美电影在线观看| 2021久久国产精品不只是精品| 色美美综合视频| 精品一区二区三区视频| 亚洲欧美偷拍三级| 精品国产一区二区亚洲人成毛片| 91蜜桃视频在线| 久久国产福利国产秒拍| 亚洲一区二区三区国产| 国产视频视频一区| 欧美日韩一本到| 成人综合日日夜夜| 日韩二区三区在线观看| 亚洲欧美在线高清| 精品国产乱码久久久久久免费 | 欧美日韩免费一区二区三区 | 欧美一区二区三区公司| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 99热99精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩电影在线观看电影| 亚洲欧洲一区二区在线播放| 日韩一区二区在线免费观看| 91亚洲永久精品| 国内外成人在线| 日韩高清不卡一区| 亚洲激情av在线| 亚洲视频 欧洲视频| 国产日韩欧美电影| 日韩欧美在线网站| 欧美色图在线观看| 一道本成人在线| 成人免费视频国产在线观看| 精彩视频一区二区三区| 蜜臀久久99精品久久久久久9| 亚洲最大色网站| 亚洲免费资源在线播放| 国产精品不卡在线观看| 国产亚洲成aⅴ人片在线观看| 日韩午夜小视频| 欧美肥妇毛茸茸| 欧美日韩精品一区二区| 色婷婷综合久久久中文一区二区| 国产精品99久久久久久久女警 | 欧美色涩在线第一页| 色哟哟亚洲精品| 97精品国产露脸对白| 99久久精品99国产精品|