After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 350830 - [raw1394] Add HDV support
[raw1394] Add HDV support
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.6
Other Linux
: Normal enhancement
: 0.10.11
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-08-11 02:08 UTC by Hartmut Seichter
Modified: 2008-10-04 21:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Patch to add the hdv1394src (1.86 KB, patch)
2008-06-01 14:55 UTC, Edward Hervey
committed Details | Review
gsthdv1394src.c (28.24 KB, text/plain)
2008-06-01 14:55 UTC, Edward Hervey
  Details
gsthdv1394src.h (2.37 KB, text/x-chdr)
2008-06-01 14:56 UTC, Edward Hervey
  Details

Description Hartmut Seichter 2006-08-11 02:08:16 UTC
Objective:

Get HDV live feed from camera (Sony Handycam N50 / HDR HC3E) via FireWire (same camera with DV feed works fine). 

Using the following:

gst-launch-0.10 dv1394src ! fakesink 

crashes ...

if I try to debug:

gst-launch-0.10 --gst-debug=dv1394src:2 dv1394src ! fakesink

does work ...

gst-launch-0.10 --gst-debug=dv1394src:5 dv1394src ! fakesink

does work, with pumping out following message (with different timestamp) constantly:

INFO  (0x8108dc0 - 0:00:03.970350000)            dv1394src( 6690) gstdv1394src.c(382):gst_dv1394src_iso_receive:<dv1394src0> incomplete frame dropped

Occasionally the same command will crash with a Segmentation fault, if I run it from within gdb I get: 

[Switching to Thread -1214166096 (LWP 6792)]
0xb7d639dc in memcpy () from /lib/tls/i686/cmov/libc.so.6
(gdb)
Comment 1 Hartmut Seichter 2006-08-11 02:42:07 UTC
Sorry, forgot the backtrace when using gst-lauch-0.10 dv1394src ! fakesink


Program received signal SIGSEGV, Segmentation fault.

Thread NaN (LWP 21189)

  • #0 memcpy
    from /lib/tls/i686/cmov/libc.so.6
  • #1 gst_dv1394src_iso_receive
    at gstdv1394src.c line 420
  • #2 raw1394_loop_iterate
    from /usr/lib/libraw1394.so.5
  • #3 gst_dv1394src_create
    at gstdv1394src.c line 550
  • #4 gst_push_src_get_type
    from /usr/lib/libgstbase-0.10.so.0
  • #5 gst_base_src_set_format
    from /usr/lib/libgstbase-0.10.so.0
  • #6 gst_base_src_set_format
    from /usr/lib/libgstbase-0.10.so.0
  • #7 gst_task_get_type
    from /usr/lib/libgstreamer-0.10.so.0
  • #8 g_thread_pool_free
    from /usr/lib/libglib-2.0.so.0
  • #9 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #10 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #11 clone
    from /lib/tls/i686/cmov/libc.so.6

Comment 2 Jan Schmidt 2006-08-11 07:42:37 UTC
There's no code in there to capture HD streams - none of us has ever had access to the equipment to write the code.
Comment 3 Hartmut Seichter 2006-08-11 21:25:50 UTC
HDV over IEEE1394 is a standard MPEG2-TS stream. At the moment the dv1394src element can't deal with it and if it works I can not connect it to a mpegparser or a mpegdemuxer. It might be necessary to write a new plugin or add a hdv1394src to the 1394 plugin.
Comment 4 Jan Schmidt 2006-08-12 10:03:36 UTC
It should be possible to extend the existing dv1394src to output an mpeg-ts stream, and probably easy too - but without someone that a) has access to hardware to test with and b) is willing to do the work, I doubt it will happen immediately.
Comment 5 Stefan Sauer (gstreamer, gtkdoc dev) 2007-11-07 06:27:14 UTC
crash = bug
Comment 6 Edward Hervey 2008-06-01 14:47:50 UTC
I've got a pending patch for an hdv1394src. I'll attach it soon.
Comment 7 Edward Hervey 2008-06-01 14:55:25 UTC
Created attachment 111894 [details] [review]
Patch to add the hdv1394src
Comment 8 Edward Hervey 2008-06-01 14:55:55 UTC
Created attachment 111895 [details]
gsthdv1394src.c
Comment 9 Edward Hervey 2008-06-01 14:56:40 UTC
Created attachment 111896 [details]
gsthdv1394src.h
Comment 10 Edward Hervey 2008-06-01 14:58:34 UTC
The attached files add a new hdv1394src element. I've already used it successfully for getting feed from the tape or from live camera.

It might require some more cleaning up though before being commitable.

Tested with a Canon HV20.
Comment 11 Leon 2008-07-05 12:26:01 UTC
Hi,Edward.I don't know why i can't use the hdv1394src and when i try to load it, error like this occurred:
(gst-inspect-0.10:11513): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-0.10/libgst1394.so': /usr/local/lib/gstreamer-0.10/libgst1394.so: undefined symbol: gst_hdv1394src_get_type

Please give me some points. thanks a lot
Comment 12 Edward Hervey 2008-08-11 14:37:17 UTC
2008-08-11  Edward Hervey  <edward.hervey@collabora.co.uk>

	* ext/raw1394/Makefile.am:
	* ext/raw1394/gst1394.c: (plugin_init):
	* ext/raw1394/gsthdv1394src.c: (_do_init),
	(gst_hdv1394src_base_init), (gst_hdv1394src_class_init),
	(gst_hdv1394src_init), (gst_hdv1394src_dispose),
	(gst_hdv1394src_set_property), (gst_hdv1394src_get_property),
	(gst_hdv1394src_from_raw1394handle),
	(gst_hdv1394src_iec61883_receive), (gst_hdv1394src_bus_reset),
	(gst_hdv1394src_create), (gst_hdv1394src_discover_avc_node),
	(gst_hdv1394src_start), (gst_hdv1394src_stop),
	(gst_hdv1394src_unlock), (gst_hdv1394src_update_device_name),
	(gst_hdv1394src_uri_get_type), (gst_hdv1394src_uri_get_protocols),
	(gst_hdv1394src_uri_get_uri), (gst_hdv1394src_uri_set_uri),
	(gst_hdv1394src_uri_handler_init):
	* ext/raw1394/gsthdv1394src.h:
	mpeg2-ts (HDV) variant of firewire capture element.
	Fixes #350830