[Ffmpeg-devel-irc] ffmpeg-devel.log.20120106

burek burek021 at gmail.com
Sat Jan 7 02:05:03 CET 2012


[00:00] <ubitux> the last one is the top of the callstack
[00:00] <OanaStratulat> so the problem started at the last line
[00:00] <ubitux> but keep in mind some functions may have been called (and returned) before
[00:00] <cbsrobot> ubitux: thanks
[00:00] <OanaStratulat> yes
[00:01] <OanaStratulat> ubitux: do you know where av_assert0 (..) is defined ?
[00:01] <OanaStratulat> in which file ?
[00:02] <ubitux> avassert.h i guess
[00:02] <ubitux> but it doesn't matter really
[00:02] <ubitux> the issue here is that the number of output channel is invalid
[00:02] <cbsrobot> ubitux: as we do not have AVMEDIA_TYPE_TIMCODE - can I assume AVMEDIA_TYPE_DATA is always a timecode track ?
[00:02] <ubitux> and is not defined correctly according to the specified channel layout
[00:02] <cbsrobot> what do you think ?
[00:03] <ubitux> cbsrobot: i don't think so :p
[00:03] <cbsrobot> ok - thats what I thought
[00:03] <cbsrobot> I'm looking into http://ffmpeg.org/trac/ffmpeg/ticket/236
[00:04] <ubitux> cbsrobot: if you fix this one, you will certainly want to fix #810 too
[00:04] <cbsrobot> and I solved one part, but the "gmcd" atom can be extended with the tmcd atom if it's a timecode track
[00:05] <ubitux> michaelni: hehe yeah /topic on irc should be part of the checklist :p
[00:05] <cbsrobot> but I'm not sure how to distingush between DATA and TIMECODE tracks - any ideas ?
[00:06] <michaelni> without reading the log, codec_id
[00:07] <durandal_1707> michaelni: -tag bug is already reported as #867 (for mov conainter only)
[00:08] <OanaStratulat> ubitux: the ch_count is 2 when i avlog
[00:08] <ubitux> ok, but the ch layout is incorrect right?
[00:09] <OanaStratulat> ubitux: it is 3
[00:09] <OanaStratulat> s->in_ch_layout
[00:09] <OanaStratulat> for this i am checking
[00:10] <ubitux> in_ch_layout is the input channel layout; it's a mask which describe how the input audio stream is composed
[00:10] <ubitux> and in_ch_count is the number of input channels in the stream
[00:10] <cbsrobot> michaelni: I'll try that
[00:10] <ubitux> you have the same with out_* for the output
[00:11] <OanaStratulat> so the out i need to test no?
[00:11] <ubitux> that might help you to understand a bit what's happening there
[00:11] <ubitux> [SWR @ 0xadb23c0] Value 22.000000 for parameter 'och' out of range
[00:11] <ubitux> Assertion s->out.ch_count failed at libswresample/swresample.c:229
[00:11] <ubitux> i have this
[00:11] <ubitux> och ’ output channel count
[00:11] <OanaStratulat> yes the och is 0
[00:12] <OanaStratulat> http://pastebin.com/PFUx56WY
[00:12] <OanaStratulat> is 0 a good value or it must pe >0 always ?
[00:12] <ubitux> >0
[00:12] <ubitux> this is what the assert is checking
[00:12] <ubitux> it must be >0 at that point
[00:13] <ubitux> and if you look just a bit at the code, you'll see a check
[00:13] <ubitux>     if(!s->out.ch_count)
[00:13] <ubitux>         s->out.ch_count= av_get_channel_layout_nb_channels(s->out_ch_layout);
[00:13] <ubitux> basically, if you don't have a number of output channel specified, it tries to guess the number based on the channel layout
[00:13] <ubitux> but in that case, it seems to fail
[00:13] <ubitux> you have to figure out why
[00:14] <OanaStratulat> so i must dig in av_get_channel_layout_nb_channels right ?
[00:14] <ubitux> av_get_channel_layout_nb_channels() is likely correct
[00:14] <ubitux> but the input might not be
[00:15] <OanaStratulat> the input is 0
[00:15] <ubitux> (which means the out_ch_layout is wrong or something...)
[00:15] <OanaStratulat> yes
[00:15] <ubitux> it seems the layout is guess from the channel count and the channel count from the layout
[00:15] <ubitux> so since both are zero... heh
[00:16] <OanaStratulat> but if both are 0 it cannot guess no?
[00:16] <OanaStratulat> a test for 0 vals must be put there
[00:16] <OanaStratulat> right ?
[00:17] <ubitux> OanaStratulat: this is bothering me a bit
[00:17] <ubitux> i wonder if "[SWR @ 0xadb23c0] Value 22.000000 for parameter 'och' out of range
[00:17] <ubitux> should not be made more fatal
[00:17] <ubitux> like "hey you're trying to fed the swr with invalid input, just fix it"
[00:18] <ubitux> but i'm not sure if this won't break already playable inputs
[00:18] <ubitux> michaelni: you may want to comment on this :p
[00:19] <OanaStratulat> it`s kinda hard to start from scratch and repair bugs not knowing what the code does :(
[00:20] <ubitux> libswresample is for audio processing
[00:20] <ubitux> it helps to do misc convert (channel layouts changes, channel number changes, various mangling, etc.)
[00:21] <OanaStratulat> okok
[00:22] <ubitux> something is bothering me
[00:22] <ubitux> "[SWR @ 0xadb23c0] Value 22.000000 for parameter 'och' out of range" this leads to 0 in och option
[00:22] <ubitux> but not the default specified value
[00:22] <OanaStratulat> what is the default?
[00:22] <ubitux> look at the top of the file
[00:23] <ubitux> the AVOption array
[00:23] <ubitux> {.dbl=...} is the default value
[00:23] <ubitux> and this is set to 2
[00:23] <ubitux> but you says it's actually zero
[00:23] <OanaStratulat> you say it must never be 0
[00:23] <OanaStratulat> and when it is 0 why shouldn`t i change it to 2
[00:24] <OanaStratulat> to the default
[00:26] <OanaStratulat> if i do if(s->out.ch_count==0)s->out.ch_count=2; it says Can not resample 2 channels @ 32000 Hz to 22 channels @ 32000 Hz
[00:27] <OanaStratulat> so how does it get the 22 value ?
[00:28] <ubitux> 22 ch is the input i guess
[00:28] <ubitux> i'd personnally try to change write_number() in libavutil/opt.c
[00:28] <ubitux> and set the default value if it fails
[00:29] <ubitux> i'm not sure this will fix the issue, but at least it should fix the assert trigger
[00:30] <ubitux> maybe this is wrong to do but well
[00:30] <ubitux> you'lle certainly think of something better ;)
[00:30] <ubitux> -e
[00:32] <OanaStratulat> and in write_number i should check if o->name==och and if yes set default?
[00:33] <ubitux> alternately you may want to check ret value of the av_opt_set_int() in swr_alloc_set_opts()
[00:33] <ubitux> and return NULL in case one fails
[00:33] <OanaStratulat> 1st i want to choose the approach with write_number
[00:33] <OanaStratulat> to set the default
[00:33] <michaelni> i think in case of failure AVOptions should leave the last value
[00:34] <michaelni> not set the default
[00:34] <OanaStratulat> so is not good to set the default val if out of range /
[00:34] <michaelni> swr should fail if things are out of range
[00:34] <michaelni> SWR_CH_MAX 16
[00:35] <michaelni> so more than 16 should fail unless the define is chnaged
[00:35] <OanaStratulat> yes i have 22 channels 
[00:35] <OanaStratulat> but can a good file not a fuzzed one have more than 16 channels ?
[00:36] <michaelni> it can, in which case SWR_CH_MAX can be increased
[00:36] <michaelni> but ive never seen more than 16
[00:38] <OanaStratulat> so if a file has more than 16 channels it should give an error no ? like "operations with 16+ channel files are not supported "? 
[00:38] <OanaStratulat> and then return an error ?
[00:38] <michaelni> yes, the can maybe be achived my checling av_set_int() return but iam not sure what sets it to 22. ive not looked
[00:39] <ubitux> the input has 22 ch, so it is mapped to 22 for the output too
[00:39] <ubitux> afaiu
[00:39] <OanaStratulat> the input is fuzzed this is how i found the bug
[00:39] <ubitux> while the input seems to be changed into 2ch, the output isn't
[00:39] <michaelni> avfilter cant handle 22 either ...
[00:40] <OanaStratulat> so what approach must i use ?
[00:41] <OanaStratulat> add a check if there are more than 16 channels and inform the user ?
[00:44] <durandal_1707> what about this avpacket_split_sidedata, libav doesn't have this?
[00:44] Action: durandal_1707 is trying to make mid-stream changes of width/height working
[00:45] <michaelni> durandal_1707, they where working last i checked, and long before libav
[00:45] <durandal_1707> with it I cant get apply_param_change to work
[00:45] <durandal_1707> will compile libav now and see if this work at all
[00:45] <michaelni> -threads 1 is probably needed for res changes with come codecs
[00:46] <durandal_1707> michaelni: it is per packet
[00:46] <durandal_1707> at least it is supposed to be called from demuxer
[00:46] <OanaStratulat> michaelni: any opinions on how to deal with the 22 value ?
[00:47] <durandal_1707> than decoder just use new value - no need for extra hackery
[00:48] <michaelni> OanaStratulat, check av_opt_set_int() return value
[00:49] <OanaStratulat> michaelni: i look into that part of the code and i really do not understand a bit of it, sorry here
[00:51] <OanaStratulat> it gives a negative value
[00:51] <michaelni> that means error 
[00:52] <michaelni> durandal_1707, which decode is this btw that doesnt work ?
[00:52] <durandal_1707> interplayvideo
[00:52] <OanaStratulat> so what should av_opt_set_int return ?
[00:52] <durandal_1707> btw apply_param_chane is missing in decode_video
[00:53] <michaelni> OanaStratulat, if it returns <0 then the callmg code should error out
[00:53] <OanaStratulat> so it must return an err and stop the program?
[00:53] <OanaStratulat> not go and assert after it no?
[00:54] <durandal_1707> assert should panic
[00:54] <michaelni> durandal_1707, its missing in libavs decode_video too
[00:54] <durandal_1707> michaelni: yes, and i'm working with code that have it
[00:55] <OanaStratulat> michaelni: when it gives <0 i should give an return averror no?
[00:57] <michaelni> OanaStratulat, depends on the function, some have NULL return on error some AVERROR, ffmpeg uses exit_program
[00:57] <OanaStratulat> michaelni: so a good way to handle this 22 channel problem is to check if av_opt_set_int() return <0 values no ?
[00:58] <michaelni> yes
[00:58] <OanaStratulat> michaelni: and if it does what kind of return i must use ?
[00:59] <michaelni> where is the -1 returning call ?
[00:59] <OanaStratulat> av_opt_set_int is returning -34
[01:00] <michaelni> ok but where ?
[01:00] <OanaStratulat> set_number(obj, name, 1, 1, val, search_flags)
[01:00] <OanaStratulat> this gives the -34
[01:01] <ubitux> from 
[01:01] <ubitux> where?
[01:01] <ubitux> swr_alloc_set_opts?
[01:01] <OanaStratulat> i do not get this sorry
[01:01] <OanaStratulat> which function calls av_opt_set_int ?
[01:01] <ubitux> yes
[01:02] <OanaStratulat> in struct SwrContext *swr_alloc_set_opts
[01:03] <OanaStratulat> there are ich and och set
[01:05] <CIA-101> ffmpeg: 03Carl Eugen Hoyos 07master * rd185278c36 10ffmpeg/libavcodec/ (mjpegdec.c mjpegdec.h): 
[01:05] <CIA-101> ffmpeg: Support decoding of some unusual jpeg samples.
[01:05] <CIA-101> ffmpeg: Avoid unsupported pix_fmts by upscaling chroma.
[01:05] <CIA-101> ffmpeg: Fixes ticket #878.
[01:05] <CIA-101> ffmpeg: 03Carl Eugen Hoyos 07master * r09f25a9cb0 10ffmpeg/libavcodec/ (raw.c rawdec.c): 
[01:05] <CIA-101> ffmpeg: Allow decoding of uyvy422 CYUV with -vcodec rawvideo.
[01:05] <CIA-101> ffmpeg: FourCC CYUV can be Creative YUV and uyvy422 rawvideo.
[01:07] <OanaStratulat> michaelni: ^
[01:07] <michaelni> durandal_1707, where exactly did you add  apply_param_change? and how exactly does it fail ?
[01:08] <michaelni> OanaStratulat, put the return check in ffmpeg.c av_opt_set_int(ost->swr, "och", enc->channels, 0);
[01:09] <michaelni> it should exit_program(1) in case of error
[01:09] <durandal_1707> michaelni: https://github.com/richardpl/libav/commit/fac8afe64ec57cd0fe37564ab9cfc152d0f8f0d2
[01:09] <durandal_1707> code in ffmpeg is just on different lines (like for audio)
[01:09] <OanaStratulat> michaelni: where exactly in ffmpeg ?
[01:10] <michaelni> apply_param_changes must be after av_packet_split_side_data
[01:10] <michaelni> OanaStratulat, there where configure is
[01:10] <durandal_1707> yup, there it is
[01:11] <OanaStratulat> michaelni: #if CONFIG_AVFILTER there?
[01:12] <michaelni> durandal_1707, apply_params sets with and then set_dimensions uses coded_width? this looks a bit odd
[01:13] <michaelni> OanaStratulat, line 1101
[01:16] <OanaStratulat> michaelni: no av_log with some information ?
[01:16] <OanaStratulat> michaelni: only the exit_program(1) ?
[01:19] <michaelni> av_log() too
[01:19] <OanaStratulat> what log to output ?
[01:19] <OanaStratulat> och > 16 ?
[01:23] <OanaStratulat> michaelni: av_log(0,0,"och >16"); is this good ?
[01:25] <michaelni> av_log(NULL, AV_LOG_FATAL, 
[01:26] <michaelni> "too many output channels"
[01:26] <OanaStratulat> av_log(NULL, AV_LOG_FATAL, "och >16\n");
[01:26] <OanaStratulat> ok
[01:26] <OanaStratulat> michaelni: file a bug and then submit to melange is that ok?
[01:27] <CIA-101> ffmpeg: 03ami_stuff 07master * rfebf75f3d2 10ffmpeg/libavcodec/pnm.c: 
[01:27] <CIA-101> ffmpeg: pam: Reject 64bpp rgba.
[01:27] <CIA-101> ffmpeg: Fixes ticket #883
[01:29] <michaelni> OanaStratulat, yes
[01:34] <OanaStratulat> michaelni: http://google-melange.appspot.com/gci/task/view/google/gci2011/7180407 marked as completed. https://ffmpeg.org/trac/ffmpeg/ticket/887  patch is on track and melange
[01:40] <CIA-101> ffmpeg: 03Carl Eugen Hoyos 07master * re9a591d1f0 10ffmpeg/libavcodec/Makefile: Fix compilation with --disable-everything --enable-demuxer=mov.
[01:40] <ubitux> I'd say "invalid number of output channels" instead
[01:41] <OanaStratulat> michaelni: should i change it ?
[01:42] <michaelni> yes
[01:42] <ubitux> OanaStratulat: if you can add some spacing around the '<' while you are it too&
[01:43] <OanaStratulat> ubitux: done
[01:43] <OanaStratulat> any other comments before commit?
[01:45] <ubitux> it's strange not to have the check on the ich too
[01:45] <OanaStratulat> add the check for ich too?
[01:46] <OanaStratulat> michaelni: ^
[01:46] <ubitux> oh, and better than "invalid ...", maybe "Unsupported number of input/output channels"
[01:46] <ubitux> since it's a number of channels not supported by swr
[01:46] <ubitux> but this is just nitpicking
[01:47] <ubitux> i'd say yes for ich, michaelni might want to confirm
[01:48] <michaelni> yes both should be checked ideally
[01:49] <OanaStratulat> av_opt_set_int(ost->swr, "ich", enc->channels, 0)
[01:49] <OanaStratulat> like this the function is called /
[01:50] <ubitux> huh?
[01:50] <OanaStratulat> for the ich
[01:50] <OanaStratulat> the test
[01:50] <OanaStratulat> av_opt_set_int(ost->swr, "och", enc->channels, 0) < 0 no ?
[01:50] <OanaStratulat> with "ich" ?
[01:50] <ubitux> just change the line above
[01:51] <ubitux> add the check on this: av_opt_set_int(ost->swr, "ich", dec->channels, 0);  too
[01:51] <OanaStratulat> okok
[01:51] <ubitux> "Unsupported number of input channels" if set ich < 0, and "Unsupported number of output channels" if och < 0
[01:52] <ubitux> (if *set* och of course)
[01:54] <OanaStratulat> ubitux: http://pastebin.com/Sy4ru7g5 good ?
[01:54] <ubitux> please squash the commits
[01:55] <OanaStratulat> how do i do that ?
[01:55] <CIA-101> ffmpeg: 03Michael Niedermayer 07master * rc88f0b728c 10ffmpeg/libavcodec/tta.c: 
[01:55] <CIA-101> ffmpeg: tta: Fix regression of 24bit decoding.
[01:55] <CIA-101> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[01:55] <CIA-101> ffmpeg: 03Michael Niedermayer 07master * rc4f237a981 10ffmpeg/libavcodec/x86/ (cabac.h h264_i386.h): (log message trimmed)
[01:55] <CIA-101> ffmpeg: Revert commit 599b4c6efddaed33b1667c386b34b07729ba732b
[01:55] <CIA-101> ffmpeg:  Author: Mans Rullgard <mans at mansr.com>
[01:55] <CIA-101> ffmpeg:  Date: Sun Dec 11 21:41:59 2011 +0000
[01:55] <CIA-101> ffmpeg:  x86: cabac: replace explicit memory references with "m" operands
[01:55] <CIA-101> ffmpeg:  This replaces the explicit offset(reg) memory references with
[01:55] <CIA-101> ffmpeg:  "m" operands for the same locations. As a result, one fewer
[01:55] <CIA-101> ffmpeg: 03James Zern 07master * r95afa0a573 10ffmpeg/libavcodec/libvpxenc.c: 
[01:55] <CIA-101> ffmpeg: libvpxenc: restore vp8flags for compatibility
[01:55] <CIA-101> ffmpeg: removed in 98df93c, this makes the documentation correct again.
[01:55] <ubitux> OanaStratulat: is the first patch already commited?
[01:55] <CIA-101> ffmpeg: Found-by: j at v2v.cc
[01:55] <CIA-101> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[01:55] <OanaStratulat> yes
[01:55] <ubitux> OanaStratulat: git commit ffmpeg.c --amend
[01:55] <ubitux> then check with git show
[01:56] <OanaStratulat> yes it is good
[01:57] <OanaStratulat> how can i remove a file from trac?
[01:58] <OanaStratulat> michaelni: 0001-Patch-for-assertion-error-in-swresample.c.-Fiexes-bu.2.patch  use this patch . http://google-melange.appspot.com/gci/task/view/google/gci2011/7180407  
[01:59] <OanaStratulat> michaelni: https://ffmpeg.org/trac/ffmpeg/ticket/887
[01:59] <ubitux> "inputput"
[02:00] <ubitux> otherwise LGTM
[02:00] <OanaStratulat> amend
[02:00] <ubitux> OanaStratulat: did you run the fate tests?
[02:00] <OanaStratulat> or can you change that locally ?
[02:00] <OanaStratulat> ubitux: no, how do i do that?
[02:00] <OanaStratulat> make fate ?
[02:00] <ubitux> make fate-rsync SAMPLES=fate-suite/ 
[02:01] <ubitux> then make fate SAMPLES=fate-suite/ 
[02:01] <ubitux> OanaStratulat: i can change locally
[02:01] <OanaStratulat> ubitux: thx for that, sorry
[02:02] <OanaStratulat> when i run make fate-rsync i get http://pastebin.com/aBhmQvWH
[02:03] <ubitux> mmh fun, seems like an old version of rsync
[02:04] <OanaStratulat> but when i run make fate-rsync in libav it works
[02:06] <ubitux> maybe they don't use this option
[02:08] <ubitux> OanaStratulat: what is the version of your rsync?
[02:08] <OanaStratulat> which rsync or how do i see ?
[02:08] <OanaStratulat> 2.6.9
[02:09] <ubitux> mmh ok pretty old
[02:09] <ubitux> the current version is 3.0.9
[02:09] <OanaStratulat> mhm
[02:09] <ubitux> Rsync version 2.6.9 released
[02:09] <ubitux> November 6th, 2006
[02:09] <OanaStratulat> lets try to make again the rsync
[02:09] <ubitux> welcome in the past ;)
[02:09] <OanaStratulat> from src 
[02:10] <OanaStratulat> yes 
[02:10] <ubitux> fate seems to pass btw
[02:10] <ubitux> michaelni: i'll push if you're ok with it
[02:11] <ubitux> http://blackhole.ubitux.fr/0001-ffmpeg-check-if-number-of-input-and-output-channels-.patch
[02:11] <ubitux> this is the latest version
[02:11] <OanaStratulat> ubitux: thx
[02:13] <michaelni> ubitux, if you are ok with it then iam
[02:13] <michaelni> too
[02:14] <ubitux> michaelni: ok will push in a moment
[02:14] <ubitux> michaelni: you might be interested in cehoyos comment
[02:14] <ubitux> about the regression
[02:14] <OanaStratulat> michaelni: http://google-melange.appspot.com/gci/task/view/google/gci2011/7180407 link to close task
[02:15] <ubitux> OanaStratulat: please wait until i push ;)
[02:15] <OanaStratulat> okok
[02:15] <michaelni> ubitux, what comment what regression?
[02:15] <OanaStratulat> ubitux: how do i remove rsync from my computer ?
[02:16] <ubitux> michaelni: https://ffmpeg.org/trac/ffmpeg/ticket/887#comment:1
[02:16] <ubitux> OanaStratulat: no idea... i'm not using osx
[02:17] <OanaStratulat> but i think it`s the same like linux
[02:17] <ubitux> each linux has a specific method to install/remove app
[02:17] <OanaStratulat> michaelni: http://google-melange.appspot.com/gci/task/view/google/gci2011/7195360 please accept the claim
[02:44] <CIA-101> ffmpeg: 03Oana Stratulat 07master * ree4d43ef7a 10ffmpeg/ffmpeg.c: 
[02:44] <CIA-101> ffmpeg: ffmpeg: check if number of input and output channels are valid.
[02:44] <CIA-101> ffmpeg: Fix Ticket887.
[02:46] <OanaStratulat> ubitux: what does regression mean ? in this context i mean
[02:46] <ubitux> it means the issue was not there before the given commit
[02:46] <OanaStratulat> thx 
[02:46] <ubitux> or to be more specific, it was *working* before
[02:47] <ubitux> (basically not a bug in a new feature, but a bug in something that was working before)
[02:47] <ubitux> but even if it's a regression, the patch is useful there imo
[02:53] <CIA-101> ffmpeg: 03Aneesh Dogra 07master * r893f137679 10ffmpeg/libavcodec/4xm.c: 
[02:53] <CIA-101> ffmpeg: 4xm: fix calculation of the next output line position in decode_i2_frame().
[02:53] <CIA-101> ffmpeg: The current code doesn't work unless width is an exact multiple of 16.
[02:53] <CIA-101> ffmpeg: Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
[02:53] <CIA-101> ffmpeg: 03Aneesh Dogra 07master * r4b84f68223 10ffmpeg/libavcodec/4xm.c: 
[02:53] <CIA-101> ffmpeg: 4xm: pass the correct remaining buffer size to decode_i2_frame().
[02:53] <CIA-101> ffmpeg: frame_size is the number of bytes left in the packet, so if we are passing
[02:53] <CIA-101> ffmpeg: buf-4 we can safely read frame_size+4 bytes.
[02:53] <CIA-101> ffmpeg: Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
[02:53] <CIA-101> ffmpeg: 03Aneesh Dogra 07master * r295a7c0238 10ffmpeg/libavcodec/4xm.c: 
[02:53] <CIA-101> ffmpeg: 4xm: Prevent buffer overreads.
[02:53] <CIA-101> ffmpeg: 4xm decoder while decoding i2 frames can overread the buffer if proper checks
[02:53] <CIA-101> ffmpeg: are not made.
[02:53] <CIA-101> ffmpeg: Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
[02:53] <CIA-101> ffmpeg: 03Oana Stratulat 07master * r7f09791d28 10ffmpeg/libavcodec/amrnbdec.c: 
[02:53] <CIA-101> ffmpeg: Report an error if pitch_lag is zero in AMR-NB decoder.
[02:53] <CIA-101> ffmpeg: This fixes an infinite loop in the decoder on specially
[02:53] <CIA-101> ffmpeg: crafted files, and fixes bug 151.
[02:53] <CIA-101> ffmpeg: Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
[02:53] <CIA-101> ffmpeg: 03Anton Khirnov 07master * r6450599e22 10ffmpeg/libavformat/utils.c: lavf: refactor av_read_frame() to make it easier to understand.
[02:53] <CIA-101> ffmpeg: 03Anton Khirnov 07master * rf9b9dd8740 10ffmpeg/libavformat/utils.c: lavf: cosmetics, reformat av_read_frame().
[02:53] <CIA-101> ffmpeg: 03Diego Biurrun 07master * rdff4af448d 10ffmpeg/libavutil/timer.h: timer: K&R formatting cosmetics
[02:53] <CIA-101> ffmpeg: 03Ronald S. Bultje 07master * r2ba65879b5 10ffmpeg/libswscale/swscale.c: 
[02:53] <CIA-101> ffmpeg: swscale: remove unused U/V arguments from yuv2rgb_write().
[02:53] <CIA-101> ffmpeg: Also document the function somewhat.
[02:53] <CIA-101> ffmpeg: 03Janne Grunau 07master * r9b4767e478 10ffmpeg/libavcodec/vp3.c: 
[02:53] <CIA-101> ffmpeg: vp3: fix streams with non-zero last coefficient
[05:14] <Shimmy> https://ffmpeg.org/trac/ffmpeg/ticket/747
[05:14] <Shimmy> Can anyone help me witht this issue please
[10:45] <CIA-101> ffmpeg: 03Stefano Sabatini 07master * r9ac58ba133 10ffmpeg/cmdutils.c: 
[10:45] <CIA-101> ffmpeg: cmdutils: add print_program_info() used in both show_banner() and show_version()
[10:45] <CIA-101> ffmpeg: This also make -version show program configuration and compilation
[10:45] <CIA-101> ffmpeg: information, which was previously shown only in the banner.
[10:45] <CIA-101> ffmpeg: 03Stefano Sabatini 07master * r49c207b820 10ffmpeg/ffprobe.c: 
[10:45] <CIA-101> ffmpeg: ffprobe: fix NULL pointer dereference in writer_close()
[10:45] <CIA-101> ffmpeg: Fix crash.
[10:45] <CIA-101> ffmpeg: 03Stefano Sabatini 07master * rc5f4abf698 10ffmpeg/ffprobe.c: ffprobe: exit in case generic options are incompatible with strict XML output
[10:52] <OanaStra_> michaelni: ubitux ping
[12:10] <ubitux> anyone wants to propose something else than green for debug color?
[12:10] <av500> teal?
[12:11] <ubitux> you have to choose between green, blue, magenta, cyan
[12:11] <av500> apricot?
[12:11] <ubitux> :(
[12:11] <funman> rainbow!
[12:11] <ubitux> rainbow debug yeah
[12:11] <av500> if you toggle between 2 colors quickly, maybe we can have more shades?
[12:12] <ubitux> :)
[12:12] <av500> amiga could do it
[12:14] <funman> rockbox too ^_^
[12:15] <av500> indeed
[12:15] <av500> I was just googling that a few days ago :)
[12:15] <av500> funman: and I just restarted my SH-1 work :)
[12:17] <funman> ah?
[12:18] <CIA-101> ffmpeg: 03Clément BSsch 07master * red14b7242a 10ffmpeg/libavcodec/timecode.c: 
[12:18] <CIA-101> ffmpeg: timecode: more tolerant frame rate check for drop flag.
[12:18] <CIA-101> ffmpeg: This fixes some timecode probing in MOV.
[16:19] <OanaStratulat> ubitux: michaelni ping
[16:27] <ubitux> heh i'm not that fast.
[17:01] <ubitux> saste: thanks for your reply on the subtitles thread :)
[17:42] <ubitux> OanaStratulat: pong
[17:48] <OanaStratulat> ubitux: michaelni ping
[17:48] <ubitux> 17:42:34 <@ubitux> OanaStratulat: pong
[17:48] <OanaStratulat> ubitux: i was afk. ptp-roman.org/crash2 can you verify this file if hangs for you?
[17:49] <OanaStratulat> ubitux: on my machine it uses all the memory, and it hang
[17:49] <OanaStratulat> hangs*
[17:50] <ubitux> indeed
[17:50] <ubitux> well it's not really a crash, but it fails indeed
[17:50] <ubitux> it's trying to allocate too much memory and then stop
[17:51] <OanaStratulat> and i cannot find where is the part of code where it hangs..
[17:51] <ubitux> valgrind notices some errors in zmbv.c
[17:51] <ubitux> in decode_frame
[17:52] <ubitux> i'm waiting for the leak report
[17:52] <OanaStratulat> ok
[17:52] <OanaStratulat> can you pastebin it afterwards ?
[17:54] <ubitux> if my system doesn't die yeah :p
[17:55] <ubitux> let's have faith in the oom killer
[17:55] <OanaStratulat> my system died after 5 minutes i think, it killed all my 8GB ram
[18:00] <ubitux> ok it got killed
[18:00] <OanaStratulat> the machine or the software?
[18:01] <ubitux> valgrind/ffmpeg
[18:01] <ubitux> so this is all i have: http://pastie.org/3138322
[18:01] <ubitux> i won't run this twice ;)
[18:01] <ubitux> good luck
[18:02] <OanaStratulat> this is wat i got too
[18:02] <OanaStratulat> what
[18:02] <OanaStratulat> so you think in decode_frame the bug should be?
[18:04] <ubitux> at least there is one
[18:04] <ubitux> the sample you have might trigger multiple ones
[18:04] <OanaStratulat> out[i * 3 + 2] = c->pal[(*src) * 3 + 2]; this is line 539
[18:10] <OanaStratulat> how does it alloc memory here?
[18:11] <ubitux> "Use of uninitialised value of size 8"
[18:11] <ubitux> no allocation issue here
[18:11] <ubitux> it's reading uninit stuff
[18:11] <ubitux> like c->pal, or src
[18:12] <OanaStratulat> so i should check if those vars are init ?
[18:14] <iive> it say it reads random data
[18:17] <OanaStratulat> *src is uint8_t how can i av_log it, with %d ?
[18:19] <OanaStratulat> *src is 0 so c->pal[] goes 0 to
[18:19] <OanaStratulat> is that correct or these values are wrong?
[18:22] <OanaStratulat> michaelni: ^
[18:26] <OanaStratulat> ubitux: when i use *src it is the location in the memory ? 
[18:34] <durandal_1707> ohh
[18:37] <OanaStratulat> ubitux: have you said smth, my connection died
[18:59] <ubitux> i don't know if the values are wrong; it might be a lucky chance you get 0 here
[18:59] <ubitux> src is a pointer *src look at the data at address src
[19:00] <OanaStratulat> src is build up from c->cur and c->cur has a strange value
[19:00] <OanaStratulat> i will point it out in a moment, building ffmpeg now
[19:01] <CIA-101> ffmpeg: 03Reimar Döffinger 07master * r4dfb74cd4f 10ffmpeg/libavformat/utils.c: (log message trimmed)
[19:01] <CIA-101> ffmpeg: Flush decoders correctly in avformat_find_stream_info().
[19:01] <CIA-101> ffmpeg: The decoders should not only be flushed on EOF or error, but also when
[19:01] <CIA-101> ffmpeg: e.g. probe size was reached.
[19:01] <CIA-101> ffmpeg: It is best to just always flush by default and only disable it
[19:01] <CIA-101> ffmpeg: explicitly when we know that we have everything we need.
[19:01] <CIA-101> ffmpeg: Fixes trac ticket #879.
[19:10] <OanaStratulat> ubitux: michaelni when i try to make the latest git clone of ffmpeg i get http://pastebin.com/JALvmWvP 
[19:25] <durandal_1707> OanaStratulat: perhaps ffmpeg is still running?
[19:26] <OanaStratulat> durandal_1707: resolved it, i was making outside the ffmpeg folder
[20:01] <OanaStratulat> ubitux: i have av_log c->cur the var on which src is initialized and it is 140267483458560 , can that be a good value?
[20:01] <ubitux> 140267483458560 = 0x7f9291866c00
[20:01] <ubitux> looks like a valid address so far
[20:04] <OanaStratulat> src=c->cur, not *src=c->cur
[20:04] <OanaStratulat> it`s the same/
[20:04] <ubitux> saste: i'm going to review your latest ffprobe patches; but since there is not patchset i'm a bit lost: could you sum-up the order required?
[20:06] <ubitux> OanaStratulat: src is a pointer
[20:06] <ubitux> after src = c->cur it points on the same value as c->cur
[20:06] <ubitux> c->cur is allocated iwth av_realloc_f(...)
[20:07] <ubitux> ’ the allocated space is resized
[20:07] <OanaStratulat> do you consider this bug easy to repair ?
[20:07] <ubitux> but in this allocated space, some value may not be set before they are read with *src
[20:08] <OanaStratulat> so you say that the c struct values might not be set ? and after that they are read ?
[20:08] <ubitux> you need to be familiar with pointers and allocation at least to solve this issue
[20:08] <OanaStratulat> i`m not used to this..
[20:08] <OanaStratulat> ok so back to the drawing board
[20:09] <ubitux> opening a trac issue might be nice though
[20:09] <OanaStratulat> ok, doing it now
[20:10] <ubitux> OanaStratulat: please consider to point out 3 things: 1) invalid read 2) over-usage of the memory 3) zzuf crafted file
[20:10] <OanaStratulat> if i post your valgrind report is that ok?
[20:11] <ubitux> for the invalid read you can use my valgrind pastebin yes
[20:11] <ubitux> don't forget to use the preview function of trac to check if the message is well formated when quoting it
[20:11] <ubitux> (using {{{ and }}})
[20:12] <ubitux> and thank you for you work :)
[20:19] <saste> ubitux: ffprobe patches are more or less independent each from the other, but for the first one "ffprobe: move writer context registration and initialization in main()" which is required by the others
[20:19] <ubitux> ok
[20:39] <ubitux> michaelni: [PATCH] jpegdec: support ilv=1 grayscale jpeg-ls.   you have typo in the long desc: s/Ticker/Ticket
[20:46] <ubitux> saste: i have "ffprobe: move writer context registration and initialization in main()" and "ffprobe: print error in main() rather than in probe_file()" in the branch, but i can't apply the -show_version one
[20:47] <ubitux> ah, maybe show_frames&
[20:47] <ubitux> mmh no doesn't apply
[20:47] <saste> ubitux: wait
[20:49] <saste> http://pastebin.com/qwaie9Ss
[20:50] <ubitux> thanks
[21:07] <michaelni> ubitux, typo locally fixed
[21:24] <durandal_1707> how useful would be to do dithering filter(s) for libavfilter
[21:47] <laurion> hi, can you help me, I want to fix a bug, do would you be kind to suggest an easy one?
[21:48] <laurion> maybe a crash or invalid read, I did that for libav
[21:53] <durandal_1707> laurion: search ffmpeg.org/trac/ffmpeg (note most of them are pretty hard) or find bug and fix it
[21:53] <laurion> http://ffmpeg.org/trac/ffmpeg/ticket/123
[21:54] <laurion> can you help me get started with it?
[21:54] <laurion> or is it too hard?
[21:55] <laurion> what can you tell me about it?
[21:56] <durandal_1707> you would need too downlad sample and see if it still cause crash
[22:03] <laurion> maybe at line 259 in imgutils.c
[22:03] <durandal_1707> what about it?
[22:04] <OanaStratulat> michaelni: please extend with 1 day http://google-melange.appspot.com/gci/task/view/google/gci2011/7195360
[22:06] <laurion> durandal_1707, and how do i test it
[22:06] <durandal_1707> test what? sample?
[22:06] <laurion> yep
[22:06] <laurion> valgrind?
[22:07] <durandal_1707> does ffmpeg crash?
[22:08] <laurion> how do i find out
[22:08] <laurion> i'm new here
[22:08] <durandal_1707> clone ffmpeg with git
[22:09] <laurion> I am currently compiling it
[22:09] <durandal_1707> build, install, and test
[22:09] <laurion> the testing part how does it work?
[22:09] <laurion> ffmpeg <file>?
[22:11] <durandal_1707> if you have experience with avconv from Libav it is similar to ffmpeg
[22:12] <OanaStratulat> ubitux: ping
[22:12] <ubitux> yup?
[22:12] <OanaStratulat> can you test a file for me and check if it hangs ?
[22:13] <OanaStratulat> ubitux: ptp-roman.org/corruptfile
[22:14] <ubitux> confirmed
[22:14] <OanaStratulat> what is your valgrind report because mine shows some errors in at 0x3B066CD: misaligned_stack_error_entering_dyld_stub_binder (in /usr/lib/system/libdyld.dylib)
[22:15] <ubitux> valgrind reports nothing here
[22:16] <OanaStratulat> mine neither, so how can i find out where it hangs?
[22:17] <ubitux> gdb, use ^C to break when it's in infinite loop, do a backtrace, locate the code where it is stalled, stare at the code & add printf to understand the issue
[22:18] <ubitux> this is how i would do it, certainly not the ultimate way of doing things
[22:18] <OanaStratulat> ok
[22:19] <OanaStratulat> ubitux: found a file which uses like 4 gb of ram with ffmeg
[22:20] <laurion> hmm there are no more ffmpeg tasks?
[22:21] <michaelni> OanaStratulat, extended by 24h
[22:21] <OanaStratulat> michaelni: thx
[22:23] <OanaStratulat> ubitux: false alarm with that hang...it works but it takes some time
[22:25] <durandal_1707> laurion: only extremly hard remains :/
[22:25] <laurion> which ones?
[22:28] <laurion> durandal_1707, I don't see any
[22:31] <durandal_1707> here is one http://google-melange.appspot.com/gci/task/view/google/gci2011/7185251
[22:35] <OanaStratulat> got a file that uses 5GB of memory and ffmpeg still runs
[22:39] <OanaStratulat> ubitux: michaelni having this bt report in which function does it hang ? http://pastebin.com/EpWV6H74  in #5 or #1 ?
[22:39] <OanaStratulat> #0 *
[00:00] --- Sat Jan  7 2012


More information about the Ffmpeg-devel-irc mailing list