#10869: regression in mime-type parsing of http streams with audio/L16 
Content-Type
-------------------------------------+------------------------------------
             Reporter:  bubbleguuum  |                    Owner:  (none)
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:  avformat
              Version:  unspecified  |               Resolution:
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+------------------------------------
Description changed by bubbleguuum:

Old description:

> http streams whose Content-Type is audio/L16 are not properly handled
> anymore, always resulting in this error (for example, as a result of
> 'ffmpeg -i http://path/to/L16/stream'):
>
> [s16be @ 0xb400006f8e24c7f0] Invalid sample_rate found in mime_type
> "audio/L16"
>
> Such streams have a mime-type with "rate" and "channels" parameters. For
> example:
>
> {{{
> Content-Type: audio/L16;rate=44100;channels=2
> }}}
>
> This error is from pcmdec.c as it cannot find the "rate" parameter to
> parse.
>
> That's because it is passed the mime-type without its parameters in
> http.c, a change that happened in this commit from 8 months ago:
>
> https://github.com/FFmpeg/FFmpeg/commit/0cd2e7dcfbc835f4519f1b2b7da6bd902dbb0190
>
> It can be fixed in two ways:
>
> - revert that commit and let components making used of "mime-type" handle
> it properly if it has parameters (so according to this commit's
> description, modify the HLS component to handle the eventual mime-type
> params)
>
> - add an exception for audio/l16:
>
> {{{
> if (av_strncasecmp(p, "audio/l16", 9) == 0) {
>     s->mime_type = av_strdup(p);
> } else {
>     s->mime_type = av_get_token((const char **)&p, ";");
> }
> }}}

New description:

 http streams whose Content-Type is audio/L16 are not properly handled
 anymore, always resulting in this error (for example, as a result of
 'ffmpeg -i http://path/to/L16/stream'):

 [s16be @ 0xb400006f8e24c7f0] Invalid sample_rate found in mime_type
 "audio/L16"

 Such streams have a mime-type with "rate" and "channels" parameters. For
 example:

 {{{
 Content-Type: audio/L16;rate=44100;channels=2
 }}}

 This error is from pcmdec.c as it cannot find the "rate" parameter to
 parse.

 That's because it is passed the mime-type without its parameters in
 http.c, a change that happened in this commit from 8 months ago:

 
https://github.com/FFmpeg/FFmpeg/commit/0cd2e7dcfbc835f4519f1b2b7da6bd902dbb0190

 It can be fixed in two ways:

 - revert that commit and let components making use of "mime-type" handle
 it properly if it has parameters (so according to this commit's
 description, modify the HLS component to handle the eventual mime-type
 params)

 - add an exception for audio/l16:

 {{{
 if (av_strncasecmp(p, "audio/l16", 9) == 0) {
     s->mime_type = av_strdup(p);
 } else {
     s->mime_type = av_get_token((const char **)&p, ";");
 }
 }}}

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10869#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to