⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 output.m

📁 video linux conference
💻 M
📖 第 1 页 / 共 2 页
字号:
            [o_slp_chkbox setEnabled: NO];            [o_rtsp_chkbox setEnabled: YES];            [o_http_chkbox setEnabled: YES];            [o_file_chkbox setEnabled: YES];            [o_channel_name setEnabled: YES];        }    }    if( ![[o_mux_selector selectedItem] isEnabled] && ![o_mode isEqualToString: @"RTP"] )    {        [o_mux_selector selectItemAtIndex: 0];    }    else if (![[o_mux_selector selectedItem] isEnabled] && [o_mode isEqualToString: @"RTP"] )    {        [o_mux_selector selectItemAtIndex: 8];    }    [self outputInfoChanged: nil];}- (void)outputInfoChanged:(NSNotification *)o_notification{    NSString *o_mode, *o_mux, *o_mux_string;    NSMutableString *o_announce = [NSMutableString stringWithString:@""];    NSMutableString *o_mrl_string = [NSMutableString stringWithString:@":sout=#"];    NSArray *o_sout_options;    [o_mrl_string appendString: o_transcode];    if( [o_display state] == NSOnState )    {        [o_mrl_string appendString: @"duplicate{dst=display,dst="];    }    o_mode = [[o_method selectedCell] title];    o_mux = [o_mux_selector titleOfSelectedItem];    if ( [o_mux isEqualToString: @"AVI"] ) o_mux_string = @"avi";    else if ( [o_mux isEqualToString: @"Ogg"] ) o_mux_string = @"ogg";    else if ( [o_mux isEqualToString: @"MPEG PS"] ) o_mux_string = @"ps";    else if ( [o_mux isEqualToString: @"MPEG 4"] ) o_mux_string = @"mp4";    else if ( [o_mux isEqualToString: @"MPEG 1"] ) o_mux_string = @"mpeg1";    else if ( [o_mux isEqualToString: @"Quicktime"] ) o_mux_string = @"mov";    else if ( [o_mux isEqualToString: @"ASF"] ) o_mux_string = @"asf";    else if ( [o_mux isEqualToString: @"Raw"] ) o_mux_string = @"raw";    else o_mux_string = @"ts";    if( [o_mode isEqualToString: _NS("File")] )    {        if( [o_dump_chkbox state] == NSOnState )        {            NSMutableArray * o_sout_options;            o_sout_options = [NSArray arrayWithObjects:                                    [NSString stringWithString:                                    @":demux=dump"],                                    [NSString stringWithFormat:                                    @":demuxdump-file=%@",                                    [o_file_field stringValue]],                                    nil];            [self setMRL:o_sout_options];            return;        }        else        {                [o_mrl_string appendFormat:                        @"std{access=file,mux=%@,url=\"%@\"}",                        o_mux_string, [o_file_field stringValue]];        }    }    else if( [o_mode isEqualToString: _NS("Stream")] )    {        o_mode = [o_stream_type titleOfSelectedItem];        if ( [o_mode isEqualToString: @"HTTP"] )            o_mode = @"http";        else if ( [o_mode isEqualToString: @"MMSH"] )        {            if ( [o_mux isEqualToString: @"ASF"] ) o_mux_string = @"asfh";            o_mode = @"mmsh";        }        else if ( [o_mode isEqualToString: @"UDP"] )        {            o_mode = @"udp";            if( [o_sap_chkbox state] == NSOnState )            {                if ( ![[o_channel_name stringValue] isEqualToString: @""] )                    [o_announce appendFormat:                        @",sap,name=%@", [o_channel_name stringValue]];                else                    [o_announce appendFormat:@",sap"];            }            if( [o_slp_chkbox state] == NSOnState )            {               if ( ![[o_channel_name stringValue] isEqualToString: @""] )                    [o_announce appendFormat:@                            "slp,name=%@",[o_channel_name stringValue]];                else                    [o_announce appendString: @",slp"];            }        }        if ( ![o_mode isEqualToString: @"RTP"] )        {            [o_mrl_string appendFormat:                        @"std{access=%@,mux=%@,url=\"%@:%@\"%@}",                        o_mode, o_mux_string, [o_stream_address stringValue],                        [o_stream_port stringValue], o_announce];        }        else        {            NSString * o_stream_name;            if (![[o_channel_name stringValue] isEqualToString: @""] )            {                o_stream_name = [NSString stringWithFormat:@",name=%@",                                [o_channel_name stringValue]];            }            else            {                o_stream_name = @"";            }            if ( [o_sap_chkbox state] == NSOnState )            {                [o_announce appendString: @",sdp=sap"];            }            if ([o_rtsp_chkbox state] == NSOnState )            {                [o_announce appendFormat:@",sdp=\"rtsp://%@\"",[o_sdp_url stringValue]];            }            if ([o_http_chkbox state] == NSOnState )            {                [o_announce appendFormat:@",sdp=\"http://%@\"",[o_sdp_url stringValue]];            }            if ([o_file_chkbox state] == NSOnState )            {                [o_announce appendFormat:@",sdp=\"file://%@\"",[o_sdp_url stringValue]];            }            [o_mrl_string appendFormat:                        @"rtp{dst=\"%@\",port=%@%@%@}",[o_stream_address stringValue],                        [o_stream_port stringValue], o_stream_name, o_announce];        }    }    if( [o_display state] == NSOnState )    {        [o_mrl_string appendString: @"}"];    }    o_sout_options = [NSArray arrayWithObjects: o_mrl_string,nil];    [self setMRL:o_sout_options];}- (void)TTLChanged:(NSNotification *)o_notification{    intf_thread_t * p_intf = VLCIntf;    config_PutInt( p_intf, "ttl", [o_stream_ttl intValue] );}- (IBAction)outputFileBrowse:(id)sender{    NSSavePanel *o_save_panel = [NSSavePanel savePanel];    NSString *o_mux_string;    if ( [[o_mux_selector titleOfSelectedItem] isEqualToString: @"MPEG PS"] )        o_mux_string = @"vob";    else if ( [[o_mux_selector titleOfSelectedItem] isEqualToString: @"MPEG 1"] )        o_mux_string = @"mpg";    else if ( [[o_mux_selector titleOfSelectedItem] isEqualToString: @"AVI"] )        o_mux_string = @"avi";    else if ( [[o_mux_selector titleOfSelectedItem] isEqualToString: @"ASF"] )        o_mux_string = @"asf";    else if ( [[o_mux_selector titleOfSelectedItem] isEqualToString: @"Ogg"] )        o_mux_string = @"ogm";    else if ( [[o_mux_selector titleOfSelectedItem] isEqualToString: @"MPEG 4"] )        o_mux_string = @"mp4";    else if ( [[o_mux_selector titleOfSelectedItem] isEqualToString: @"Quicktime"] )        o_mux_string = @"mov";    else if ( [[o_mux_selector titleOfSelectedItem] isEqualToString: @"Raw"] )        o_mux_string = @"raw";    else        o_mux_string = @"ts";    NSString * o_name = [NSString stringWithFormat: @"vlc-output.%@",                         o_mux_string];    [o_save_panel setTitle: _NS("Save File")];    [o_save_panel setPrompt: _NS("Save")];    if( [o_save_panel runModalForDirectory: nil            file: o_name] == NSOKButton )    {        NSString *o_filename = [o_save_panel filename];        [o_file_field setStringValue: o_filename];        [self outputInfoChanged: nil];    }}- (IBAction)streamPortStepperChanged:(id)sender{    [o_stream_port setIntValue: [o_stream_port_stp intValue]];    [self outputInfoChanged: nil];}- (IBAction)streamTTLStepperChanged:(id)sender{    [o_stream_ttl setIntValue: [o_stream_ttl_stp intValue]];    [self TTLChanged:nil];}- (void)transcodeChanged:(NSNotification *)o_notification{    if( [o_transcode_video_chkbox state] == NSOnState )    {        [o_transcode_video_selector setEnabled: YES];        [o_transcode_video_bitrate setEnabled: YES];        [o_transcode_video_scale setEnabled: YES];    }    else    {        [o_transcode_video_selector setEnabled: NO];        [o_transcode_video_bitrate setEnabled: NO];        [o_transcode_video_scale setEnabled: NO];    }    if( [o_transcode_audio_chkbox state] == NSOnState )    {        [o_transcode_audio_selector setEnabled: YES];        [o_transcode_audio_bitrate setEnabled: YES];        [o_transcode_audio_channels setEnabled: YES];    }    else    {        [o_transcode_audio_selector setEnabled: NO];        [o_transcode_audio_bitrate setEnabled: NO];        [o_transcode_audio_channels setEnabled: NO];    }    [self transcodeInfoChanged:nil];}- (void)transcodeInfoChanged:(NSNotification *)o_notification{    NSMutableString *o_transcode_string;    if( [o_transcode_video_chkbox state] == NSOnState ||        [o_transcode_audio_chkbox state] == NSOnState )    {        o_transcode_string = [NSMutableString stringWithString:@"transcode{"];        if ( [o_transcode_video_chkbox state] == NSOnState )        {            [o_transcode_string appendFormat: @"vcodec=\"%@\",vb=\"%@\""                                                            ",scale=\"%@\"",                [o_transcode_video_selector titleOfSelectedItem],                [o_transcode_video_bitrate stringValue],                [o_transcode_video_scale stringValue]];            if ( [o_transcode_audio_chkbox state] == NSOnState )            {                [o_transcode_string appendString: @","];            }        }        if ( [o_transcode_audio_chkbox state] == NSOnState )        {            [o_transcode_string appendFormat: @"acodec=\"%@\",ab=\"%@\"",                [o_transcode_audio_selector titleOfSelectedItem],                [o_transcode_audio_bitrate stringValue]];            if ( ![[o_transcode_audio_channels stringValue]                                            isEqualToString: @""])            {                [o_transcode_string appendFormat: @",channels=\"%@\"",                                   [o_transcode_audio_channels stringValue]];            }        }        [o_transcode_string appendString:@"}:"];    }    else    {        o_transcode_string = [NSString stringWithString:@""];    }    [self setTranscode: o_transcode_string];    [self outputInfoChanged:nil];}- (IBAction)announceChanged:(id)sender{    NSString *o_mode;    o_mode = [[o_stream_type selectedCell] title];    [o_channel_name setEnabled: [o_sap_chkbox state] || [o_slp_chkbox state]                || [o_mode isEqualToString: @"RTP"]];    if ([o_mode isEqualToString: @"RTP"])    {/*        if ([[sender title] isEqualToString: _NS("SAP announce")])        {            [o_rtsp_chkbox setState:NSOffState];            [o_http_chkbox setState:NSOffState];        }*/        if ([[sender title] isEqualToString:_NS("RTSP announce")])        {//            [o_sap_chkbox setState:NSOffState];            [o_http_chkbox setState:NSOffState];            [o_file_chkbox setState:NSOffState];        }        else if ([[sender title] isEqualToString:_NS("HTTP announce")])        {//            [o_sap_chkbox setState:NSOffState];            [o_rtsp_chkbox setState:NSOffState];            [o_file_chkbox setState:NSOffState];        }        else if ([[sender title] isEqualToString:_NS("Export SDP as file")])        {            [o_rtsp_chkbox setState:NSOffState];            [o_http_chkbox setState:NSOffState];        }        if ( [o_rtsp_chkbox state] == NSOnState ||                            [o_http_chkbox state] == NSOnState ||                            [o_file_chkbox state] == NSOnState )        {            [o_sdp_url setEnabled: YES];        }        else        {            [o_sdp_url setEnabled: NO];        }    }    [self outputInfoChanged: nil];}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -