Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Video4Linux Problem in C

  1. #1
    Registrierter Benutzer
    Registriert seit
    13.05.2004
    Beiträge
    5

    Video4Linux Problem in C

    Hi erst einmal,

    ich bin neu und freue mich, mich eurer Hilfe bedienen zu können.

    Ich habe ein kleines Problem mit video4linux. Ich versuche meine TV Karte anzusprechen, um die libraries mal anzutesten, jedoch funktioniert es nicht so wie ich dachte. Im Grunde ist es etwas ganz simples.
    Ich will die Groesse meiner momentanen Auflösung der TV-Karte verändern, dazu verwende ich, so wie in der /usr/include/linux/videodev.h beschrieben, die video_window Struktur, mit folgendem Codeabschnitt.

    // Einlesen der Daten
    if (ioctl(fd, VIDIOCGWIN, &video_win) == -1)
    perror("videoinfo: Can't get capabilities");
    else {
    video_win.width = current.width;
    video_win.height = current.height;
    }

    // Schreiben der Daten
    if (ioctl(fd, VIDIOCSWIN, &video_win) == -1)
    perror("videoinfo: Can't set window dimensions");

    Jedoch gibt er mir beim Versuch die Struktur zu Verwenden den Fehler: Invalid argument zurück und ich kann jetzt nicht sagen, ob ich da einen Denkfehler habe oder ob es an meiner TV Karte liegt und nicht unterstuetzt wird. Doch bezweifle ich mein zweite Annahme.

    Den komplette Code habe ich online gestellt unter, falls ihn jemand compilieren möchte: http://www-public.tu-bs.de:8080/~y00...orials/video.c

    Es werden keine weiteren Libs benötigt und so wird es einfach mit: gcc video.c -o video kompiliert.

    Danke,
    Reset
    Geändert von [_El_ReSeT_] (14-05-2004 um 00:07 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    13.05.2004
    Beiträge
    5
    Gut, ich habe die Lösung auf folgender Seite gefunden:
    http://www.inf.ed.ac.uk/teaching/mod.../v4lintro.html

    so verändert sich der Qellcode an den Betreffenden Zeilen, so:

    if (ioctl(fd, VIDIOCGWIN, &video_win) == -1)
    perror("videoinfo: Can't get capabilities");
    else {
    //video_win.x = video_win.y = video_win.chromakey = 0;
    video_win.width = current.width;
    video_win.height = current.height;
    video_win.flags = 0;
    }

    if (ioctl(fd, VIDIOCSWIN, &video_win) == -1)
    perror("videoinfo: Can't set window dimensions");

    Ein kleines flag war dafür verantwortlich, wie soll man das denn rausbekommen, wenn nicht durch Zufall.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •