Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#36849 closed enhancement (fixed)

ffmpeg: fix dependencies, add dc1394 variant

Reported by: devernay (Frédéric Devernay) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia)
Port: ffmpeg

Description

ffmpeg should depend on fontconfig: [0.11 relnotes] - drawtext video filter: fontconfig support

ffmpeg should not depend on dirac: [0.9 relnotes] native dirac decoder

also add dc1394 variant (requires a patch, because libraw1394 is not required and does only exist on linux)

Attachments (2)

Portfile-01-fixdeps.patch (1.2 KB) - added by devernay (Frédéric Devernay) 11 years ago.
ffmpeg-0.11-dc1394.patch (461 bytes) - added by devernay (Frédéric Devernay) 11 years ago.

Download all attachments as: .zip

Change History (9)

Changed 11 years ago by devernay (Frédéric Devernay)

Attachment: Portfile-01-fixdeps.patch added

Changed 11 years ago by devernay (Frédéric Devernay)

Attachment: ffmpeg-0.11-dc1394.patch added

comment:1 Changed 11 years ago by ccarey@…

In ffmpeg 1.0_1’s configure file, the drawtext video filter is dependent upon freetype rather than upon fontconfig — see #36890.

comment:2 Changed 11 years ago by jmroot (Joshua Root)

Cc: jeremyhu@… added
Owner: changed from macports-tickets@… to devans@…

comment:3 Changed 10 years ago by ctreleaven (Craig Treleaven)

Since there is an open ticket related to ffmpeg dependencies, I'll add to it:

I ran egall's port-depcheck.sh against a default install of ffmpeg (ffmpeg @2.1.1) with the following results:

port-depcheck.sh ffmpeg
--- /var/folders/-A/-Ac1IVy2H9WLW1x5c9D7XU+++TI/-Tmp-//port-depcheck.sh.1003562.1x2Hcu	2013-12-10 10:04:04.000000000 -0500
+++ /var/folders/-A/-Ac1IVy2H9WLW1x5c9D7XU+++TI/-Tmp-//port-depcheck.sh.1003561.jIx29T	2013-12-10 10:03:59.000000000 -0500
@@ -1,24 +1,22 @@
 XviD                            
 bzip2                           
-dirac                           
+ffmpeg
 freetype                        
-gmake                           
+gmp
 gnutls                          
 lame                            
 libass                          
 libbluray                       
+libiconv
 libmodplug                      
 libogg                          
 libopus                         
 libsdl                          
 libtheora                       
 libvorbis                       
-libvpx                          
+nettle
 openjpeg15                      
-pkgconfig                       
 schroedinger                    
 speex                           
-texi2html                       
 x264                            
-yasm                            
 zlib                            

gmake, pkgconfig, texi2html and yasm are build deps and can be ignored.

dirac is listed as a depends_lib but there is no corresponding --enable-dirac in the configure flags?!? This codec doesn't seem to be widely used. Seems like it would not be harmful to enable it. The original reported noted ffmpeg now has a native decoder; presume this dependency is for the encoder side(?).

gmp and nettle are dependencies of gnutls but are linked directly by ffmpeg and therefore probably should be added to depends_lib. libiconv, too.

I don't know why libvpx isn't linked, it is enabled. I never use that codec so I didn't spend any time looking into the issue.

Anyway, a few items for consideration.

comment:4 Changed 10 years ago by dbevans (David B. Evans)

Status: newassigned

Some responses:

The dependency on dirac is outdated (dirac functionality is now provided solely by libschroedinger). Removed from ffmpeg, ffmpeg-devel in r116061, r116062 as part of the recent update to version 2.1.3.

As you mention gmp and nettle are dependencies of gnutls and are only used by ffmpeg as a consequence of specifying --enable-gnutls so the dependency on gnutls seems sufficient.

iconv on the other hand is a different story. It is optional but is used by ffmpeg if found and not explicitly disabled by --disable-iconv (we don't). It is generally installed because of the many other ports that depend on it, but not necessarily predictably, so either an explicit dependency or disabling it is in order to be certain. Will deal with this issue at the next version or revision bump.

Will also take a look at the 1394 issue. I visited this some time ago and ran into some problems but I don't remember why and enough time has passed that a relook is reasonable. Note that this only provides an input device as currently implemented so would probably add it as a variant if I can get it to work.

Port libvpx only provides a static library libvpx.a so it IS linked in, just not dynamically. Nothing to do here.

Thanks for your input and sorry for the delay in responding. Will leave this ticket open until the issues with iconv and libdc1394 are resolved one way or the other.

comment:5 Changed 10 years ago by dbevans (David B. Evans)

BTW, fontconfig support is currently not enabled so the dependency is not required. This can be added at the next update as well. Will do a full review of the currently available options and see what else may be missing that we can add.

Last edited 10 years ago by dbevans (David B. Evans) (previous) (diff)

comment:6 Changed 10 years ago by dbevans (David B. Evans)

r116084 ffmpeg, ffmpeg-devel

  • added dependency on libiconv (conversion of arbitrary charsets to UTF-8 in subtitles, subtitle enabled codecs only)
  • added dependency on and enabled fontconfig (allows specifying fonts by name rather than by absolute file path in filter drawtext)
  • added +libdc1394 variant (allows IIDC-1394 frame grabbing from FireWire cameras)

This final item is not well tested so I have marked it experimental. It is also completely undocumented. However, by analogy with other indevs, something like this should work:

# Grab and show video from FireWire Device

ffplay -f libdc1394 -i auto

# Grab and save to MPEG file

ffmpeg -f libdc1394 -i auto firewire.mpg

I'll give a try this weekend and would be interested in your experience good or bad.

However, I suggest we take that discussion to the macports-users email list rather than continue here.

Last edited 10 years ago by dbevans (David B. Evans) (previous) (diff)

comment:7 Changed 10 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.