[gst-devel] faad plugin and "Gain control not yet implemented"

Stefan Monnier monnier at iro.umontreal.ca
Thu Apr 14 14:37:13 CEST 2005


I'm trying to get my Rhythmbox to play my m4a files on a Fedora Core 2 box.
I installed the faad2-2.0-2.20040923.1.fc2.rf.x86_64.rpm package.
The "faad" command can decode my m4a files just fine.

I also compiled gst-plugins-0.8.9 (actually "cvs update -r RELEASE_0_8_9")
with mad and faad.  The mad plugin part plays my MP3 just fine (thank god:
I couldn't stand xmms's skips any more), but the faad plugin doesn't work:

- first I had to tweak the configure script because it tries to compile
  a file with a call to faacDecOpen, but the C file is wrong.
  It does something like
     void faacDecOpen ();
     main () { faacDecOpen(); }
  which will fail because on my faad2 package the faad.h include file
  renames faacDecOpen via a macro, so I replaced the test code with:
     #include <faad.h>
     main () { faacDecOpen(); }

- but once the compilation went through I still can't get it to work.
  all commands give me an error "Gain control not yet implemented".

I tried googling but haven't found any useful answer.

I've appended the debug-level-3 output, just in case it might help,


        Stefan

% gst-launch-0.8 --gst-debug-level 3 filesrc location=$HOME/music/scratch/Fito\ Paez/Antologia/1-11\ 11\ Y\ 6.m4a ! faad ! filesink location=/dev/null
INFO  (0x50acc0 - 309304:23:52.278169000)        GST_INIT(19125) gstcpu.c(55):_gst_cpu_initialize: CPU features: (00000000) NONE
INFO  (0x50acc0 - 309304:23:52.279647000) GST_PLUGIN_LOADING(19125) gstplugin.c(134):_gst_plugin_register_static: loaded static plugin "gstcoreelements"
INFO  (0x50acc0 - 309304:23:52.285902000)         default(19125) gstxmlregistry.c(697):gst_xml_registry_load: loaded user_registry in 0,000309 seconds (/u/monnier/.gstreamer-0.8/registry.xml)
INFO  (0x50acc0 - 309304:23:52.502321000)         default(19125) gstxmlregistry.c(697):gst_xml_registry_load: loaded global_registry in 0,213623 seconds (/u/monnier/pkg/gstreamer/var/cache/gstreamer-0.8/registry.xml)
INFO  (0x50acc0 - 309304:23:52.503019000)    GST_PIPELINE(19125) gstparse.c(130):gst_parse_launch: parsing pipeline description filesrc location=/u/monnier/music/scratch/Fito\ Paez/Antologia/1-11\ 11\ Y\ 6.m4a ! faad ! filesink location=/dev/null 
INFO  (0x50acc0 - 309304:23:52.509377000) GST_PLUGIN_LOADING(19125) gstplugin.c(356):gst_plugin_check_file: looks like a gst plugin "/u/monnier/pkg/gstreamer/lib/gstreamer-0.8/libgstelements.so"
INFO  (0x50acc0 - 309304:23:52.515159000) GST_PLUGIN_LOADING(19125) gstplugin.c(447):gst_plugin_load_file: plugin "/u/monnier/pkg/gstreamer/lib/gstreamer-0.8/libgstelements.so" loaded
INFO  (0x50acc0 - 309304:23:52.517879000) GST_ELEMENT_FACTORY(19125) gstelementfactory.c(298):gst_element_factory_create: creating "filesrc"
INFO  (0x50acc0 - 309304:23:52.522801000) GST_ELEMENT_PADS(19125) gstelement.c(1175):gst_element_add_pad:<GstFileSrc at 0x5e27d0> adding pad 'src'
INFO  (0x50acc0 - 309304:23:52.540101000) GST_PLUGIN_LOADING(19125) gstplugin.c(356):gst_plugin_check_file: looks like a gst plugin "/u/monnier/pkg/gstreamer/lib/gstreamer-0.8/libgstfaad.so"
INFO  (0x50acc0 - 309304:23:52.543433000) GST_PLUGIN_LOADING(19125) gstplugin.c(356):gst_plugin_check_file: looks like a gst plugin "/u/monnier/pkg/gstreamer/lib/gstreamer-0.8/libgstaudio.so"
INFO  (0x50acc0 - 309304:23:52.545974000) GST_PLUGIN_LOADING(19125) gstplugin.c(447):gst_plugin_load_file: plugin "/u/monnier/pkg/gstreamer/lib/gstreamer-0.8/libgstaudio.so" loaded
INFO  (0x50acc0 - 309304:23:52.550718000) GST_PLUGIN_LOADING(19125) gstplugin.c(447):gst_plugin_load_file: plugin "/u/monnier/pkg/gstreamer/lib/gstreamer-0.8/libgstfaad.so" loaded
INFO  (0x50acc0 - 309304:23:52.555338000) GST_ELEMENT_FACTORY(19125) gstelementfactory.c(298):gst_element_factory_create: creating "faad"
INFO  (0x50acc0 - 309304:23:52.560355000) GST_ELEMENT_PADS(19125) gstelement.c(1175):gst_element_add_pad:<GstFaad at 0x5e5ad0> adding pad 'sink'
INFO  (0x50acc0 - 309304:23:52.565339000) GST_ELEMENT_PADS(19125) gstelement.c(1175):gst_element_add_pad:<GstFaad at 0x5e5ad0> adding pad 'src'
INFO  (0x50acc0 - 309304:23:52.570190000) GST_ELEMENT_FACTORY(19125) gstelementfactory.c(298):gst_element_factory_create: creating "filesink"
INFO  (0x50acc0 - 309304:23:52.575163000) GST_ELEMENT_PADS(19125) gstelement.c(1175):gst_element_add_pad:<GstFileSink at 0x5e6c00> adding pad 'sink'
INFO  (0x50acc0 - 309304:23:52.580333000) GST_ELEMENT_FACTORY(19125) gstelementfactory.c(298):gst_element_factory_create: creating "pipeline"
INFO  (0x50acc0 - 309304:23:52.586464000) GST_PLUGIN_LOADING(19125) gstplugin.c(356):gst_plugin_check_file: looks like a gst plugin "/u/monnier/pkg/gstreamer/lib/gstreamer-0.8/libgstoptscheduler.so"
INFO  (0x50acc0 - 309304:23:52.590995000) GST_PLUGIN_LOADING(19125) gstplugin.c(447):gst_plugin_load_file: plugin "/u/monnier/pkg/gstreamer/lib/gstreamer-0.8/libgstoptscheduler.so" loaded
INFO  (0x50acc0 - 309304:23:52.595438000)   GST_PARENTAGE(19125) gstbin.c(526):gst_bin_add:<pipeline0> adding element "filesrc0"
INFO  (0x50acc0 - 309304:23:52.600340000)   GST_PARENTAGE(19125) gstbin.c(526):gst_bin_add:<pipeline0> adding element "faad0"
INFO  (0x50acc0 - 309304:23:52.605120000)   GST_PARENTAGE(19125) gstbin.c(526):gst_bin_add:<pipeline0> adding element "filesink0"
INFO  (0x50acc0 - 309304:23:52.610095000)    GST_PIPELINE(19125) ./grammar.y(413):gst_parse_perform_link: linking filesrc0:(any) to faad0:(any) (0/0) with caps "(NULL)"
INFO  (0x50acc0 - 309304:23:52.615084000) GST_ELEMENT_PADS(19125) gstelement.c(1893):gst_element_link_pads_filtered: trying to link element filesrc0:(any) to element faad0:(any)
INFO  (0x50acc0 - 309304:23:52.619908000)        GST_PADS(19125) gstpad.c(1693):gst_pad_can_link_filtered: trying to link filesrc0:src and faad0:sink
INFO  (0x50acc0 - 309304:23:52.624922000)        GST_PADS(19125) gstpad.c(1814):gst_pad_link_filtered: trying to link filesrc0:src and faad0:sink
INFO  (0x50acc0 - 309304:23:52.629999000)       scheduler(19125) gstoptimalscheduler.c(2123):gst_opt_scheduler_pad_link: scheduling link between filesrc0:src and faad0:sink
INFO  (0x50acc0 - 309304:23:52.640281000)        GST_PADS(19125) gstpad.c(1908):gst_pad_link_filtered: linked filesrc0:src and faad0:sink, successful
INFO  (0x50acc0 - 309304:23:52.640642000)    GST_PIPELINE(19125) ./grammar.y(413):gst_parse_perform_link: linking faad0:(any) to filesink0:(any) (0/0) with caps "(NULL)"
INFO  (0x50acc0 - 309304:23:52.645631000) GST_ELEMENT_PADS(19125) gstelement.c(1893):gst_element_link_pads_filtered: trying to link element faad0:(any) to element filesink0:(any)
INFO  (0x50acc0 - 309304:23:52.650727000)        GST_PADS(19125) gstpad.c(1693):gst_pad_can_link_filtered: trying to link faad0:src and filesink0:sink
INFO  (0x50acc0 - 309304:23:52.656387000)        GST_PADS(19125) gstpad.c(1814):gst_pad_link_filtered: trying to link faad0:src and filesink0:sink
INFO  (0x50acc0 - 309304:23:52.661668000)       scheduler(19125) gstoptimalscheduler.c(2123):gst_opt_scheduler_pad_link: scheduling link between faad0:src and filesink0:sink
INFO  (0x50acc0 - 309304:23:52.665489000)        GST_PADS(19125) gstpad.c(1908):gst_pad_link_filtered: linked faad0:src and filesink0:sink, successful
RUNNING pipeline ...
INFO  (0x50acc0 - 309304:23:52.675218000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<pipeline0> setting state from NULL to PLAYING
INFO  (0x50acc0 - 309304:23:52.680211000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesrc0> setting state from NULL to READY
INFO  (0x50acc0 - 309304:23:52.685192000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<faad0> setting state from NULL to READY
INFO  (0x50acc0 - 309304:23:52.690435000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesink0> setting state from NULL to READY
INFO  (0x50acc0 - 309304:23:52.695357000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesrc0> setting state from READY to PAUSED
INFO  (0x50acc0 - 309304:23:52.700323000)         filesrc(19125) gstfilesrc.c(771):gst_filesrc_open_file:<filesrc0> opening file /u/monnier/music/scratch/Fito Paez/Antologia/1-11 11 Y 6.m4a
INFO  (0x50acc0 - 309304:23:52.706459000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<faad0> setting state from READY to PAUSED
INFO  (0x50acc0 - 309304:23:52.711307000)        GST_CAPS(19125) gstpad.c(1334):gst_pad_link_call_link_functions:<faad0:src> pad doesn't accept caps audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)8000, channels=(int)1
INFO  (0x50acc0 - 309304:23:52.715217000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesink0> setting state from READY to PAUSED
INFO  (0x50acc0 - 309304:23:52.721248000)        GST_CAPS(19125) gstpad.c(1334):gst_pad_link_call_link_functions:<faad0:src> pad doesn't accept caps audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)8000, channels=(int)1
INFO  (0x50acc0 - 309304:23:52.725358000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesrc0> setting state from PAUSED to PLAYING
INFO  (0x50acc0 - 309304:23:52.730326000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<faad0> setting state from PAUSED to PLAYING
INFO  (0x50acc0 - 309304:23:52.735295000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesink0> setting state from PAUSED to PLAYING
INFO  (0x50acc0 - 309304:23:52.745122000)       scheduler(19125) gstoptimalscheduler.c(1690):gst_opt_scheduler_state_transition: setting scheduler state to running
INFO  (0x50acc0 - 309304:23:52.745717000)       GST_EVENT(19125) gstevent.c(175):gst_event_new: creating new event type 4: 0x52d550
INFO  (0x50acc0 - 309304:23:52.750518000)        GST_PADS(19125) gstpad.c(4045):gst_pad_event_default_dispatch:<faad0:sink> Sending event 0x52d550 to all internally linked pads
INFO  (0x50acc0 - 309304:23:52.755333000)       GST_EVENT(19125) gstevent.c(96):_gst_event_free: freeing event 0x52d550
ERROR (0x50acc0 - 309304:23:52.760675000)         default(19125) gstfaad.c(637):gst_faad_chain:<faad0> Failed to decode buffer: Gain control not yet implemented
INFO  (0x50acc0 - 309304:23:52.765272000) GST_ERROR_SYSTEM(19125) gstelement.c(2606):gst_element_error_full: signaling error in faad0: Could not decode stream.
ERROR: from element /pipeline0/faad0: Could not decode stream.
Additional debug info:
gstfaad.c(637): gst_faad_chain: /pipeline0/faad0:
Failed to decode buffer: Gain control not yet implemented
INFO  (0x50acc0 - 309304:23:52.785033000) GST_ERROR_SYSTEM(19125) gstelement.c(2634):gst_element_error_full: signalled error in faad0: Could not decode stream.
INFO  (0x50acc0 - 309304:23:52.785356000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<faad0> setting state from PLAYING to PAUSED
ERROR (0x50acc0 - 309304:23:52.790264000)       scheduler(19125) gstoptimalscheduler.c(2797):gst_opt_scheduler_iterate:<GstOptScheduler at 0x5e8960> in error state
INFO  (0x50acc0 - 309304:23:52.795587000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<pipeline0> setting state from PLAYING to PAUSED
INFO  (0x50acc0 - 309304:23:52.800564000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesrc0> setting state from PLAYING to PAUSED
INFO  (0x50acc0 - 309304:23:52.805387000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesink0> setting state from PLAYING to PAUSED
INFO  (0x50acc0 - 309304:23:52.810360000)       scheduler(19125) gstoptimalscheduler.c(1686):gst_opt_scheduler_state_transition: setting scheduler state to stopped
Execution ended after 2 iterations (sum 69686000 ns, average 34843000 ns, min 14613000 ns, max 55073000 ns).
INFO  (0x50acc0 - 309304:23:52.821741000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<pipeline0> setting state from PAUSED to NULL
INFO  (0x50acc0 - 309304:23:52.827166000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesrc0> setting state from PAUSED to READY
INFO  (0x50acc0 - 309304:23:52.831745000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<faad0> setting state from PAUSED to READY
INFO  (0x50acc0 - 309304:23:52.841398000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesink0> setting state from PAUSED to READY
INFO  (0x50acc0 - 309304:23:52.841791000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesrc0> setting state from READY to NULL
INFO  (0x50acc0 - 309304:23:52.851684000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<faad0> setting state from READY to NULL
INFO  (0x50acc0 - 309304:23:52.852098000)      GST_STATES(19125) gstelement.c(2825):gst_element_set_state_func:<filesink0> setting state from READY to NULL
INFO  (0x50acc0 - 309304:23:52.856921000)       scheduler(19125) gstoptimalscheduler.c(2650):gst_opt_scheduler_pad_unlink: unscheduling link between filesrc0:src and faad0:sink
INFO  (0x50acc0 - 309304:23:52.861949000)   GST_PARENTAGE(19125) gstbin.c(572):gst_bin_remove_func:<pipeline0> removed child "filesrc0"
INFO  (0x50acc0 - 309304:23:52.866862000) GST_REFCOUNTING(19125) gstelement.c(3103):gst_element_dispose:<filesrc0> dispose
INFO  (0x50acc0 - 309304:23:52.871655000) GST_ELEMENT_PADS(19125) gstpad.c(1015):gst_pad_unlink: unlinking filesrc0:src(0x5e3780) and faad0:sink(0x5e5ee0)
INFO  (0x50acc0 - 309304:23:52.876649000) GST_ELEMENT_PADS(19125) gstpad.c(1071):gst_pad_unlink: unlinked filesrc0:src and faad0:sink
INFO  (0x50acc0 - 309304:23:52.881637000)       scheduler(19125) gstoptimalscheduler.c(2650):gst_opt_scheduler_pad_unlink: unscheduling link between faad0:src and filesink0:sink
INFO  (0x50acc0 - 309304:23:52.886439000)   GST_PARENTAGE(19125) gstbin.c(572):gst_bin_remove_func:<pipeline0> removed child "faad0"
INFO  (0x50acc0 - 309304:23:52.891415000) GST_REFCOUNTING(19125) gstelement.c(3103):gst_element_dispose:<faad0> dispose
INFO  (0x50acc0 - 309304:23:52.896380000) GST_ELEMENT_PADS(19125) gstpad.c(1015):gst_pad_unlink: unlinking faad0:src(0x5e6850) and filesink0:sink(0x5e6d50)
INFO  (0x50acc0 - 309304:23:52.901733000) GST_ELEMENT_PADS(19125) gstpad.c(1071):gst_pad_unlink: unlinked faad0:src and filesink0:sink
INFO  (0x50acc0 - 309304:23:52.906508000)   GST_PARENTAGE(19125) gstbin.c(572):gst_bin_remove_func:<pipeline0> removed child "filesink0"
INFO  (0x50acc0 - 309304:23:52.911468000) GST_REFCOUNTING(19125) gstelement.c(3103):gst_element_dispose:<filesink0> dispose
INFO  (0x50acc0 - 309304:23:52.916444000) GST_REFCOUNTING(19125) gstelement.c(3103):gst_element_dispose:<pipeline0> dispose
% 





More information about the gstreamer-devel mailing list