Changeset 1025:3ed6c7d0365d in mediastreamer2


Ignore:
Timestamp:
Jun 28, 2010 12:38:57 PM (3 years ago)
Author:
Simon Morlat <simon.morlat@…>
Branch:
default
Message:

allow overide of display filters, echo canceler in progress

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • include/mediastreamer2/mediastream.h

    r1015 r1025  
    182182        VideoStreamRenderCallback rendercb; 
    183183        void *render_pointer; 
     184        char *display_name; 
    184185        bool_t adapt_bitrate; 
    185186}; 
     
    190191void video_stream_enable_adaptive_bitrate_control(VideoStream *s, bool_t yesno); 
    191192void video_stream_set_render_callback(VideoStream *s, VideoStreamRenderCallback cb, void *user_pointer); 
     193void video_stream_set_display_filter_name(VideoStream *s, const char *fname); 
    192194int video_stream_start(VideoStream * stream, RtpProfile *profile, const char *remip, int remport, int rem_rtcp_port, 
    193195                int payload, int jitt_comp, MSWebCam *device); 
  • src/speexec.c

    r1023 r1025  
    113113        int nbytes=s->framesize*2; 
    114114        mblk_t *refm; 
    115         int ref_samples=0; 
    116115        uint8_t *ref,*echo; 
    117116        int size; 
     
    119118        if (f->inputs[0]!=NULL){ 
    120119                while((refm=ms_queue_get(f->inputs[0]))!=NULL){ 
    121                         mblk_t *cp=copymsg(refm); 
    122                         ref_samples+=msgdsize(refm)/2; 
     120                        mblk_t *cp=dupmsg(refm); 
    123121                        ms_bufferizer_put(&s->ref,refm); 
    124122                        ms_bufferizer_put(&s->delayed_ref,cp); 
     
    133131                } 
    134132        } 
     133 
     134        ms_message("echo bytes=%i, ref bytes=%i",ms_bufferizer_get_avail(&s->echo), 
     135                   ms_bufferizer_get_avail(&s->ref)); 
    135136         
    136137        ref=(uint8_t*)alloca(nbytes); 
  • src/videostream.c

    r997 r1025  
    6262        if (stream->evq!=NULL) 
    6363                ortp_ev_queue_destroy(stream->evq); 
     64        if (stream->display_name!=NULL) 
     65                ms_free(stream->display_name); 
     66         
    6467        ms_free (stream); 
    6568} 
     
    163166} 
    164167 
     168static void choose_display_name(VideoStream *stream){ 
     169#ifdef WIN32 
     170        stream->display_name=ms_strdup("MSDrawDibDisplay"); 
     171#else 
     172        stream->display_name=ms_strdup("MSVideoOut"); 
     173#endif 
     174} 
     175 
    165176VideoStream *video_stream_new(int locport, bool_t use_ipv6){ 
    166177        VideoStream *stream = (VideoStream *)ms_new0 (VideoStream, 1); 
     
    171182        stream->sent_vsize.width=MS_VIDEO_SIZE_CIF_W; 
    172183        stream->sent_vsize.height=MS_VIDEO_SIZE_CIF_H; 
     184        choose_display_name(stream); 
     185 
    173186        return stream; 
    174187} 
    175188 
    176189void video_stream_set_sent_video_size(VideoStream *stream, MSVideoSize vsize){ 
    177   ms_message("Setting video size %dx%d", vsize.width, vsize.height); 
     190        ms_message("Setting video size %dx%d", vsize.width, vsize.height); 
    178191        stream->sent_vsize=vsize; 
    179192} 
     
    198211        s->rendercb=cb; 
    199212        s->render_pointer=user_pointer; 
     213} 
     214 
     215void video_stream_set_display_filter_name(VideoStream *s, const char *fname){ 
     216        if (s->display_name!=NULL){ 
     217                ms_free(s->display_name); 
     218                s->display_name=NULL; 
     219        } 
     220        if (fname!=NULL) 
     221                s->display_name=ms_strdup(fname); 
    200222} 
    201223 
     
    267289                ms_filter_set_notify_callback (stream->output,ext_display_cb,stream); 
    268290        }else{ 
    269 #ifndef WIN32 
    270                 stream->output=ms_filter_new(MS_VIDEO_OUT_ID); 
    271 #else 
    272                 stream->output=ms_filter_new(MS_DRAWDIB_DISPLAY_ID); 
    273 #endif 
     291                stream->output=ms_filter_new_from_name (stream->display_name); 
    274292        } 
    275293 
     
    398416 
    399417        /* creates the filters */ 
     418        choose_display_name(stream); 
    400419        stream->source = ms_web_cam_create_reader(device); 
    401420 
    402 #ifndef WIN32 
    403         stream->output = ms_filter_new(MS_VIDEO_OUT_ID); 
    404 #else 
    405         stream->output = ms_filter_new(MS_DRAWDIB_DISPLAY_ID); 
    406 #endif 
    407  
     421        stream->output=ms_filter_new_from_name (stream->display_name); 
    408422 
    409423        /* configure the filters */ 
     
    580594                return -1; 
    581595        } 
    582 #ifndef WIN32 
    583         stream->output=ms_filter_new(MS_VIDEO_OUT_ID); 
    584 #else 
    585         stream->output=ms_filter_new(MS_DRAWDIB_DISPLAY_ID); 
    586 #endif 
     596        stream->output=ms_filter_new_from_name (stream->display_name); 
    587597        /*force the decoder to output YUV420P */ 
    588598        format=MS_YUV420P; 
Note: See TracChangeset for help on using the changeset viewer.