[FFmpeg-devel] [PATCH] new version of libdc1394 - resubmitting after review

Alessandro Sappia a.sappia
Wed Jan 9 07:09:35 CET 2008

HI all,
Attached a patch which reformat code to be as suggested
by roman.

how to fix  a fixme should be addressed with you:
camera connected by libdc1394 are selected by comparing
the guid (and eventually a unit) with a given one.

guid is a unit64_t
unit is an int
one should eventually add a command line option for show
connected guids and how many unit that guid has (to select
proper camera)
may I add such command line options ?

Useful thing should be shutter time and some controls (white balance,
gain, transmission speed, etc...)
Should we expose them to ffmpeg users ?

Roman, did you check my patch for fps and fmt default value handling ?
I ask this because it happened to me that

$ ./ffplay -f libdc1394 /dev/video1394/1
FFplay version git-06d4c94, Copyright (c) 2003-2008 Fabrice Bellard, et al.
  configuration: --enable-decoders --enable-encoders --enable-muxers
--enable-demuxers --enable-parsers --enable-protocols --enable-bsfs
--enable-indevs --enable-outdevs --enable-libdc1394 --disable-strip
  libavutil version: 49.6.0
  libavcodec version: 51.49.0
  libavformat version: 52.3.0
  built on Jan  9 2008 05:42:10, gcc: 4.1.3 20070929 (prerelease)
(Ubuntu 4.1.2-16ubuntu2)
[libdc1394 @ 0x84181b4]Can't find matching camera format for uyvy422,
320x240 at 25000:1000fps
/dev/video1394/1: Error while opening file

This happens because DCcamera in Format0 can't acquire at any speed,
but there are some fixed. It seems that ffplay asks for 25 fps while 25 fps
is not a standard acquiring fps for dc1394.
Related to that, the DC1394 standard for format0 define fps up to 240fps
per second, may these speed useful in ffmpeg ?

I was thinking about using format7 acquire mode, but while it gives us
the ability of asking the cam for a precise fps, this has the overload of
having to do the debayer in software. what do you think about it ?


Roman Shaposhnik ha scritto:
>    Ok, I do have one last question here, though. It is 
> minor nit, but if anybody besides me cares we might as well
> take care of it. So, here's the deal: what you currently have
> in your patch is fine and readable, but personally I really
> dislike #if[def] sections which are longer than just a couple
> of lines. On top of that, one would hope that support for 
> libdc1394 v. 1 is going to be dropped sometime in the future.
> Hence, I'd rather have this (in skeletal form):
>    #if ENABLE_LIBDC1394_2
>    #include <dc1394/dc1394.h>
>    #elif ENABLE_LIBDC1394_1
>    #include <libraw1394/raw1394.h>
>    #include <libdc1394/dc1394_control.h>
>    #define DC1394_VIDEO_MODE_320x240_YUV422 MODE_320x240_YUV42
>    ....
>    #define DC1394_FRAME_RATE_1_875 FRAME_RATE_1_875
>    ....
>    #endif /* ENABLE_LIBDC1394_1 */
>    static inline int dc_1394_read_header_common(...)
>    static int dc1394_v1_read_header(...)
>    {
>        dc_1394_read_header_common();
>        ....
>    }
>    static int dc1394_v2_read_header(...)
>    {
>        dc_1394_read_header_common();
>        ....
>    }
>    .....
>    #if ENABLE_LIBDC1394_1
>    AVInputFormat libdc1394_demuxer = {
>     .name           = "libdc1394",
>     .long_name      = "dc1394 v1 A/V grab",
>     .priv_data_size = sizeof(struct dc1394_data),
>     .read_header    = dc1394_v1_read_header,
>     .read_packet    = dc1394_v1_read_packet,
>     .read_close     = dc1394_v1_close,
>     .flags          = AVFMT_NOFILE
>    };
>    #elif ENABLE_LIBDC1394_2
>    AVInputFormat libdc1394_demuxer = {
>     .name           = "libdc1394",
>     .long_name      = "dc1394 v2 A/V grab",
>     .priv_data_size = sizeof(struct dc1394_data),
>     .read_header    = dc1394_v2_read_header,
>     .read_packet    = dc1394_v2_read_packet,
>     .read_close     = dc1394_v2_close,
>     .flags          = AVFMT_NOFILE
>    }; 
>    #endif
>   Well, beyond the question above and somebody for whom English is a 
> mother tongue looking over the output messages, I believe this patch
> is now ok to be included. Good work!
> Thanks,
> Roman.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: libdc1394-new.patch
Type: text/x-patch
Size: 10985 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080109/cf935280/attachment.bin>

More information about the ffmpeg-devel mailing list