Example #1
0
void AVC1394Control::pause()
{
//printf("AVC1394Control::pause(): 1\n");
	device_lock->lock("AVC1394Control::pause");
	avc1394_vcr_pause(handle, device);
	device_lock->unlock();
}
static gboolean
gst_hdv1394src_stop (GstBaseSrc * bsrc)
{
    GstHDV1394Src *src = GST_HDV1394SRC (bsrc);

    close (READ_SOCKET (src));
    close (WRITE_SOCKET (src));
    READ_SOCKET (src) = -1;
    WRITE_SOCKET (src) = -1;

    iec61883_mpeg2_close (src->iec61883mpeg2);
#if 0
    raw1394_stop_iso_rcv (src->handle, src->channel);
#endif

    if (src->use_avc) {
        raw1394handle_t avc_handle = raw1394_new_handle_on_port (src->port);

        /* pause and stop the VCR */
        if (avc_handle) {
            if (!avc1394_vcr_is_recording (avc_handle, src->avc_node)
                    && (avc1394_vcr_is_playing (avc_handle, src->avc_node)
                        != AVC1394_VCR_OPERAND_PLAY_FORWARD_PAUSE))
                avc1394_vcr_pause (avc_handle, src->avc_node);
            avc1394_vcr_stop (avc_handle, src->avc_node);
            raw1394_destroy_handle (avc_handle);
        } else {
            GST_WARNING_OBJECT (src, "Starting VCR via avc1394 failed: %s",
                                g_strerror (errno));
        }
    }

    raw1394_destroy_handle (src->handle);

    return TRUE;
}