Am 04.02.2015 um 17:38 schrieb Vittorio Giovara:
> On Wed, Feb 4, 2015 at 8:27 AM, Oleksij Rempel <[email protected]> wrote:
>> Signed-off-by: Oleksij Rempel <[email protected]>
>> Signed-off-by: Luca Barbato <[email protected]>
>> Signed-off-by: Vittorio Giovara <[email protected]>
>> ---
>>  Changelog                |   2 +-
>>  doc/general.texi         |   1 +
>>  libavformat/Makefile     |   1 +
>>  libavformat/allformats.c |   1 +
>>  libavformat/dss.c        | 343 
>> +++++++++++++++++++++++++++++++++++++++++++++++
>>  5 files changed, 347 insertions(+), 1 deletion(-)
>>  create mode 100644 libavformat/dss.c
> 
> Hi, thanks for the update!
> Unfortunately there is still a problem within the code, but I think I
> triaged it enough for you to fix it.
> When you run a fate test under valgrind you'll see a lot of warnings
> related to uninitialized values:
> 
> ==68641== Conditional jump or move depends on uninitialised value(s)
> ==68641==    at 0x1002A8CC9: dss_sp_unpack_coeffs (in ./avconv)
> ==68641==    by 0x1002A8410: dss_sp_decode_one_frame (in ./avconv)
> ==68641==    by 0x1002A83D0: dss_sp_decode_frame (in ./avconv)
> ==68641==    by 0x10079F251: avcodec_decode_audio4 (in ./avconv)
> ==68641==    by 0x10001A643: decode_audio (in ./avconv)
> ==68641==    by 0x10001987C: process_input_packet (in ./avconv)
> ==68641==    by 0x100018418: process_input (in ./avconv)
> ==68641==    by 0x100015213: transcode (in ./avconv)
> ==68641==    by 0x100014B2E: main (in ./avconv)
> ==68641==  Uninitialised value was created by a heap allocation
> ==68641==    at 0x66BB: malloc (in
> /usr/local/Cellar/valgrind/3.10.1/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
> ==68641==    by 0x714B: realloc (in
> /usr/local/Cellar/valgrind/3.10.1/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
> ==68641==    by 0x100A1BDB7: av_realloc (in ./avconv)
> ==68641==    by 0x100A0DB3A: av_buffer_realloc (in ./avconv)
> ==68641==    by 0x10024CD80: packet_alloc (in ./avconv)
> ==68641==    by 0x10024CCD5: av_new_packet (in ./avconv)
> ==68641==    by 0x10008095B: dss_sp_read_packet (in ./avconv)
> ==68641==    by 0x100080848: dss_read_packet (in ./avconv)
> ==68641==    by 0x10018FE64: ff_read_packet (in ./avconv)
> ==68641==    by 0x100190C35: read_frame_internal (in ./avconv)
> ==68641==    by 0x100193366: avformat_find_stream_info (in ./avconv)
> ==68641==    by 0x10000853C: open_input_file (in ./avconv)
> 
> This would perfectly explain why the fate hashes are so unpredictable
> and change at every run.
> It is very likely that the decoder is reading parts of the input
> buffer (the avpacket) which are not completely initialized: so either
> demuxer does not fully fill it up or decoder reads somewhere past the
> data (doubtful).
> 
> As I was suggested, you could try printing all data read in
> dss_sp_unpack_coeffs to see if some variable hits it and initialize it
> properly. You also probably need to regen the tests with make
> fate-dss-sp GEN=1. Remember to run valgrind with --track-origins=yes.
> 
> Cheers.
> 

Fixed. Which files did you used to generate tests?


-- 
Regards,
Oleksij

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to