From: Sebastian Dröge Date: Sat, 13 Dec 2008 08:01:45 +0000 (+0000) Subject: ext/ffmpeg/gstffmpegcodecmap.c: If no channel layout is provided don't set a NONE... X-Git-Tag: GIT_CONVERSION~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=923580b14f0d40ccc3ca6118d5a044aa9a9f9848;p=platform%2Fupstream%2Fgst-libav.git ext/ffmpeg/gstffmpegcodecmap.c: If no channel layout is provided don't set a NONE layout in the case of >2 channels b... Original commit message from CVS: * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ff_channel_layout_to_gst): If no channel layout is provided don't set a NONE layout in the case of >2 channels but instead let audioconvert add some default layout. --- diff --git a/ChangeLog b/ChangeLog index f503889..0bc2dcf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2008-12-13 Sebastian Dröge + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ff_channel_layout_to_gst): + If no channel layout is provided don't set a NONE layout in the + case of >2 channels but instead let audioconvert add some default + layout. + +2008-12-13 Sebastian Dröge + * ext/ffmpeg/Makefile.am: * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ff_channel_layout_to_gst), (gst_ff_aud_caps_new): diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c index ed2e01f..1d896df 100644 --- a/ext/ffmpeg/gstffmpegcodecmap.c +++ b/ext/ffmpeg/gstffmpegcodecmap.c @@ -139,8 +139,9 @@ gst_ff_channel_layout_to_gst (guint64 channel_layout, guint channels) none_layout = TRUE; } - if (!gst_audio_check_channel_positions (pos, nchannels)) { - GST_ERROR ("Invalid channel layout - assuming NONE layout"); + if (!none_layout && !gst_audio_check_channel_positions (pos, nchannels)) { + GST_ERROR ("Invalid channel layout %" G_GUINT64_FORMAT + " - assuming NONE layout", channel_layout); none_layout = TRUE; } @@ -150,6 +151,9 @@ gst_ff_channel_layout_to_gst (guint64 channel_layout, guint channels) } else if (nchannels == 2) { pos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; pos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + } else if (channel_layout == 0) { + g_free (pos); + pos = NULL; } else { for (i = 0; i < nchannels; i++) pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE;