opensuse
[Arriba] [Todas las Listas]

dvgrab wrapper (Era: Re: [opensuse] howto conseguir detalles de 1394 (fi

To: opensuse@xxxxxxxxxxxx
Subject: dvgrab wrapper (Era: Re: [opensuse] howto conseguir detalles de 1394 (firewire) creación de dispositivo en tapón de cámara-en (necesidad BASH prueba))
From: David Haller <dnh@xxxxxxxxxxxx>
Date: Tue, 27 Sep 2011 05:54:34 +0200
Delivered-to: opensuse@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 27 Sep 2011 04:51:19 -0400
Envelope-to: traductor@xxxxxxxxxxx
In-reply-to: <4E80A1F5.3000003@suddenlinkmail.com>
List-archive: <http://lists.opensuse.org/opensuse/>
List-help: <mailto:opensuse+help@opensuse.org>
List-owner: <mailto:opensuse+owner@opensuse.org>
List-post: <mailto:opensuse@opensuse.org>
List-subscribe: <mailto:opensuse+subscribe@opensuse.org>
List-unsubscribe: <mailto:opensuse+unsubscribe@opensuse.org>
Mail-followup-to: opensuse@xxxxxxxxxxxx
Mailing-list: contact opensuse+help@xxxxxxxxxxxx; run by mlmmj
Organization: What?
References: <4E7E9D8B.9070306@suddenlinkmail.com> <4E7EA1AD.8050609@gmail.com> <4E7F74B1.6060402@suddenlinkmail.com> <1317018879.7429.12.camel@acme.pacific> <4E80A1F5.3000003@suddenlinkmail.com>
User-agent: Mutt/1.5.21 (2010-09-15)
Hola,

En *Mon, 26 *Sep 2011, David *C. *Rankin Escribió:
>10:37 *archangel:/*dat_*e/*dv/nuevo> (eco -*e "\*nCapture Empezó: $(fecha
>'+%*b %*e %*T')\*n"; *dvgrab -*rewind -*timestamp -*autosplit=3600 -el formato
>crudo *dcrv- 2>&1) | *tee -un /*dat_*e/*dv/captura.*log
>
>La Captura Empezó: *Sep 26 10:37:52
>
>AV Encontrado/*C dispositivo con *GUID 0*x08004601017*ede99
>Esperando para *DV...
>La Captura Empezó   <== esto es el *dvgrab mensaje
[..]
>  En cosa podría hacer es para esperar para 3-4 minutos después de empezar
>*dvgrab y entonces control para "la Captura mensaje" Empezado -- pero
>francamente, soy *unclear cómo haría aquello de dentro de un guión desde
>procesar en el guión está esperando para *dvgrab para acabar?? Cualesquier ideas
>en cómo para hacer esto sería *welcomed. No sé, quizás empezar un
>temporizador en el guión antes del *dvgrab llamada que espera 5 minutos,
>controles para "la Captura Empezada" y si no encontrado, mata el *dvgrab
>PID y emite un error?? Tendré que cavar más a *BASH para imaginar
>que uno fuera. *dnh, *bkw -- tú escuchando :)

Un poco delicado. Idea básica:

====
#!/Cubo/*bash
*DVLOG=/*dat_*e/*dv/captura.*log

_*dvgrab()
    #unknown{^*exec 3>$*DVLOG
    *dvgrab ... >&3 2>&3 &
    *DVPID="$!"
    Sueño 300
    si ! *grep -*q "La Captura Empezó" $*DVLOG; entonces
        matar -PLAZO $*DVPID
        *ret=127    ### *dvgrab usos únicos 0 y 1 cuando códigos de salida
    más
        esperan $*DVPID
        *ret=$?
    *fi
    *exec 3>&-
    regreso $*ret
}
*i=0
mientras ! Hacer_*dvgrab; hacer
    *dv_*ret=$?
    Prueba $*dv_*ret -*ne 127 && salida $*dv_*ret
    *i=$((*i+1))
    ### aborta después de 5 prueba
    si prueba $*i -*ge 5; entonces
        rotura;
    *fi
hecho
====

*HTH,
-*dnh

-- 
           "Ahora, qué era yo haciendo antes de que yo tan *rudely interrumpido yo?" 
-- 
A *unsubscribe, *e-correo: *opensuse+unsubscribe@xxxxxxxxxxxx
Puesto que órdenes adicionales, *e-correo: *opensuse+help@xxxxxxxxxxxx


Hello,

On Mon, 26 Sep 2011, David C. Rankin wrote:
>10:37 archangel:/dat_e/dv/new> (echo -e "\nCapture Started: $(date
>'+%b %e %T')\n"; dvgrab -rewind -timestamp -autosplit=3600 -format
>raw dcrv- 2>&1) | tee -a /dat_e/dv/capture.log
>
>Capture Started: Sep 26 10:37:52
>
>Found AV/C device with GUID 0x08004601017ede99
>Waiting for DV...
>Capture Started   <== this is the dvgrab message
[..]
>  On thing I could do is to wait for 3-4 minutes after starting
>dvgrab and then check for the "Capture Started" message -- but
>frankly, I'm unclear how I would do that from within a script since
>processing in the script is waiting for dvgrab to finish?? Any ideas
>on how to do this would be welcomed. I don't know, maybe start a
>timer in the script before the dvgrab call that waits 5 minutes,
>checks for the "Capture Started" and if not found, kills the dvgrab
>PID and issues an error?? I'll have to dig more into BASH to figure
>that one out. dnh, bkw -- you listening :)

A bit tricky. Basic idea:

====
#!/bin/bash
DVLOG=/dat_e/dv/capture.log

do_dvgrab() {
    exec 3>$DVLOG
    dvgrab ... >&3 2>&3 &
    DVPID="$!"
    sleep 300
    if ! grep -q "Capture Started" $DVLOG; then
        kill -TERM $DVPID
        ret=127    ### dvgrab only uses 0 and 1 as exit codes
    else
        wait $DVPID
        ret=$?
    fi
    exec 3>&-
    return $ret
}
i=0
while ! do_dvgrab; do
    dv_ret=$?
    test $dv_ret -ne 127 && exit $dv_ret
    i=$((i+1))
    ### abort after 5 tries
    if test $i -ge 5; then
        break;
    fi
done
====

HTH,
-dnh

-- 
           "Now, what was I doing before I so rudely interrupted myself?" 
-- 
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx


<Anterior por Tema] Tema Actual [Siguiente por Tema>