Watch
1
0
Fork
You've already forked mautrix-whatsapp
0
mirror of https://github.com/mautrix/whatsapp.git synced 2026-11-12 09:09:17 -05:00

Compare commits

...
2 changed files with 11 additions and 3 deletions

View file

@ -52,7 +52,7 @@ func (wa *WhatsAppConnector) GetCapabilities() *bridgev2.NetworkGeneralCapabilit
} }
func (wa *WhatsAppConnector) GetBridgeInfoVersion() (info, caps int) { func (wa *WhatsAppConnector) GetBridgeInfoVersion() (info, caps int) {
return 1, 10 return 1, 11
} }
const WAMaxFileSize = 2000 * 1024 * 1024 const WAMaxFileSize = 2000 * 1024 * 1024
@ -67,7 +67,7 @@ func supportedIfFFmpeg() event.CapabilitySupportLevel {
} }
func capID() string { func capID() string {
base := "fi.mau.whatsapp.capabilities.2026_10_01" base := "fi.mau.whatsapp.capabilities.2026_11_10"
if ffmpeg.Supported() { if ffmpeg.Supported() {
return base + "+ffmpeg" return base + "+ffmpeg"
} }
@ -119,6 +119,7 @@ var whatsappCaps = &event.RoomFeatures{
MimeTypes: map[string]event.CapabilitySupportLevel{ MimeTypes: map[string]event.CapabilitySupportLevel{
"audio/ogg; codecs=opus": event.CapLevelFullySupported, "audio/ogg; codecs=opus": event.CapLevelFullySupported,
"audio/ogg": event.CapLevelUnsupported, "audio/ogg": event.CapLevelUnsupported,
"audio/webm": supportedIfFFmpeg(),
}, },
Caption: event.CapLevelDropped, Caption: event.CapLevelDropped,
MaxSize: WAMaxFileSize, MaxSize: WAMaxFileSize,

View file

@ -700,7 +700,14 @@ func (mc *MessageConverter) reuploadFileToWhatsApp(
// Hopefully it's opus already // Hopefully it's opus already
mime = "audio/ogg; codecs=opus" mime = "audio/ogg; codecs=opus"
default: default:
return nil, nil, mime, fmt.Errorf("%w %s in audio message", bridgev2.ErrUnsupportedMediaType, mime) if content.MSC3245Voice == nil || !ffmpeg.Supported() {
return nil, nil, mime, fmt.Errorf("%w %s in audio message", bridgev2.ErrUnsupportedMediaType, mime)
}
data, err = ffmpeg.ConvertBytes(ctx, data, ".ogg", []string{}, []string{"-vn", "-c:a", "libopus"}, mime)
if err != nil {
return nil, nil, mime, fmt.Errorf("%w (voice to ogg): %w", bridgev2.ErrMediaConvertFailed, err)
}
mime = "audio/ogg; codecs=opus"
} }
mediaType = whatsmeow.MediaAudio mediaType = whatsmeow.MediaAudio
case event.MsgFile: case event.MsgFile: