From: <sl...@ke...> - 2008-12-13 08:02:04
|
CVS Root: /cvs/gstreamer Module: gst-ffmpeg Changes by: slomo Date: Sat Dec 13 2008 08:02:00 UTC Log message: * 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. Modified files: . : ChangeLog ext/ffmpeg : gstffmpegcodecmap.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-ffmpeg/ChangeLog.diff?r1=1.533&r2=1.534 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-ffmpeg/ext/ffmpeg/gstffmpegcodecmap.c.diff?r1=1.173&r2=1.174 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-ffmpeg/ChangeLog,v retrieving revision 1.533 retrieving revision 1.534 diff -u -d -r1.533 -r1.534 --- ChangeLog 13 Dec 2008 07:55:40 -0000 1.533 +++ ChangeLog 13 Dec 2008 08:01:44 -0000 1.534 @@ -1,5 +1,12 @@ 2008-12-13 Sebastian Dröge <seb...@co...> + * 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 <seb...@co...> * ext/ffmpeg/Makefile.am: * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ff_channel_layout_to_gst), (gst_ff_aud_caps_new): Index: gstffmpegcodecmap.c RCS file: /cvs/gstreamer/gst-ffmpeg/ext/ffmpeg/gstffmpegcodecmap.c,v retrieving revision 1.173 retrieving revision 1.174 diff -u -d -r1.173 -r1.174 --- gstffmpegcodecmap.c 13 Dec 2008 07:55:40 -0000 1.173 +++ gstffmpegcodecmap.c 13 Dec 2008 08:01:45 -0000 1.174 @@ -139,8 +139,9 @@ 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); @@ -150,6 +151,9 @@ } 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; |