Hi,

On Mon, Feb 13, 2012 at 8:29 AM, Ibrahim Sha'ath
<[email protected]> wrote:
>>>>>> > [wmav2 @ 0x106829e20] prev_block_len_bits N out of range
>>>>>> > (where N is in the range 4..6).
>>>>>>
>>>>>> Do these errors occur when you're decoding only a single file, without
>>>>>> threading?
>>>>>
>>>>> Yes they do, and on both platforms, though I've never seen them cause
>>>>> a segfault when not parallelised. Also interspersed with those errors
>>>>> are
>>>>> [wmav2 @ 0x1030a9800] overflow in spectral RLE, ignoring
>>>>> [wmav2 @ 0x1030a9800] frame_len overflow
>>>>>
>>>>> And very occasionally
>>>>> [wmav2 @ 0x1030a9800] len -211 invalid
>>>>>
>>>>> Do these errors suggest anything in particular to you?
>>>>
>>>> Yes, is it possible you're not setting AVCodecContext->bit_rate,
>>>> ->block_align, ->extradata or ->extradata_size?
>>>
>>> I had thought (based on what I'd read in the ffmpeg doxygen) that all
>>> of those fields (certainly bit_rate, extra_data and extradata_size)
>>> were set internally by libav for decoding, and only needed to be set
>>> by the user for encoding?
>>>
>>> If I'm wrong, could you suggest what I should set them to, for a
>>> general decoding solution? I'm seeing no examples online that set
>>> them.
>>
>> They are set, but (in the case of WMA) by the demuxer instead of the
>> decoder. My impression is you're not using the
>> AVFormatContext->streams[%d]->codec for decoding, but rather create
>> one independently. Then you need to copy the demuxer values to the
>> decoder values. If you're using your own demuxer instead of
>> libavformat's, see libavformat for how to read them.
>>
>> Ronald
>
> I'm doing something in the neighbourhood of this:
>
> AVCodecContext* cCtx = fCtx->streams[audioStream]->codec;
> codec = avcodec_find_decoder(cCtx->codec_id);
> if(codec == NULL){
>  throw Exception();
> }
> if(avcodec_open2(cCtx, codec, &opts) < 0){
>  throw Exception();
> }
>
> And then passing that codec context into the decode job. So I think
> that should be fine, no?

Probably. Can a tool like avconv or avplay playback the file
succesfully without throwing errors?

Ronald
_______________________________________________
libav-api mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-api

Reply via email to