Hi,
here is a backtrace of SIGFPE happens if producer avformat faced with
file with 0 audio channels:
Input #0, mpeg, from 'XDCAM':
Duration: 00:00:06.52, start: 1.000000, bitrate: 50619 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (4:2:2), yuv422p, 1920x1080
[SAR 1:1 DAR 16:9], 50000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x1c0]: Audio: mp2, 0 channels, s16
^^^^^
./melt -profile dv_pal -producer avformat:/home/XDCAM -consumer decklink:0
+---------------------------------------------------------------------+
| H = back 1 minute, L = forward 1 minute |
| h = previous frame, l = next frame |
| g = start of clip, j = next clip, k = previous clip |
| 0 = restart, q = quit, space = play |
+---------------------------------------------------------------------+
[New Thread 0x7fffd5c2a700 (LWP 11678)]
[mpeg @ 0x7fffc80022a0] Format mpeg detected only with low score of 25,
misdetection possible!
[mpeg @ 0x7fffc80022a0] Could not find codec parameters (Audio: mp2, 0
channels, s16)
[NULL @ 0x7fffc800a020] start time is not set in estimate_timings_from_pts
[mpeg @ 0x7fffc8008ca0] Format mpeg detected only with low score of 25,
misdetection possible!
[mpeg @ 0x7fffc8008ca0] Could not find codec parameters (Audio: mp2, 0
channels, s16)
[NULL @ 0x7fffc811a100] start time is not set in estimate_timings_from_pts
[mpeg @ 0x7fffc811a560] Format mpeg detected only with low score of 25,
misdetection possible!
[mpeg @ 0x7fffc811a560] Could not find codec parameters (Audio: mp2, 0
channels, s16)
[NULL @ 0x7fffc8121cc0] start time is not set in estimate_timings_from_pts
[New Thread 0x7fffd5429700 (LWP 11679)]
[New Thread 0x7fffd4c28700 (LWP 11680)]
[New Thread 0x7fffcffff700 (LWP 11681)]
[New Thread 0x7fffcf7fe700 (LWP 11682)]
[New Thread 0x7fffceffd700 (LWP 11683)]
Unsupported audio resampling. Allowed output channels for 0 input channel:
[filter resample] SRC ratio outside [1/256, 256] range. 0,0,48000
Current Position: 0
Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7fffd5c2a700 (LWP 11678)]
0x00007ffff0085056 in producer_get_audio (frame=0x7fffc81218a0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0, frequency=
0x7fffd5c29ea8, channels=0x7fffd5c29bcc, samples=0x7fffd5c29eac) at
producer_avformat.c:2379
2379 *samples = *samples * self->audio_codec[ self->audio_index
]->sample_rate / *frequency;
Missing separate debuginfos, use: debuginfo-install
SDL-1.2.14-13.fc16.x86_64 alsa-lib-1.0.24-2.fc15.x86_64
cairo-1.10.2-4.fc16.x86_64 celt-0.11.1-2.fc16.x86_64
expat-2.0.1-11.fc15.x86_64 fontconfig-2.8.0-4.fc16.x86_64
freetype-2.4.6-4.fc16.x86_64 gdk-pixbuf2-2.24.1-1.fc16.x86_64
glib2-2.30.2-1.fc16.x86_64 glibc-2.14.90-24.fc16.4.x86_64
gtk2-2.24.8-3.fc16.x86_64 jack-audio-connection-kit-1.9.8-3.fc16.x86_64
ladspa-1.13-7.fc15.x86_64 libICE-1.0.7-1.fc16.x86_64
libSM-1.2.0-2.fc15.x86_64 libX11-1.4.3-1.fc16.x86_64
libXau-1.0.6-2.fc15.x86_64 libXcomposite-0.4.3-2.fc15.x86_64
libXcursor-1.1.11-3.fc15.x86_64 libXdamage-1.1.3-2.fc15.x86_64
libXext-1.3.0-1.fc16.x86_64 libXfixes-5.0-1.fc16.x86_64
libXi-1.4.5-1.fc16.x86_64 libXinerama-1.1.1-2.fc15.x86_64
libXrandr-1.3.1-2.fc15.x86_64 libXrender-0.9.6-2.fc15.x86_64
libexif-0.6.20-1.fc16.x86_64 libffi-3.0.10-1.fc16.x86_64
libgcc-4.6.2-1.fc16.x86_64 libogg-1.2.2-3.fc15.x86_64
libpng-1.2.46-1.fc16.x86_64 libsamplerate-0.1.8-1.fc16.x86_64
libselinux-2.1.5-5.1.fc16.x86_64 libstdc++-4.6.2-1.fc16.x86_64
libtheora-1.1.1-1.fc15.x86_64 libuuid-2.20.1-2.fc16.x86_64
libvorbis-1.3.2-1.fc15.x86_64 libxcb-1.7-3.fc16.x86_64
libxml2-2.7.8-6.fc16.x86_64 pango-1.29.4-1.fc16.x86_64
pixman-0.22.2-1.fc16.x86_64 qt-4.8.0-7.fc16.x86_64
qt-x11-4.8.0-7.fc16.x86_64 speex-1.2-0.13.rc1.fc15.x86_64
zlib-1.2.5-6.fc16.x86_64
(gdb) bt
#0 0x00007ffff0085056 in producer_get_audio (frame=0x7fffc81218a0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0, frequency=
0x7fffd5c29ea8, channels=0x7fffd5c29bcc, samples=0x7fffd5c29eac) at
producer_avformat.c:2379
#1 0x00007ffff7dca40d in mlt_frame_get_audio (self=0x7fffc81218a0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0, frequency=
0x7fffd5c29ea8, channels=0x7fffd5c29bcc, samples=0x7fffd5c29eac) at
mlt_frame.c:666
#2 0x00007fffec6e1c60 in filter_get_audio (frame=0x7fffc81218a0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0,
frequency=<optimized out>, channels=0x7fffd5c29ea4,
samples=0x7fffd5c29eac) at filter_audiochannels.c:33
#3 0x00007ffff7dca40d in mlt_frame_get_audio (self=0x7fffc81218a0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0, frequency=
0x7fffd5c29ea8, channels=0x7fffd5c29ea4, samples=0x7fffd5c29eac) at
mlt_frame.c:666
#4 0x00007fffea5c2fa3 in resample_get_audio (frame=0x7fffc81218a0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0, frequency=
0x7fffd5c29ea8, channels=0x7fffd5c29ea4, samples=0x7fffd5c29eac) at
filter_resample.c:54
#5 0x00007ffff7dca40d in mlt_frame_get_audio (self=0x7fffc81218a0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0, frequency=
0x7fffd5c29ea8, channels=0x7fffd5c29ea4, samples=0x7fffd5c29eac) at
mlt_frame.c:666
#6 0x00007ffff7ddbd50 in producer_get_audio (self=0x7fffc8000fd0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0, frequency=
0x7fffd5c29ea8, channels=0x7fffd5c29ea4, samples=0x7fffd5c29eac) at
mlt_tractor.c:296
#7 0x00007ffff7dca40d in mlt_frame_get_audio (self=0x7fffc8000fd0,
buffer=0x7fffd5c29e88, format=0x7fffd5c29ea0, frequency=
0x7fffd5c29ea8, channels=0x7fffd5c29ea4, samples=0x7fffd5c29eac) at
mlt_frame.c:666
#8 0x00007ffff7dd8d08 in consumer_read_ahead_thread (arg=0x60f2d8) at
mlt_consumer.c:783
#9 0x0000003ec2607d90 in start_thread () from /lib64/libpthread.so.0
#10 0x0000003ec22ef48d in clone () from /lib64/libc.so.6
(gdb) print *samples
$1 = 0
(gdb) print *frequency
$2 = 0
(gdb) quit
--
________________________________________
Maksym Veremeyenko
>From 0f46d2de7af181ba73ba3f4b7cc2d742e442be12 Mon Sep 17 00:00:00 2001
From: Maksym Veremeyenko <[email protected]>
Date: Mon, 12 Mar 2012 13:08:57 +0200
Subject: [PATCH] fix playing audio with 0 channels
---
src/modules/avformat/producer_avformat.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c
index 04b1ab6..2734540 100644
--- a/src/modules/avformat/producer_avformat.c
+++ b/src/modules/avformat/producer_avformat.c
@@ -366,6 +366,8 @@ static mlt_properties find_default_streams( producer_avformat self )
#endif
break;
case CODEC_TYPE_AUDIO:
+ if ( !codec_context->channels )
+ break;
// Use first audio stream
if ( self->audio_index < 0 )
self->audio_index = i;
--
1.7.7.6
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Mlt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mlt-devel