[FFmpeg-trac] #5966(undetermined:new): ffmpeg/ffplay specify (H)DV camera's using iec61883 -dvguid option broken or wrong syntax?

FFmpeg trac at avcodec.org
Sun Nov 20 20:31:51 EET 2016

#5966: ffmpeg/ffplay specify (H)DV camera's using iec61883 -dvguid option broken
or wrong syntax?
             Reporter:               |                     Type:  defect
  walterav1984                       |                 Priority:  normal
               Status:  new          |                  Version:  git-
            Component:               |  master
  undetermined                       |               Blocked By:
             Keywords:  iec61883     |  Reproduced by developer:  0
  dvguid                             |
             Blocking:               |
Analyzed by developer:  0            |
 Summary of the bug:

 Not sure if its a bug or me miss understanding the syntax of iec61883
 -dvguid option.

 To my understanding the single libiec61883 argument "auto" just works as
 expected with no selective power at all. But specifying pci adapters by
 referring to them as port numbers is a little bit unclear and should not
 be necessary if the -dvguid option works( I think its broken). Leaving out
 '-i' also seems to work for auto and port number syntax...

 Use Case:
 Using multiple firewire/1394 (H)DV camera's with iec61883 in ffmpeg/ffplay
 only works for a single (H)DV camera which is active/powered-on "first"
 (in a order of multiple connected camera's) to a systems firewire
 Although having multiple active camera's connected to the same single
 firewire adapter interface, I was not able to select/specify/distinguish
 with "-dvguid" other than the first powered-on camera.

 How to reproduce:
 Lookup (H)DV camera unique device GUID codes, the first is probably the
 pci firewire adapter itself!
 dmesg | grep GUID
 cat /sys/bus/firewire/devices/fw*/guid

 Using multiple (H)DV camera's on the same firewire adapter interface other
 than the first powered-on will not work.

 ffplay -f iec61883 -i 0 -dvtype dv -dvguid 0x0camera1guidcode #probably
 works if 1st
 ffplay -f iec61883 -i 0 -dvtype dv -dvguid 0x0camera2guidcode #doesn't
 work just hangs

 Using multiple (H)DV devices each connected on their own firewire pci
 adapter interface works, but still only for the "first"
 poweredon/connected device on that unique firewire adapter. Adding the
 -guid option here will not be very effective and functions more like a
 whitelist since it still only works on the first powered-on camera's. The
 first iec61883 argument auto/port is used to specify the firewire pci
 adapter see 0 and 1 in the following examples.

 ffplay -f iec61883 -i 0 -dvtype dv #sony camera on 1st pci firewire
 ffplay -f iec61883 -i 1 -dvtype hdv #canon camera on seperate 2nd pci
 firewire adapter

 Just by adding the option -dvguid to -dvtype I would expect that a unique
 camera can be specified with or without the need of the firewire adapter
 port number.
 ffplay -f iec61883 -i -dvtype dv -dvguid 0x0camera2guid #doesn't work
 ffplay -f iec61883 -i 0 -dvtype -dvguid 0x0camera2guid #doesn't work

 Using a on purpose wrong -dvguid code starting with 0x 0 or 1 will lead to
 the same first dv device, a other on purpose wrong guid code like 2 or 2x
 leads to a expected error.

 ffplay -f iec61883 -i -dvtype dv -dvguid 2 #see error
 ffplay -f iec61883 -i 0 -dvtype -dvguid 2xetc #see error

 "No AV/C devices found.
 1: Input/output error"

 The program "dvgrab" works as expected, it will let you capture from
 multiple uniquely with -guid option specified (H)DV camera's at the same
 time from the same single pci firewire adapter interface. I would expect
 ffmpeg/ffplay iec61883 dvguid option to behave the same...

 dvgrab -noavc -f raw -guid 0x0sonycameraguid sonyrecording.dv
 dvgrab -noavc -f hdv -guid 0x0canoncameraguid canonrecording.hdv
 dvgrab -noavc -f dv -guid 0x0jvccameraguid jvcrecording.dv

 FW adapters:
 Texas Instruments TSB82AA2 IEEE-1394b (3 FW800 ports)
 Agere LSI Corporation FW322/323 (2 FW400 6pin ports)

 ubuntu linux 16.04.1 amd64 kernel 4.4.0-45-generic 66
 libiec61883 1.2.0

 ffmpeg version 2.8.8-0ubuntu0.16.04.1 #repo
 ffmpeg version N-82572-gac206bb #github master build
 built on ubuntu 16.04.1 amd64

Ticket URL: <https://trac.ffmpeg.org/ticket/5966>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list