[Freeswitch-users] Problem with fs_encode
Guillermo Ruiz Camauer
grcamauer at gmail.com
Tue Jun 27 21:37:10 UTC 2017
Anthony,
I wasn't recompiling the app, which I now managed to do and everything is
back to normal. Thanks!
So if I understand correctly, I must have a version of the app for my "old"
FreeSwitch boxes and another one for my "up to date" FreeSwitch boxes.
Correct?
I guess it's time to update all boxes...
Thanks again,
Guillermo
On Sat, Jun 24, 2017 at 12:57 AM, Anthony Minessale <
anthony.minessale at gmail.com> wrote:
> Are you recompiling the app too against the new code. The patch changes
> abi of the fs libs.
>
>
> On Fri, Jun 23, 2017 at 6:35 PM Guillermo Ruiz Camauer <
> grcamauer at gmail.com> wrote:
>
>> Anthony,
>>
>>
>> Removing these lines:
>>
>> + int scale_w;
>> + int scale_h;
>> + switch_img_fmt_t fmt;
>> + char *auth_username;
>> + char *auth_password;
>>
>> from switch_module_interfaces.h
>>
>> makes my program work again. Any idea of what they could be affecting?
>>
>> Guillermo
>>
>> On Fri, Jun 23, 2017 at 8:16 PM, Anthony Minessale <
>> anthony.minessale at gmail.com> wrote:
>>
>>> My advise is to verify by removing bits or even all of the patch and
>>> double check you did not mess up on the bisect.
>>> like if you can manually reproduce going to the version before this
>>> patch and having it work then go to the version with the patch and try
>>> again etc.
>>>
>>>
>>>
>>> On Fri, Jun 23, 2017 at 6:14 PM, Guillermo Ruiz Camauer <
>>> grcamauer at gmail.com> wrote:
>>>
>>>> I will try removing just those lines in switch_core_file.c. Maybe
>>>> it's one of the other changes, I was just guessing...
>>>>
>>>> Guillermo
>>>>
>>>> On Fri, Jun 23, 2017 at 8:03 PM, Anthony Minessale <
>>>> anthony.minessale at gmail.com> wrote:
>>>>
>>>>> Also does removing just that change in switch_core_file.c from latest
>>>>> version actually make it work? It seems unlikely the next line in the file
>>>>> looking for FPS field is no different really.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Jun 23, 2017 at 6:01 PM, Michael Jerris <mike at jerris.com>
>>>>> wrote:
>>>>>
>>>>>> can you drop a core file and see where its stuck?
>>>>>>
>>>>>> On Jun 23, 2017, at 6:57 PM, Guillermo Ruiz Camauer <
>>>>>> grcamauer at gmail.com> wrote:
>>>>>>
>>>>>> I have created a small utility program based on fs_encode which will
>>>>>> take ALL files in a directory and convert them from .WAV to .G729 and .PCMU
>>>>>> formats. The utility is called wavBatchEncode and takes just a directory
>>>>>> path as an argument.
>>>>>>
>>>>>> This program was working very well until I upgraded FreeSwitch. Now
>>>>>> the program seems to hang when it tries to write out the first converted
>>>>>> files. I have to KILL the program from another terminal. It leaves 2 0
>>>>>> byte files with .PCMU and .G729 extension.
>>>>>>
>>>>>> I have run through a GIT bisect to find where things broke. The
>>>>>> last working version is Version 1.6.16 git ae1cdce 2017-04-11.
>>>>>> The first broken version is 38621e47bad3b63f03a0a27f6ca9ed92f6969032.
>>>>>>
>>>>>> I then used GIT DIFF to see if I could see what had happened. There
>>>>>> are very few modifications between these two commits:
>>>>>>
>>>>>> root at fs3:/usr/src/freeswitch.git# git diff ae1cdce
>>>>>> 38621e47bad3b63f03a0a27f6ca9ed92f6969032
>>>>>> diff --git a/src/include/switch_module_interfaces.h
>>>>>> b/src/include/switch_module_interfaces.h
>>>>>> index e0a5c20..7ca027d 100644
>>>>>> --- a/src/include/switch_module_interfaces.h
>>>>>> +++ b/src/include/switch_module_interfaces.h
>>>>>> @@ -329,6 +329,11 @@ typedef struct switch_mm_s {
>>>>>> switch_video_profile_t vprofile;
>>>>>> switch_video_encode_speed_t vencspd;
>>>>>> uint8_t try_hardware_encoder;
>>>>>> + int scale_w;
>>>>>> + int scale_h;
>>>>>> + switch_img_fmt_t fmt;
>>>>>> + char *auth_username;
>>>>>> + char *auth_password;
>>>>>> } switch_mm_t;
>>>>>>
>>>>>> /*! an abstract representation of a file handle (some parameters
>>>>>> based on compat with libsndfile) */
>>>>>> diff --git a/src/mod/applications/mod_av/avformat.c
>>>>>> b/src/mod/applications/mod_av/avformat.c
>>>>>> index b944625..4b92801 100644
>>>>>> --- a/src/mod/applications/mod_av/avformat.c
>>>>>> +++ b/src/mod/applications/mod_av/avformat.c
>>>>>> @@ -906,7 +906,7 @@ SWITCH_STANDARD_APP(record_av_function)
>>>>>> char codec_str[256];
>>>>>> const AVCodecDescriptor *desc;
>>>>>>
>>>>>> - if (!strncmp(data, "rtmp://", 7)) {
>>>>>> + if (!strncmp(data, "rtmp://", 7) || !strncmp(data,
>>>>>> "rtsp://", 7)) {
>>>>>> fmt->video_codec = AV_CODEC_ID_H264;
>>>>>> fmt->audio_codec = AV_CODEC_ID_AAC;
>>>>>> }
>>>>>> @@ -1694,9 +1694,20 @@ static switch_status_t
>>>>>> av_file_open(switch_file_handle_t *handle, const char *pa
>>>>>> return SWITCH_STATUS_GENERR;
>>>>>> } else if (handle->stream_name && (!strcasecmp(handle->stream_name,
>>>>>> "rtmp") || !strcasecmp(handle->stream_name, "youtube"))) {
>>>>>> format = "flv";
>>>>>> - switch_snprintf(file, sizeof(file), "rtmp://%s",
>>>>>> path);
>>>>>> +
>>>>>> + // meh really silly format for the user / pass
>>>>>> libav.....
>>>>>> + if (handle->mm.auth_username &&
>>>>>> handle->mm.auth_password) {
>>>>>> + switch_snprintf(file, sizeof(file), "
>>>>>> rtmp://%s pubUser=%s pubPasswd=%s flashver=FMLE/3.0", path,
>>>>>> handle->mm.auth_username, handle->mm.auth_password);
>>>>>> + } else {
>>>>>> + switch_snprintf(file, sizeof(file), "
>>>>>> rtmp://%s", path);
>>>>>> + }
>>>>>> +
>>>>>> + } else if (handle->stream_name && !strcasecmp(handle->stream_name,
>>>>>> "rtsp")) {
>>>>>> + format = "rtsp";
>>>>>> + switch_snprintf(file, sizeof(file), "rtsp://%s",
>>>>>> path);
>>>>>> }
>>>>>>
>>>>>> +
>>>>>> ext++;
>>>>>>
>>>>>> if ((context = (av_file_context_t *)switch_core_alloc(handle->memory_pool,
>>>>>> sizeof(av_file_context_t))) == 0) {
>>>>>> @@ -1783,7 +1794,7 @@ static switch_status_t av_file_open(switch_file_handle_t
>>>>>> *handle, const char *pa
>>>>>> if (fmt->video_codec != AV_CODEC_ID_NONE) {
>>>>>> const AVCodecDescriptor *desc;
>>>>>>
>>>>>> - if ((handle->stream_name &&
>>>>>> (!strcasecmp(handle->stream_name, "rtmp") ||
>>>>>> !strcasecmp(handle->stream_name, "youtube")))) {
>>>>>> + if ((handle->stream_name &&
>>>>>> (!strcasecmp(handle->stream_name, "rtmp") ||
>>>>>> !strcasecmp(handle->stream_name, "rtsp") ||
>>>>>> !strcasecmp(handle->stream_name, "youtube")))) {
>>>>>>
>>>>>> if (fmt->video_codec != AV_CODEC_ID_H264 ) {
>>>>>> fmt->video_codec = AV_CODEC_ID_H264;
>>>>>> // force H264
>>>>>> @@ -2525,6 +2536,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avformat_load)
>>>>>>
>>>>>> supported_formats[i++] = "av";
>>>>>> supported_formats[i++] = "rtmp";
>>>>>> + supported_formats[i++] = "rtsp";
>>>>>> supported_formats[i++] = "mp4";
>>>>>> supported_formats[i++] = "m4a";
>>>>>> supported_formats[i++] = "mov";
>>>>>> diff --git a/src/mod/applications/mod_av/mod_av.c
>>>>>> b/src/mod/applications/mod_av/mod_av.c
>>>>>> index 3d3bd82..141fcdc 100644
>>>>>> --- a/src/mod/applications/mod_av/mod_av.c
>>>>>> +++ b/src/mod/applications/mod_av/mod_av.c
>>>>>> @@ -93,7 +93,7 @@ int mod_av_lockmgr_cb(void **m, enum AVLockOp op)
>>>>>> static void log_callback(void *ptr, int level, const char *fmt,
>>>>>> va_list vl)
>>>>>> {
>>>>>> switch_log_level_t switch_level = SWITCH_LOG_DEBUG;
>>>>>> -
>>>>>> + return;
>>>>>> /* naggy messages */
>>>>>> if (level == AV_LOG_DEBUG || level == AV_LOG_WARNING) return;
>>>>>>
>>>>>> diff --git a/src/switch_core_file.c b/src/switch_core_file.c
>>>>>> index 46ee539..aff9442 100644
>>>>>> --- a/src/switch_core_file.c
>>>>>> +++ b/src/switch_core_file.c
>>>>>> @@ -177,6 +177,14 @@ SWITCH_DECLARE(switch_status_t)
>>>>>> switch_core_perform_file_open(const char *file,
>>>>>> fh->mm.try_hardware_encoder =
>>>>>> switch_true(val);
>>>>>> }
>>>>>>
>>>>>> + if ((val = switch_event_get_header(fh->params,
>>>>>> "auth_username"))) {
>>>>>> + fh->mm.auth_username =
>>>>>> switch_core_strdup(fh->memory_pool, val);
>>>>>> + }
>>>>>> +
>>>>>> + if ((val = switch_event_get_header(fh->params,
>>>>>> "auth_password"))) {
>>>>>> + fh->mm.auth_password =
>>>>>> switch_core_strdup(fh->memory_pool, val);
>>>>>> + }
>>>>>> +
>>>>>> if ((val = switch_event_get_header(fh->params,
>>>>>> "fps"))) {
>>>>>> float ftmp = atof(val);
>>>>>> if (ftmp > 0.0f) {
>>>>>> (END)
>>>>>>
>>>>>>
>>>>>> I believe that it is the changes in switch_core_file.c that break my
>>>>>> utility program, but I can't be sure. Just o add some detail, I have a
>>>>>> Digium TCE400 card in my system which handles the G729 conversion.
>>>>>>
>>>>>> I have no idea of what those auth_username and auth_password
>>>>>> parameters are, but that seems to break things for me. Any idea of what I
>>>>>> can do to get things working again?
>>>>>>
>>>>>> I have created a PasteBin with the code of my fs_encode derived
>>>>>> utility: https://pastebin.freeswitch.org/view/a3d64c69 It is pretty
>>>>>> short.
>>>>>>
>>>>>>
>>>>>>
>>>>>> ____________________________________________________________
>>>>>> _____________
>>>>>> Professional FreeSWITCH Consulting Services:
>>>>>> consulting at freeswitch.org
>>>>>> http://www.freeswitchsolutions.com
>>>>>>
>>>>>> Official FreeSWITCH Sites
>>>>>> http://www.freeswitch.org
>>>>>> http://confluence.freeswitch.org
>>>>>> http://www.cluecon.com
>>>>>>
>>>>>> FreeSWITCH-users mailing list
>>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/
>>>>>> options/freeswitch-users
>>>>>> http://www.freeswitch.org
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Anthony Minessale II ♬ @anthmfs ♬ @FreeSWITCH ♬
>>>>>
>>>>> ☞ http://freeswitch.org/ ☞ http://cluecon.com/ ☞
>>>>> http://twitter.com/FreeSWITCH
>>>>> ☞ irc.freenode.net #freeswitch ☞ *http://freeswitch.org/g+
>>>>> <http://freeswitch.org/g+>*
>>>>>
>>>>> ClueCon Weekly Development Call
>>>>> ☎ sip:888 at conference.freeswitch.org ☎ +19193869900 <(919)%20386-9900>
>>>>>
>>>>>
>>>>> https://www.youtube.com/watch?v=9XXgW34t40s
>>>>> https://www.youtube.com/watch?v=NLaDpGQuZDA
>>>>>
>>>>> ____________________________________________________________
>>>>> _____________
>>>>> Professional FreeSWITCH Consulting Services:
>>>>> consulting at freeswitch.org
>>>>> http://www.freeswitchsolutions.com
>>>>>
>>>>> Official FreeSWITCH Sites
>>>>> http://www.freeswitch.org
>>>>> http://confluence.freeswitch.org
>>>>> http://www.cluecon.com
>>>>>
>>>>> FreeSWITCH-users mailing list
>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/
>>>>> options/freeswitch-users
>>>>> http://www.freeswitch.org
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Guillermo Ruiz Camauer
>>>>
>>>> ____________________________________________________________
>>>> _____________
>>>> Professional FreeSWITCH Consulting Services:
>>>> consulting at freeswitch.org
>>>> http://www.freeswitchsolutions.com
>>>>
>>>> Official FreeSWITCH Sites
>>>> http://www.freeswitch.org
>>>> http://confluence.freeswitch.org
>>>> http://www.cluecon.com
>>>>
>>>> FreeSWITCH-users mailing list
>>>> FreeSWITCH-users at lists.freeswitch.org
>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/
>>>> options/freeswitch-users
>>>> http://www.freeswitch.org
>>>>
>>>
>>>
>>>
>>> --
>>> Anthony Minessale II ♬ @anthmfs ♬ @FreeSWITCH ♬
>>>
>>> ☞ http://freeswitch.org/ ☞ http://cluecon.com/ ☞
>>> http://twitter.com/FreeSWITCH
>>> ☞ irc.freenode.net #freeswitch ☞ *http://freeswitch.org/g+
>>> <http://freeswitch.org/g+>*
>>>
>>> ClueCon Weekly Development Call
>>> ☎ sip:888 at conference.freeswitch.org ☎ +19193869900
>>>
>>> https://www.youtube.com/watch?v=9XXgW34t40s
>>> https://www.youtube.com/watch?v=NLaDpGQuZDA
>>>
>>> ____________________________________________________________
>>> _____________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org
>>> http://www.freeswitchsolutions.com
>>>
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org
>>> http://confluence.freeswitch.org
>>> http://www.cluecon.com
>>>
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>>>
>>
>>
>>
>> --
>> Guillermo Ruiz Camauer
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://confluence.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>
> --
> Anthony Minessale II ♬ @anthmfs ♬ @FreeSWITCH ♬
>
> ☞ http://freeswitch.org/ ☞ http://cluecon.com/ ☞
> http://twitter.com/FreeSWITCH
> ☞ irc.freenode.net #freeswitch ☞ *http://freeswitch.org/g+
> <http://freeswitch.org/g+>*
>
> ClueCon Weekly Development Call
> ☎ sip:888 at conference.freeswitch.org ☎ +19193869900
>
> https://www.youtube.com/watch?v=9XXgW34t40s
> https://www.youtube.com/watch?v=NLaDpGQuZDA
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
--
Guillermo Ruiz Camauer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20170627/176cfa74/attachment-0001.html>
More information about the FreeSWITCH-users
mailing list