2

The issue I'm having the following:

I can create a new node, I have two upload fields for images that can initially be uploaded no problem.

I can go back and edit node content and save, also no problem.

When I try to erase either image attachment and save the node I get a 500 error (Server Internal Error). Looking at the PHP logs this is what I'm getting:

[Wed Apr 25 23:34:51 2012] [warn] [client 50.138.84.100] mod_fcgid: stderr: PHP Fatal error: Call-time pass-by-reference has been removed in ../www/sites/all/modules/video/transcoders/video_ffmpeg.inc on line 49, referer: https://www.uleru.com/node/xxx/edit

This use to work a few weeks back and the last major change was a server upgrade of some of the packages (running Debian). Not sure if this was the conspirator but maybe some has seen something similar?

-------------------------------------------EDIT--------------------------------------------------
Doing a show on that package, that's exactly what happened, ffmpeg was deprecated by libav-tools. I'm trying to remember where to change the ffmpeg path in the Drupal Admin. Considering rolling back = /

hakre
  • 193,403
  • 52
  • 435
  • 836
tony
  • 160
  • 8

3 Answers3

3

This looks like the server upgrade included a switch to PHP 5.4 ("call-time pass-by-reference" got deprecated in 5.3, and removed in 5.4 - see Passing by Reference).

So this is likely a bug in video_ffmpeg.inc, in that it tries to pass a parameter by reference, which it should do only by declaring the parameter as a reference in the called functions signature.

For small example, see PHP 5.4 Call-time pass-by-reference - Easy fix available?

Community
  • 1
  • 1
Henrik Opel
  • 19,341
  • 1
  • 48
  • 64
  • Yep, it's deprecated with libav-tools and breaks ffmpeg. Bah! I'm going to send an email to the developer of the module, see what we can do. – tony Apr 30 '12 at 15:31
  • If anyone hits this roadblock this is how I fixed it. Upgrade to Slideshow 6.x-3.0 (was running 6.x-2.4) In modules/video/transcoders/video_ffmpeg.inc there is a line that reads: passthru($command, &$return_var); Remove the '&' sign and it should fix your issue. Compliments of Henrik Opel for pointing me towards the right direction. – tony May 10 '12 at 14:41
0

The ffmpeg path is in the ffmpeg_wrapper configuration page, assuming it works like the one I used in d6 a few months back.

Antonio Torres
  • 446
  • 3
  • 9
0

I Fixed this by using function proc_open instead of exec.