Am So., 26. Jan. 2020 um 16:23 Uhr schrieb Federico Simoncelli <federico.simonce...@gmail.com>: > > This patch adds the attempt to identify the pulseaudio channel map and > when possible set the relevant channel_layout parameter of the codec. > > The result is an improvement over the current behavior of guessing the > layout based on the number of channels (for more information see > guess_layout_max). > --- > libavdevice/pulse_audio_dec.c | 37 +++++++++++++++++++++++++++++++---- > 1 file changed, 33 insertions(+), 4 deletions(-) > > diff --git a/libavdevice/pulse_audio_dec.c b/libavdevice/pulse_audio_dec.c > index 50a3c971ae..2f76cfd474 100644 > --- a/libavdevice/pulse_audio_dec.c > +++ b/libavdevice/pulse_audio_dec.c > @@ -135,6 +135,34 @@ static av_cold int pulse_close(AVFormatContext *s) > return 0; > } > > +static int pulse_map_to_layout(pa_channel_map *cmap) > +{ > + const char *map_name = pa_channel_map_to_name(cmap); > + > + if (strcmp(map_name, "mono") == 0) > + return AV_CH_LAYOUT_MONO; > + > + if (strcmp(map_name, "stereo") == 0) > + return AV_CH_LAYOUT_STEREO;
> + if (strcmp(map_name, "surround-40") == 0) > + return AV_CH_LAYOUT_4POINT0; > + > + if (strcmp(map_name, "surround-41") == 0) > + return AV_CH_LAYOUT_4POINT1; > + > + if (strcmp(map_name, "surround-50") == 0) > + return AV_CH_LAYOUT_5POINT0; > + > + if (strcmp(map_name, "surround-51") == 0) > + return AV_CH_LAYOUT_5POINT1; > + > + if (strcmp(map_name, "surround-71") == 0) > + return AV_CH_LAYOUT_7POINT1; Can you confirm that with the existing code, user could set the channel_layout for everything >= 3 channels? Does this still work after your patch? Carl Eugen _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".