On Thu, Nov 10, 2011 at 11:19:30AM -0500, Justin Ruggles wrote:
> On 11/10/2011 10:56 AM, Kostya Shishkov wrote:
> 
> > On Thu, Nov 10, 2011 at 10:44:55AM -0500, Justin Ruggles wrote:
> >> The Musepack SV7 reference encoder converts mono to stereo when encoding.
> >> ---
> >>  libavcodec/mpc7.c |    9 ++++++++-
> >>  1 files changed, 8 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c
> >> index 6f79c7b..fea60a1 100644
> >> --- a/libavcodec/mpc7.c
> >> +++ b/libavcodec/mpc7.c
> >> @@ -61,6 +61,13 @@ static av_cold int mpc7_decode_init(AVCodecContext * 
> >> avctx)
> >>      static VLC_TYPE hdr_table[1 << MPC7_HDR_BITS][2];
> >>      static VLC_TYPE quant_tables[7224][2];
> >>  
> >> +    /* Musepack SV7 is always stereo */
> >> +    if (avctx->channels != 2) {
> >> +        av_log_ask_for_sample(avctx, "Unsupported number of channels: 
> >> %d\n",
> >> +                              avctx->channels);
> >> +        return AVERROR_PATCHWELCOME;
> >> +    }
> >> +
> >>      if(avctx->extradata_size < 16){
> >>          av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", 
> >> avctx->extradata_size);
> >>          return -1;
> >> @@ -88,7 +95,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * 
> >> avctx)
> >>      c->frames_to_skip = 0;
> >>  
> >>      avctx->sample_fmt = AV_SAMPLE_FMT_S16;
> >> -    avctx->channel_layout = (avctx->channels==2) ? AV_CH_LAYOUT_STEREO : 
> >> AV_CH_LAYOUT_MONO;
> >> +    avctx->channel_layout = AV_CH_LAYOUT_STEREO;
> >>  
> >>      if(vlc_initialized) return 0;
> >>      av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n");
> >> -- 
> > 
> > Yes, but it still lies to be mono. There was an issue with one such file.
> 
> 
> What do you mean it lies?
> 
> The decoder assumes 2 channels everywhere.

Decoder - yes, but container may (and sometimes does) claim it has only one
channel and in this case the second channel should be ignored.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to