* streamout.cpp : wxWindows plugin for vlc
*****************************************************************************
* Copyright (C) 2000-2001 VideoLAN
- * $Id: streamout.cpp,v 1.19 2003/07/04 15:20:49 adn Exp $
+ * $Id: streamout.cpp,v 1.20 2003/07/06 16:13:11 gbazin Exp $
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
*
enum
{
- SAP_ANNOUNCE = 0
+ SAP_MISC = 0
};
VideoTranscEnable_Event, VideoTranscCodec_Event, VideoTranscBitrate_Event,
AudioTranscEnable_Event, AudioTranscCodec_Event, AudioTranscBitrate_Event,
- SAPType_Event, SAPAddr_Event
+ SAPMisc_Event, SAPAddr_Event
};
BEGIN_EVENT_TABLE(SoutDialog, wxDialog)
EVT_CHECKBOX(VideoTranscEnable_Event, SoutDialog::OnTranscodingEnable)
EVT_CHECKBOX(AudioTranscEnable_Event, SoutDialog::OnTranscodingEnable)
EVT_COMBOBOX(VideoTranscCodec_Event, SoutDialog::OnTranscodingChange)
+ EVT_TEXT(VideoTranscCodec_Event, SoutDialog::OnTranscodingChange)
EVT_COMBOBOX(AudioTranscCodec_Event, SoutDialog::OnTranscodingChange)
+ EVT_TEXT(AudioTranscCodec_Event, SoutDialog::OnTranscodingChange)
EVT_COMBOBOX(VideoTranscBitrate_Event, SoutDialog::OnTranscodingChange)
+ EVT_TEXT(VideoTranscBitrate_Event, SoutDialog::OnTranscodingChange)
EVT_COMBOBOX(AudioTranscBitrate_Event, SoutDialog::OnTranscodingChange)
+ EVT_TEXT(AudioTranscBitrate_Event, SoutDialog::OnTranscodingChange)
/* Events generated by the misc panel */
- EVT_CHECKBOX(SAPType_Event, SoutDialog::OnSAPTypeChange)
+ EVT_CHECKBOX(SAPMisc_Event, SoutDialog::OnSAPMiscChange)
EVT_TEXT(SAPAddr_Event, SoutDialog::OnSAPAddrChange)
END_EVENT_TABLE()
{
if( !dup_opts.IsEmpty() ) dup_opts += wxT(",");
dup_opts += wxT("dst=std{access=file,mux=");
- dup_opts += encapsulation + wxT(",url=");
- dup_opts += file_combo->GetValue() + wxT("}");
+ dup_opts += encapsulation + wxT(",url=\"");
+ dup_opts += file_combo->GetValue() + wxT("\"}");
}
if( access_checkboxes[HTTP_ACCESS_OUT]->IsChecked() )
{
dup_opts += net_addrs[UDP_ACCESS_OUT]->GetLineText(0);
dup_opts += wxString::Format( wxT(":%d"),
net_ports[UDP_ACCESS_OUT]->GetValue() );
- }
- if( access_checkboxes[UDP_ACCESS_OUT]->IsChecked() && misc_checkboxes[SAP_ANNOUNCE]->IsChecked() ) /* SAP only if UDP ÃÃ*/
- {
- dup_opts += wxT(",sap=");
- dup_opts += misc_addrs[SAP_ANNOUNCE]-> GetLineText(0);
- }
- if( access_checkboxes[UDP_ACCESS_OUT]->IsChecked() )
- {
- dup_opts += wxT("}"); /* the bracket must be closed after SAP ! */
+
+ /* SAP only if UDP */
+ if( sap_checkbox->IsChecked() )
+ {
+ dup_opts += wxT(",sap=");
+ dup_opts += sap_addr->GetLineText(0);
+ }
+
+ dup_opts += wxT("}");
}
if( access_checkboxes[RTP_ACCESS_OUT]->IsChecked() )
{
// wxFlexGridSizer *sizer = new wxFlexGridSizer( 2, 4, 20 );
wxStaticBox *panel_box = new wxStaticBox( panel, -1,
- wxU(_("Miscellaneous Options")) );
+ wxU(_("Miscellaneous Options")) );
wxStaticBoxSizer *panel_sizer = new wxStaticBoxSizer( panel_box,
wxVERTICAL );
- static const wxString misc_output_array[] =
- {
- wxU(_("SAP Announce"))
- };
-
- misc_checkboxes[SAP_ANNOUNCE] = new wxCheckBox( panel,SAPType_Event,
- misc_output_array[SAP_ANNOUNCE] );
- misc_subpanels[SAP_ANNOUNCE] = new wxPanel( panel, -1 );
-
- /* SAP Row */
-
+ /* SAP Row */
wxStaticText *label;
wxFlexGridSizer *subpanel_sizer;
- subpanel_sizer = new wxFlexGridSizer( 4, 1, 20 );
- label = new wxStaticText( misc_subpanels[SAP_ANNOUNCE], -1, wxU(_("Channel Name ")) );
- misc_addrs[SAP_ANNOUNCE] = new wxTextCtrl( misc_subpanels[SAP_ANNOUNCE],
- SAPAddr_Event,
- wxT(""), wxDefaultPosition,
- wxSize( 200, -1 ), wxTE_PROCESS_ENTER);
+ misc_subpanels[SAP_MISC] = new wxPanel( panel, -1 );
+ subpanel_sizer = new wxFlexGridSizer( 4, 2, 20 );
- subpanel_sizer->Add( label, 0,
+ sap_checkbox = new wxCheckBox( misc_subpanels[SAP_MISC], SAPMisc_Event,
+ wxU(_("SAP Announce")) );
+ label = new wxStaticText( misc_subpanels[SAP_MISC], -1,
+ wxU(_("Channel Name ")) );
+ sap_addr = new wxTextCtrl( misc_subpanels[SAP_MISC], SAPAddr_Event,
+ wxT(""), wxDefaultPosition,
+ wxSize( 200, -1 ), wxTE_PROCESS_ENTER);
+
+ subpanel_sizer->Add( sap_checkbox, 0,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL );
- subpanel_sizer->Add( misc_addrs[SAP_ANNOUNCE], 1, wxEXPAND |
+ subpanel_sizer->Add( label, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL );
+ subpanel_sizer->Add( sap_addr, 1, wxEXPAND |
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL );
- misc_subpanels[SAP_ANNOUNCE]->SetSizerAndFit( subpanel_sizer );
+ misc_subpanels[SAP_MISC]->SetSizerAndFit( subpanel_sizer );
- /* Stuff everything into the main panel */
-
- panel_sizer->Add( misc_checkboxes[SAP_ANNOUNCE], 0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL, 5 );
- panel_sizer->Add( misc_subpanels[SAP_ANNOUNCE], 1,
+ /* Stuff everything into the main panel */
+ panel_sizer->Add( misc_subpanels[SAP_MISC], 1,
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL, 5 );
- panel->SetSizerAndFit( panel_sizer );
-
- /* Update access type panel */
+ panel->SetSizerAndFit( panel_sizer );
- misc_checkboxes[SAP_ANNOUNCE]->Disable();
- misc_subpanels[SAP_ANNOUNCE]->Disable();
+ /* Update misc panel */
+ misc_subpanels[SAP_MISC]->Disable();
+ sap_addr->Disable();
- return panel;
+ return panel;
}
wxPanel *SoutDialog::EncapsulationPanel( wxWindow* parent )
wxT("H263"),
wxT("I263"),
wxT("WMV1"),
+ wxT("WMV2"),
+ wxT("MJPG")
};
static const wxString vbitrates_array[] =
{
static const wxString acodecs_array[] =
{
wxT("mpga"),
+ wxT("mp3"),
wxT("a52")
};
static const wxString abitrates_array[] =
switch( i_access_type )
{
case UDP_ACCESS_OUT:
- {
- misc_checkboxes[SAP_ANNOUNCE]->Enable( event.GetInt() );
- }
+ misc_subpanels[SAP_MISC]->Enable( event.GetInt() );
+
case RTP_ACCESS_OUT:
for( i = 1; i < ENCAPS_NUM; i++ )
{
}
/*****************************************************************************
- * SAPType panel event methods.
+ * SAPMisc panel event methods.
*****************************************************************************/
-void SoutDialog::OnSAPTypeChange( wxCommandEvent& event )
+void SoutDialog::OnSAPMiscChange( wxCommandEvent& event )
{
- i_sap_type = event.GetId()-SAPType_Event;
- misc_subpanels[i_sap_type]->Enable( event.GetInt() );
-
+ sap_addr->Enable( event.GetInt() );
UpdateMRL();
}
UpdateMRL();
}
-
/*****************************************************************************
* File access output event methods.
*****************************************************************************/