Laden...

Forenbeiträge von Feinfinger Ingesamt 38 Beiträge

30.07.2012 - 10:48 Uhr

Ich bin durch Zufall fündig geworden und auf das komplette gowk project gestoßen wo die g.729 dll dabei war und jetzt funzt es!
🙂link

27.07.2012 - 13:00 Uhr

Den kenne ich, leider konnte ich aber die dort verwendete g729.dll nicht finden die da verwendet wird. Ich stoße immer nur auf die g729.lib aber dieser Dateityp lässt sich meines wissens nicht in c# einbinden und mein c++ liegt so weit zurück das ich kaum noch einen eigenen Wrapper zusammenbekomme...

Einen G729 acm Codec habe ich auch gefunden von Vidosystem aber wenn ich versuche die Aufnahme zu starten bekomme ich nur die Meldung :> Fehlermeldung:

Speicher kann nicht reserviert werden, da keine Größe festgelegt wurde.

27.07.2012 - 08:57 Uhr

so Lizenztechnisch bin ich schonmal weiter

G729 codec licenses (Übersetzt mit Google Translate)

aber gibts es auch schon einen fertigen Wrapper für die dll ?

26.07.2012 - 18:20 Uhr

Ok das wäre die dll zum selber compilieren aber was zum Thema Lizenzkosten hab ich vergebens gesucht!? 🙁

26.07.2012 - 16:42 Uhr

Hallo,

ich würde gerne den g729 für mein aktuelles Projekt verwenden aber ich tue mich irgenwie schwer Infos darüber zu finden wo man die entsprechende Dll herbekommt bzw. die Lizenzen!?
Kennt jemand von Euch einen passenden deutschen Reseller?

Gruß
Feinfinger

19.07.2012 - 13:46 Uhr

Hallo Zusammen,

ich habe mir ein kleines Voip Tool geschrieben, welches bei UMTS auch wunderbar funktioniert. Habe ich aber nur EDGE funktioniert nur der Upload zum Server super aber nicht der Download, der gerät ins stocken. Dabei sind das gerdae mal 4kbyte/s!
Das ganze läuft im grunde genommen über eine simple TCP/IP Verbindung.

Gibts es irgendwelche einstellungen am Socket die ich noch nicht berücksictigt habe???

Gruß
Feinfinger

01.02.2012 - 11:14 Uhr

Hallo Zusammen,

habe ich die Möglichkeit, wenn gleichzeit über zwei TCP Sockets Daten versendet werden, zu sagen, dass die Daten von einem der beiden mit priorität versendet werden?
Wobei der Socket mit priorität sehr viel kleinere Pakete versenden würde als der andere.

Gruß
Lars

27.07.2010 - 14:43 Uhr

Hallo Zusammen,

ich versuche gerade mir anhand der Beispiele aus der DirectShow.net eine Testapplikation zu bauen welche folgende Eigenschaften haben soll:

  1. Video und Sound von der Webcam abgreifen
  2. Video Preview anzeigen
  3. Sound&Video Daten komprimieren
  4. Daten zwecks versenden über das Netzwerk in Pakete unterteilen.

1-3 habe ich wahrscheinlich mehr schlecht als recht gelöst:

Die Filter zum Abgreifen der Kameradaten gesetzt

                     hr = m_FilterGraph.AddSourceFilterForMoniker(dev.Mon, null, dev.Name, out capFilter);
                     hr = m_FilterGraph.AddSourceFilterForMoniker(capADevices[0].Mon, null, capADevices[0].Name, out audFilter);

und einen ASF Filter erstellt welcher die Daten aufnimmt und komprimiert


            DirectShowLib.IFileSinkFilter pTmpSink = null;
            DirectShowLib.IBaseFilter asfWriter = null;
            
            int hr = capGraph.SetOutputFileName(DirectShowLib.MediaSubType.Asf, szOutputFileName, out asfWriter, out pTmpSink);
            Marshal.ThrowExceptionForHR(hr);

            try
            {
                DirectShowLib.IConfigAsfWriter lConfig = asfWriter as DirectShowLib.IConfigAsfWriter;

                // Windows Media Video 8 for Dial-up Modem (No audio, 56 Kbps)
                // READ THE README for info about using guids
                Guid cat = new Guid(0x6E2A6955, 0x81DF, 0x4943, 0xBA, 0x50, 0x68, 0xA9, 0x86, 0xA7, 0x08, 0xF6);
               //320x240 fair quality with stereo audio ca. 2mb / min
                Guid Gui = new Guid(0x3510A862, 0x5850, 0x4886, 0x83, 0x5F, 0xD7, 0x8E, 0xC6, 0xA6, 0x40, 0x42);
                hr = lConfig.ConfigureFilterUsingProfileGuid(Gui);
                Marshal.ThrowExceptionForHR(hr);
               
            }
            finally
            {
                Marshal.ReleaseComObject(pTmpSink);
            }

Das ganze ausgeben und in eine Datei schreiben ist kein Problem


                    hr = capGraph.RenderStream(DirectShowLib.PinCategory.Preview, DirectShowLib.MediaType.Video, capFilter, null, null);
                    DirectShowLib.DsError.ThrowExceptionForHR(hr);
                    hr = capGraph.RenderStream(DirectShowLib.PinCategory.Capture, DirectShowLib.MediaType.Video, capFilter, null, asfWriter);
                   
                    DirectShowLib.DsError.ThrowExceptionForHR(hr);
                    hr = capGraph.RenderStream(DirectShowLib.PinCategory.Capture, DirectShowLib.MediaType.Audio, audFilter, null, asfWriter);
               
                    DirectShowLib.DsError.ThrowExceptionForHR(hr);

Aber ich möchte keine Datei als ausgabe sondern etwas was sich "on the fly" versenden lässt. Daher kam ich zu dem Punkt Samplegrabber aber wo hänge ich den drann, denn der asf Filter hat keinen Ausgang dafür definiert und unkomprimiert möchte ich es auch nicht wegschicken!?
Kann jemand einem blutigen Anfänger auf dem Gebiet helfen oder kennt jemand ein gutes Bsp. ?

Soweit zu meinem bisherigen Ansatz :


sampGrabber = new SampleGrabber() as ISampleGrabber;

                     // Configure the sample grabber
                     IBaseFilter baseGrabFlt = sampGrabber as IBaseFilter;
                     AMMediaType media = new AMMediaType();

                     // Set the media type to Video/RBG24
                     media.majorType = MediaType.Video;
                     media.subType = MediaSubType.RGB24;
                     media.formatType = FormatType.VideoInfo;
                     hr = sampGrabber.SetMediaType(media);
                     DsError.ThrowExceptionForHR(hr);

                     DsUtils.FreeAMMediaType(media);
                     media = null;
                     DirectShowLib.IPin pSampleIn = DsFindPin.ByDirection(baseGrabFlt, PinDirection.Input, 0);
                     DirectShowLib.IPin VideoPin = DsFindPin.ByDirection(asfWriter, PinDirection.Output, 0);
                     // Configure the samplegrabber
                     hr = sampGrabber.SetCallback(Call, 1);
                     DsError.ThrowExceptionForHR(hr);
                     hr = m_FilterGraph.AddFilter(baseGrabFlt, "Ds.NET Grabber");
                     DsError.ThrowExceptionForHR(hr);

                     hr = m_FilterGraph.Connect(VideoPin, pSampleIn);
                     DsError.ThrowExceptionForHR(hr);

Der VideoPin ist hierbei NULL.

Gruß
Lars

19.03.2010 - 08:41 Uhr

Moin,

ich habe XP Prof. SP3

18.03.2010 - 11:11 Uhr

Hallo Zusammen,

ich habe heute mein HTC HD2 mit WM6.5 bekommen und bin kurz nach dem anschließen des USB Kabels schon auf das erste Problem gestoßen mit Visual Studio 2005.

Fehler 1 Bootstrapper konnte nicht geladen werden. Device Connectivity Component

Nun habe ich mal ein bischen gegoogelt und bin zum einen auf den Hinweis gestoßen das man unter lokalen Einstellungen dieses eine Verzeichniss löschen sollte oder das man Zertifikate nachinstallieren solle.
Beides hat nun nicht geholfen und irgendwie werde ich das Gefühl nicht los das VS2005 generell schon veraltet ist für WM6.5 !?

Gruß
Lars

16.07.2009 - 07:54 Uhr

hat sich erledigt! Habe gestern die Aussage bekommen das der verwendete Cisco VPN Client nach aktivierung alle anderen Verbindungen quasi dominiert 🙁

10.07.2009 - 11:32 Uhr

Hallo,

ich versuche gerade in einemTestprogramm festzulegen welches Netzwerk ein TcpClient zu benutzen hat. Die Notwendigkeit dafür liegt in dem Problem das ich einen Server im Internet habe den ich über das normale Umts WAN erreiche aber baue ich einen VPN Tunnel zusätzlich auf hat sich was mit verbindung zum Server.
Also habe ich mir folgendes überlegt:

            System.Net.Sockets.TcpClient Client = new System.Net.Sockets.TcpClient();
            IPEndPoint End = null;
            System.Net.NetworkInformation.NetworkInterface[] Arr = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();
            foreach (System.Net.NetworkInformation.NetworkInterface I in Arr)
            {
                System.Net.NetworkInformation.IPInterfaceProperties P = I.GetIPProperties();
                if (I.OperationalStatus == System.Net.NetworkInformation.OperationalStatus.Up &&
                    I.NetworkInterfaceType != System.Net.NetworkInformation.NetworkInterfaceType.Tunnel &&
                    P.GatewayAddresses.Count > 0 && I.Description.Contains("VPN")==false)
                {
                    End = new IPEndPoint(P.UnicastAddresses[0].Address, 0);
                    MessageBox.Show(I.Description);
                    break;
                }
                
            }
            Client.Client.Bind(End);

            Client.Client.Connect(Server, 44444);

was leider nicht zum erfolg führte obwohl er zuverlässig die WAN Verbindung wählt und ich meine das ich die Funktion "Bind" richtig verwende!?
Hat jemand eine Idee was ich falsch gemacht haben könnte?

Gruß
Lars

14.01.2009 - 12:55 Uhr

Hallo,

ich habe vermutlich ein Rechte Problem bei der Verteilung von chm-Hilfe Dateien über einen selbstgeschriebene Update-Service. Es läuft dabei so ab das ich bei einer neuen Version die Datei per TCP/IP auf einen Server im Internet schicke dort auf der Festplatte zwischenspeichere und von dort aus auf die jeweiligen Clients verteile per TCP/IP. Bei Dlls z.b. funktioniert das ohne Probleme aber wird eine chm-Datei auf einen Client runtergeladen lässt sich diese nicht mehr öffnen oder ich bekomme nur die Anfangseite ohne Menu, kopiere ich diese Datei manuell auf den Client per Netzwerkfreigabe ist alles i.O. . Beide chm-Dateien sind gleich groß und die Übertragung kann auch keine Fehler haben da das dazugehörige Programm mir Fehler aus den ausgetauschten Dlls melden würde, bleibt nur noch ein Unterschied in den Rechten durch die unterschiedlichen Übertragungswege aber welcher?

Gruß
Feinfinger

15.09.2008 - 11:13 Uhr

Für andere die hier suchen:

Die Tapilib.dll einbinden aus diesem DemoProjekt
http://www.peterfoot.net/RetrieveIMEIThroughTAPI.aspx


class IMEI
    {
        //Import cellcore.dll

        [DllImport("cellcore.dll")]
        internal static extern int lineGetGeneralInfo(IntPtr hLine, byte[] bCache);

        // code to get IMEI
        public  string  getIMEIInfo()
        {
            
            string IMEI;
            Tapi t = new Tapi();
            t.Initialize();
            Line _line = t.CreateLine(0, LINEMEDIAMODE.INTERACTIVEVOICE, LINECALLPRIVILEGE.MONITOR);

            byte[] buffer = new byte[512];
            //write size
            BitConverter.GetBytes(512).CopyTo(buffer, 0);

            if (lineGetGeneralInfo(_line.hLine, buffer) != 0)
            {
                throw new System.ComponentModel.Win32Exception (System.Runtime.InteropServices.Marshal.GetLastWin32Error(), "TAPI Error: " + System.Runtime.InteropServices.Marshal.GetLastWin32Error().ToString("X"));
            }

            int serialsize = BitConverter.ToInt32(buffer, 36);
            int serialoffset = BitConverter.ToInt32(buffer, 40);
            IMEI = System.Text.Encoding.Unicode.GetString(buffer, serialoffset, serialsize);
            IMEI = IMEI.Substring(0, IMEI.IndexOf(Convert.ToChar(0)));


            _line.Dispose();
            t.Shutdown();
            return IMEI;
        }
    }
15.09.2008 - 10:55 Uhr

zumindest weis ich dadurch das für die IMEI die letzten beiden stellen abgeschitten werden um wieder auf 15 byte zu kommen.

15.09.2008 - 10:27 Uhr

Den Beitrag kenn ich wohl.

  1. Problem: Die Tapi Dll von opennetcf ist kostenpflichtig
  2. Problem: Die IMEI die da ermittelt wird ist 17 byte lang, aber soweit ich weis
    darf sie laut telefonstandart nur 15 byte lang sein!?
15.09.2008 - 09:06 Uhr

Das Ding ist recht mächtig aber die IMEI konnte ich auch dort nicht finden. 🙁

11.09.2008 - 14:04 Uhr

Hallo,

ich suche einen weg die Geräte IMEI unter Windows Mobile auszulesen.
Irgenwie muss es ja gehen da diese ja unter Einstellungen -> Geräte-Information
angezeigt wird.

24.07.2008 - 13:22 Uhr

das kommt schon hin,letzten endes ist es die coredll.dll

        [DllImport("coredll.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern int CreateFile(

          string lpFileName,                        
          uint dwDesiredAccess,                      
          int dwShareMode,                          
          int lpSecurityAttributes, 
          int dwCreationDisposition,                
          int dwFlagsAndAttributes,                 
          int hTemplateFile                        
        );
24.07.2008 - 12:10 Uhr

Ich suche unter CF 2.0 eine möglichkeit CreateFile bzw. ReadFile zu verwenden, unter normalen Bedingungen würde ich [DllImport("kernel32.dll")] verwenden aber die nette Dll scheints unter Windows Mobile nicht zu geben!?

20.02.2008 - 10:10 Uhr

Hallo,

ich suche gerade eine Möglichkeit von einem Destop Pc aus ein Programm auf einem Windows CE5.0 Gerät zu steuern. Ich verwende bereits die OpenNETCF um eine Replikation von Daten zu einem entfernten Server zu ermöglichen ohne das das Gerät selber eine TCP/IP Verbindung benötigt, nur wenn die Replikation beendet ist muss ich der Software auf dem Gerät irgendwie sagen das es die Daten neu laden muss.

Die einzige Lösung die mir bisher eingefallen ist, ist eine zweite kleine Applikation zu schreiben die ich über RAPI CreateProcess aufrufe und die dann eine Globale Message schickt aber wirklich begeistern tut mich das nicht. 🙁

02.11.2007 - 12:58 Uhr

Bin doch noch selbst drauf gekommen :

                    StreamReader SReader = new StreamReader(RecStream, Encoding.Unicode);
                    XmlTextReader Reader = new XmlTextReader(SReader);
                    DsClient.ReadXml(Reader);
                    Reader.Close();
02.11.2007 - 12:16 Uhr

verwendetes Datenbanksystem: XML

Hallo,

Ich übertrage typisierte Datasets per Tcp/Ip zum Datenabgleich und damit ich die Umlaute in den Datensätzen nicht verliere wandle ich die XMLDaten in Unicode um:

     XmlWriterSettings sett = new XmlWriterSettings();
            sett.ConformanceLevel = ConformanceLevel.Auto;
            sett.Encoding = Encoding.Unicode;
            XmlWriter Writer = XmlWriter.Create(Stream, sett);
            dataSetClient.WriteXml(Writer);

Das kommt auch schön brav an am server und alle Umlaute sind erhalten geblieben aber das DataSet kann das ganze nicht mehr einlesen aufeinmal !?

                    XmlReaderSettings Settings = new XmlReaderSettings ();
                    Settings.ConformanceLevel = ConformanceLevel.Auto;
                    XmlReader Reader = XmlReader.Create(RecStream, Settings);
                    DsClient.ReadXml(Reader);
                    Reader.Close();
03.09.2007 - 11:47 Uhr

das Verhalten konnte ich auch beobachten bei mir also dann doch zu Fuß

           string InClause = "";
            foreach (DataRow R in DsMain.WORKTODOSTATUS)
            {
                InClause += R["ID"].ToString() + ",";
            }
            if (InClause != "" || Workstatus != "")
            {
                WorkTodostatus = InClause.Remove(InClause.Length - 1);
                string Sql = REP_SQL.sql_worknotes.Replace("%2", Workstatus);
                Sql = Sql.Replace("%1", WorkTodostatus);
                OdbcDataAdapter Adapter = new OdbcDataAdapter(Sql, MainCon);
                Adapter.Fill(DsMain.WORKNOTES);
                Adapter.Dispose();
            }[
31.08.2007 - 10:33 Uhr

verwendetes Datenbanksystem👍DBC Firebird

Ich arbeite mit typisierten Datasets und habe nun einem Tableadapter mit einer Select abfrage die eine über "IN" einen Parameter mit eine kommagetrennten Liste übergeben bekommt :
SELECT ID, IDENT, PCONF_ID, NOTES, LOV_STATUS, TYP_ID, CHANGED
FROM WORKFOLDERS
WHERE (PCONF_ID IN (?))

Den Parameter hab ich als String konfigurert aber ich bekomme keine Werte zurück wenn ich das Fill aufrufe, wenn ich aber das statement so direkt in dem
Datenbankeditor ausführe und die generierte Liste da einfüge funktioniert es.
Also liegt es daran wie der Parameter vom Visual Studio interpretiert wird aber ich hab keine Ahnung wie man ihn anders konfiguriern sollte !?

28.02.2007 - 16:55 Uhr

den seed habe ich jeweils auch schonmal geändert, daran liegt es leider nicht. Man müsste die möglichkeit haben über den tableadapter einzelne Datensätze zuholen anstatt nur tabellenweise! Dann könnte ich den neu eingügten Datensatz nämlich zwischen Update und Fill löschen aber so wüsste ich danach nicht mehr welcher jetzt der neue war .

28.02.2007 - 16:45 Uhr

die id wird per autoincr. des datasets erzeugt nach dem einfügen und quasi als zwischenlösung verwendet bis der datensatz über die Fill Methode mit der in der Datenbank vergebenen Id aktualisiert wird. Das Funktioniert ja auch komischerweise wenn clearbeforefill false ist aber nur wenn mind 2 datensätze vorhanden sind ! Folglich muss die Fill Methode den Datensatz irgendwie wiedererkennen können auch wenn sich der Primärschlüssel geändert hat.

28.02.2007 - 16:33 Uhr

die einstellung ist aber notwendig da ich aufgrund von fremdschlüsseln nicht einfach so eine Tabelle löschen kann 🙁
vs2005 ist leider nicht so intelligent diese für die Fill funktion ausser kraft zu setzen.

28.02.2007 - 15:00 Uhr

Hallo,

folgendes Problem tritt bei mir auf. Ich habe eine leere Tabelle bei der ich einen neuen Datensatz einfüge. Diesen schicke ich dann per "Update" des tableadapters runter zur Datenbank und aktualsiere die Tabelle danach mit "Fill" mit der eigenschaft "ClearBeforeFill" = false. Dabei aktualisiert er den neu angelegten datensatz nicht, sondern legt den aus der Datenbank gelesenen neu an so das ich 2 mal den gleichen hab! Das tritt nicht auf sobald vorher schon ein Datensatz vorhanden war. Dann aktualsiert er ihn schön brav.

Sinn der ganzen Geschichte war eigentlich das ich aus sämtlichen Insert Statements der Adapter den Primärschlüssel genommen hab und so beim aktualisieren mit der Datenbank den dort über den Generator erzeugten Schlüssel zurückbekomme.

12.02.2007 - 16:24 Uhr

Yup das wars , alte gewohnheiten sag ich nur, in der borland VCL wurden nämlich Komponenten standartmäßig protected angelegt!
Vielen Dank ! =)

12.02.2007 - 16:05 Uhr

das ist schon ein objekt des kindes , deshalb wundert es mich das ich nicht über GetFields des Types darauf zugreifen kann, als Typname steht da nämlich die bezeichnung des kindes!

12.02.2007 - 15:49 Uhr

die sache ist ja das ich in funktionen der vaterklasse die das kind geerbt hat auf die bindingsources des kindes zugreifen möchte.

12.02.2007 - 15:12 Uhr

Hallo,

ich habe ein Vaterformular und ein davon abgeleitets Kind welches mehre bindingsources enthält. wenn ich jetzt versuche innerhalb des vaters auf die bindingsources zuzugreifen findet er diese weder in

this.components.Components

noch in der feldliste des formulartyps. bleibt die frage gibt es überhaupt einen gemeinsamen container für components wie bindingsource oder datasets?

Gruß
feinfinger

01.02.2007 - 09:18 Uhr

sieht zumindest interessant aus , auf die Schnittstelle bin ich noch nicht gestoßen bisher! 👍

31.01.2007 - 13:40 Uhr

intefaces hab ich schon durch da laufe ich auf das gleiche problem.
Obwohl da wäre die Frage ob man ein Formular vom typ interface erstellen kann damit dieses die eigenschaften annimmt?

31.01.2007 - 12:27 Uhr

gut in c++ musste man halt selber drauf achten was man in einen solchen Container reinsteckt aber die freiheit würde mir jetzt fehlen. 🙁

In einem schlauen Buch bin ich jetzt auf einen eintrag gestoßen wo ein einschränkungstyp

where T : (base class)" 

auftaucht, leider ohne bsp. könnte mir das weiterhelfen?

31.01.2007 - 12:14 Uhr

bedingung ja aber das problem zeigt sich eigentlich anders:

   public class CustomAdapter<D> where D : Component, new()
    {
        D Instance = null;
        public D GetInstance()
        {
            if (Instance!=null)
            {
                Instance = new D();
            }
            return Instance;
        }
    }

CustomAdapter<Component> Adapter = null;
CustomAdapter<KontakteTableAdapter> KontaktAdapter = new CustomAdapter<KontakteTableAdapter>();
Adapter = KontaktAdapter;

Obwohl der Tableadapter von Component abgeleitet ist und die entsprechende Vaterklasse in der where Bedingung verankert ist verweigert er die zuordnung "Adapter = KontaktAdapter" .

31.01.2007 - 11:49 Uhr

Hallo,

als ehemaliger C++ Entwickler war ich es gewohnt das ich bei Templates folgende Möglichkeit hatte :

 Template<vaterklasse> *Pointer = new Template<Kindklasse>();

Bei C# allerdings würde er anmeckern das die typparameter nicht identisch sind obwohl sie voneinander vererbt wurden!

Gibt es dafür eine Lösung in C#?

Anwendungsbeispiel wäre ein Formularcontainer der für jeden Baumknoten ein eigenes Detailformular erzeugen und verwalten kann.