diff options
author | David Schleef <ds@schleef.org> | 2003-12-22 01:47:09 +0000 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2003-12-22 01:47:09 +0000 |
commit | ce51f6173ca1c37d90f8e2e316d90316583d7755 (patch) | |
tree | 270b121765a11455f5bf8166b526d7ac336dc56c /ext/raw1394/gstdv1394src.c | |
parent | f43f0a9fd781bafab689e46bd936af9cb5ed2690 (diff) |
Merge CAPS branch
Original commit message from CVS:
Merge CAPS branch
Diffstat (limited to 'ext/raw1394/gstdv1394src.c')
-rw-r--r-- | ext/raw1394/gstdv1394src.c | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c index 6f3b8d2e..0bf5c83b 100644 --- a/ext/raw1394/gstdv1394src.c +++ b/ext/raw1394/gstdv1394src.c @@ -62,14 +62,14 @@ gst_dv1394src_factory (void) "src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_CAPS_NEW ( + GST_STATIC_CAPS ( "dv1394src", "video/dv", /* gst_props_new ( "format", GST_PROPS_LIST ( - GST_PROPS_STRING ("NTSC"), - GST_PROPS_STRING ("PAL") + G_TYPE_STRING ("NTSC"), + G_TYPE_STRING ("PAL") ), NULL) ), @@ -167,7 +167,6 @@ gst_dv1394src_init (GstDV1394Src *dv1394src) /* initialized when first header received */ dv1394src->frameSize=0; - dv1394src->pool = NULL; dv1394src->buf = NULL; dv1394src->frame = NULL; @@ -237,22 +236,20 @@ int gst_dv1394src_iso_receive(raw1394handle_t handle,int channel,size_t len,quad int dif_block = p[2]; /* if we are at the beginning of a frame, - we set buf=frame, and get a new buffer from pool for frame + we set buf=frame, and alloc a new buffer for frame */ if (section_type == 0 && dif_sequence == 0) { // dif header - if( dv1394src->pool == NULL ) { + if( !dv1394src->negotiated) { // figure format (NTSC/PAL) if( p[3] & 0x80 ) { // PAL dv1394src->frameSize = PAL_FRAMESIZE; GST_DEBUG ("PAL data"); if (gst_pad_try_set_caps (dv1394src->srcpad, - GST_CAPS_NEW ( "dv1394src", "video/dv", - "format", GST_PROPS_STRING("PAL"), - NULL) - ) <= 0) { + gst_caps_new_simple ("video/dv", + "format", G_TYPE_STRING, "PAL", NULL)) <= 0) { gst_element_error (GST_ELEMENT(dv1394src), "Could not set source caps for PAL"); return 0; } @@ -261,19 +258,13 @@ int gst_dv1394src_iso_receive(raw1394handle_t handle,int channel,size_t len,quad dv1394src->frameSize = NTSC_FRAMESIZE; GST_DEBUG ("NTSC data [untested] - please report success/failure to <dan@f3c.com>"); if (gst_pad_try_set_caps (dv1394src->srcpad, - GST_CAPS_NEW ( "dv1394src", "video/dv", - "format", GST_PROPS_STRING ("NTSC"), - NULL) - ) <= 0) { + gst_caps_new_simple ("video/dv", + "format", G_TYPE_STRING, "NTSC", NULL)) <= 0) { gst_element_error (GST_ELEMENT(dv1394src), "Could not set source caps for NTSC"); return 0; } } - - dv1394src->pool = gst_buffer_pool_get_default( dv1394src->frameSize, N_BUFFERS_IN_POOL ); - if (dv1394src->pool == NULL) { - gst_element_error (GST_ELEMENT(dv1394src), "gst_buffer_pool_get_default returned NULL"); - } + dv1394src->negotiated = TRUE; } // drop last frame when not complete @@ -287,9 +278,9 @@ int gst_dv1394src_iso_receive(raw1394handle_t handle,int channel,size_t len,quad dv1394src->frameSequence++; if( dv1394src->frameSequence % (dv1394src->skip+dv1394src->consecutive) < dv1394src->consecutive ) { - if( dv1394src->pool ) dv1394src->frame = gst_buffer_new_from_pool( dv1394src->pool, 0, dv1394src->frameSize ); - dv1394src->bytesInFrame = 0; + dv1394src->frame = gst_buffer_new_and_alloc (dv1394src->frameSize); } + dv1394src->bytesInFrame = 0; } if (dv1394src->frame != NULL) { @@ -390,10 +381,6 @@ gst_dv1394src_change_state (GstElement *element) raw1394_stop_iso_rcv(dv1394src->handle, dv1394src->channel); break; case GST_STATE_READY_TO_NULL: - if (dv1394src->pool != NULL) { - gst_buffer_pool_unref(dv1394src->pool); - dv1394src->pool = NULL; - } raw1394_destroy_handle(dv1394src->handle); break; default: |