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

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

?? rtsp.c

?? VLC Player Source Code
?? C
?? 第 1 頁 / 共 2 頁
字號:
    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, "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, uint8_t *buffer, unsigned int size ){    int i, seq;    if( size >= 4 )    {        i = rtsp->pf_read( rtsp->p_userdata, (uint8_t*)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 );    }    free( rtsp->p_private->path );    free( rtsp->p_private->host );    free( rtsp->p_private->mrl );    free( rtsp->p_private->session );    free( rtsp->p_private->user_agent );    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 ){    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;    }    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一区二区三区免费野_久草精品视频
777午夜精品视频在线播放| 亚洲欧美日韩久久| 国产午夜精品在线观看| 国产婷婷一区二区| 美国十次综合导航| 精品久久一区二区三区| 极品少妇一区二区三区精品视频| 日韩一区二区三区视频| 精品一区二区三区香蕉蜜桃| 国产拍欧美日韩视频二区| 国产suv一区二区三区88区| 亚洲欧洲韩国日本视频| 欧美色欧美亚洲另类二区| 日本亚洲欧美天堂免费| 久久久久久久久久久久久女国产乱| 懂色av中文字幕一区二区三区| 亚洲欧美在线aaa| 欧美精品久久99| 精品一区二区久久久| 国产精品久久久久久久蜜臀| 欧美日韩国产电影| 国产精品一品二品| 亚洲一区免费观看| 久久精品一区四区| 欧美三级韩国三级日本三斤| 国产在线精品视频| 亚洲宅男天堂在线观看无病毒| 日韩一区二区精品在线观看| 大白屁股一区二区视频| 亚洲国产综合色| www亚洲一区| 欧美专区日韩专区| 成人午夜碰碰视频| 奇米综合一区二区三区精品视频| 国产精品黄色在线观看| 日韩精品中文字幕在线不卡尤物| av电影天堂一区二区在线| 日本亚洲一区二区| 成人综合婷婷国产精品久久 | 亚洲成人免费av| 久久久精品国产免费观看同学| 91免费视频网址| 寂寞少妇一区二区三区| 亚欧色一区w666天堂| 国产精品美女久久久久高潮| 欧美成人vr18sexvr| 欧美性生交片4| 成人免费观看av| 国产一区二区三区| 日韩av午夜在线观看| 亚洲尤物在线视频观看| 国产精品久久久久久久久久久免费看 | 欧美日韩一级大片网址| 成人午夜电影久久影院| 精品一区二区三区影院在线午夜 | 91小视频免费观看| 欧美三级日本三级少妇99| 青青国产91久久久久久| 国产精品18久久久久| 日日噜噜夜夜狠狠视频欧美人| 国产精品另类一区| 国产日韩精品视频一区| 精品乱码亚洲一区二区不卡| 欧美精品一二三四| 欧美性感一类影片在线播放| 色婷婷综合久色| 91在线免费视频观看| 国产成人av电影在线播放| 老司机免费视频一区二区三区| 石原莉奈一区二区三区在线观看| 一区二区三区四区五区视频在线观看| 亚洲美女视频在线观看| 一区二区三区精密机械公司| 国产精品网站一区| 久久精品欧美一区二区三区不卡 | 不卡一卡二卡三乱码免费网站| 国产米奇在线777精品观看| 精品综合久久久久久8888| 日本亚洲免费观看| 麻豆成人久久精品二区三区红| 日本系列欧美系列| 婷婷开心激情综合| 日精品一区二区三区| 麻豆一区二区在线| 国产一区视频网站| 国产91在线观看| www.欧美日韩国产在线| 97精品视频在线观看自产线路二| 色呦呦日韩精品| 欧美日韩国产一级二级| 欧美一区二区女人| 99re热这里只有精品免费视频 | 国产一区二区三区av电影| 久久国内精品自在自线400部| 精品系列免费在线观看| 国产精品456露脸| 99精品视频在线播放观看| 在线观看视频欧美| 日韩欧美的一区| 国产精品人成在线观看免费| 亚洲精品免费在线| 麻豆免费看一区二区三区| 高清免费成人av| 色综合色综合色综合色综合色综合| 欧美丰满少妇xxxbbb| 蜜桃视频在线观看一区| 性做久久久久久| 狠狠久久亚洲欧美| 91丨九色丨蝌蚪富婆spa| 国产麻豆一精品一av一免费| 亚洲日本在线天堂| 婷婷中文字幕综合| 国产一区999| 色妞www精品视频| 色诱视频网站一区| 久久免费电影网| 91麻豆精品国产91久久久| 国产视频视频一区| 亚洲综合一区二区| 国产精品一区久久久久| 欧美影视一区二区三区| 久久久久88色偷偷免费| 亚洲午夜在线电影| 成人丝袜高跟foot| 欧美一级理论性理论a| 国产精品久久久久精k8 | 日韩精品91亚洲二区在线观看| 国产又黄又大久久| 欧美三级视频在线| 中文字幕成人在线观看| 蜜臀va亚洲va欧美va天堂 | 久久久一区二区三区捆绑**| 一区二区三区四区视频精品免费| 国内久久精品视频| 在线不卡a资源高清| 亚洲同性同志一二三专区| 国产麻豆精品在线观看| 亚洲图片欧美一区| 国产精品538一区二区在线| 国产91精品一区二区| 成人av网在线| 精品国产乱码久久久久久1区2区 | 欧美国产日韩在线观看| 日韩和的一区二区| 日本道精品一区二区三区| 国产色91在线| 国产裸体歌舞团一区二区| 欧美一区二区三区视频在线观看 | 国产精品国产三级国产有无不卡| 日日摸夜夜添夜夜添国产精品| 欧美午夜电影在线播放| 精品综合久久久久久8888| 国产精品视频九色porn| 精品一区二区在线视频| 日韩欧美国产小视频| 热久久国产精品| 51精品秘密在线观看| 亚洲一卡二卡三卡四卡| 91香蕉视频mp4| 亚洲日本在线a| 99re这里只有精品首页| 中文字幕人成不卡一区| 国内精品视频一区二区三区八戒| 欧美激情一区在线| 亚洲欧美韩国综合色| 日本欧美大码aⅴ在线播放| 欧美视频第二页| 一区二区日韩av| 欧美视频一区二| 日韩影视精彩在线| 日韩精品一区二区三区在线播放| 另类小说欧美激情| 久久久.com| 本田岬高潮一区二区三区| 国产精品久久久久久久久动漫 | 欧美剧在线免费观看网站 | 亚洲精品在线观看网站| 国产激情视频一区二区三区欧美| 国产欧美日韩在线看| 99热99精品| 一区二区三区在线观看视频 | 国产一区二区三区综合| 中文字幕不卡的av| 色综合天天视频在线观看 | 精品久久五月天| 成人av在线资源网站| 亚洲影院免费观看| 欧美一区二区国产| 国产v日产∨综合v精品视频| 亚洲日本在线a| 欧美一级黄色录像| 日韩高清一级片| 69p69国产精品| 亚洲一区二区三区在线看| 91精品福利在线一区二区三区 | 福利电影一区二区三区| 亚洲欧洲中文日韩久久av乱码| 欧美久久久久免费| 国产a久久麻豆| 图片区小说区国产精品视频|