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

burek burek021 at gmail.com
Sat Aug 24 02:05:02 CEST 2013


[00:38] <cone-826> ffmpeg.git 03Michael Niedermayer 07master:c443689afbb3: avformat/movenc: use av_freep() instead of av_free() except for local variables before return
[00:47] <durandal_1707> michaelni: so you are now reporting CVE candidates?
[01:05] <michaelni> durandal_1707, you make it sound like theres something new about that
[01:07] <cone-826> ffmpeg.git 03Michael Niedermayer 07master:8bb11c3ca77b: avcodec/jpeg2000dec: Check cdx/y values more carefully
[01:08] <durandal_1707> well, i get impression others reported it in past
[01:09] <beastd> michaelni: You have some security mechanism in place for creation of the web pages?
[01:09] <beastd> remote: ok/Makefile Makefile differ: char 169, line 4
[01:10] <beastd> I pushed archive page as requested by ubitux and durandal_1707 . So I had to add a new source to the Makefile.
[01:11] <ubitux> thx :)
[01:11] <michaelni> beastd, yes
[01:12] <beastd> michaelni: what is the procedure? should i change the ref file on the web server and rebuild?
[01:12] <michaelni> i think so
[01:13] <beastd> ubitux: np. i do not think creating a news archive is related to adding a new entry. but you got me with hat one :)
[01:13] <ubitux> :)
[01:14] <michaelni> durandal_1707, true, most where, not all though
[01:15] <durandal_1707> where are news older than 2007?
[01:16] <beastd> dunno
[01:16] <ubitux> in the git log maybe
[01:17] <durandal_1707> oldest commits is from 2011
[01:17] <durandal_1707> so i think i should use other tools...
[01:18] <ubitux> archive.org ?
[01:18] <durandal_1707> no, TARDIS
[01:19] <ubitux> wow it was in php
[01:19] <ubitux> http://web.archive.org/web/20020922011917/http://ffmpeg.sourceforge.net/
[01:19] <ubitux> (later)
[01:20] <durandal_1707> omg, what i missed
[01:20] <ubitux> and it was written "FFMpeg"
[01:20] <ubitux> heresy!
[01:21] <ubitux> http://web.archive.org/web/20050301010331/http://ffmpeg.sourceforge.net/index.php
[01:21] <beastd> ok ppl, archive page is online. will go to sleep now.
[01:21] <beastd> see you
[01:22] <ubitux> http://web.archive.org/web/20070116171005/http://ffmpeg.mplayerhq.hu/ moar news
[01:22] <ubitux> durandal_1707: i guess this one provides you the missing bits: http://web.archive.org/web/20081119203954/http://ffmpeg.org/
[01:27] <durandal_1707> perhaps missing archive entries should be added back?
[03:19] <cone-826> ffmpeg.git 03Carl Eugen Hoyos 07master:2baa12f1d194: Fix dependencies for h263 vaapi decoder.
[04:57] <cone-826> ffmpeg.git 03Michael Niedermayer 07master:16a0d75c769a: avcodec/mjpegdec: fix overread in find_marker()
[07:26] <BBB> and back from vacation
[07:26] <BBB> ubitux: any news? :)
[09:12] <ubitux> BBB: well i was mostly trying to get a better picture of the whole thing so i wasn't very^Wat all productive
[09:14] <ubitux> i'll have a few questions in a few hours
[09:36] <BBB> ubitux: booh! well anyway
[09:36] <BBB> ubitux: yes ask qs
[09:58] <BBB> ubitux: or at least let me know how far you are, we can split work for particular tasks if you want
[09:58] <BBB> e.g. I can do sub8x8 bitstream parsing and confirm at least all that works
[09:58] <BBB> ubitux: or something along those lines
[10:42] Action: BBB gives ubitux a big fat poke
[10:43] <ubitux> BBB: i was on sub8x8, which was as you said similar to the VP8_SPLITMVMODE thing
[10:44] <BBB> bitstream parsing? or reconstruction?
[10:44] <ubitux> but i dont know how i'm suppose to test this
[10:44] <BBB> (or both?)
[10:44] <ubitux> it was the reconstruction; but i guess i have the bitstream parsing to do too (first), right?
[10:44] <BBB> yes
[10:44] <BBB> otherwise reconstruction will never trigger, I suppose
[10:44] <ubitux> i saw that code triggered once, but probably a bug
[10:45] <ubitux> anyway, where is that supposed to be done?
[10:45] <BBB>         if (b->bl == BL_8X8 && b->bp == PARTITION_NONE) {
[10:45] <BBB>             // sub8x8 mode/mv coding
[10:45] <BBB>             // inter mode ctx = inter_mode_ctx_lut[a_mode][l_mode];
[10:45] <BBB>             printf("Inter sub8x8 mode/mv coding not yet done\n");
[10:45] <BBB>             return -1;
[10:45] <ubitux> (sorry i'm a bit lost at the overall codec)
[10:45] <BBB> line 1455
[10:45] <ubitux> ok
[10:45] <BBB> you basically do the inter equivalent of the intra coding in line 1080-1120
[10:46] <BBB> that is, parse one inter mode (see line 1421-1426), then parse one mv (if newmv), then parse the second inter mode, next mv (if newmv), etc.
[10:47] <BBB> either twice (for PARTITION_H/V) or 4x (for PARTITION_SPLIT)
[10:47] <BBB> you also need a small extension to find_ref_mvs() to be sub8x8 compatible
[10:47] <BBB> I can point out what's missing in our code or the relevant code in libvpx so you can figure it out yourself
[10:48] <ubitux> that would help
[10:48] <ubitux> (in libvpx)
[10:48] <ubitux> (i need a reference somehow...)
[10:49] <BBB> vp9/common/vp9_mvref_common.c
[10:50] <BBB> see calls to get_sub_block_mv()
[10:50] <ubitux> i see, thx
[10:50] <BBB> block index is 0 (topleft), 1 (topright), 2 (bottomleft) or 3 (bottomright 4x4 subblock in a 8x8 parent block)
[10:50] <BBB> if the blocks are 4x8, only 0 and 1 exist
[10:50] <BBB> if the blocks are 8x4, only 0 and 2 exist
[10:50] <ubitux> btw, i looked a bit at the vp9 ml; there is not much info
[10:51] <ubitux> i found some kind of xml draft for overall design, but not sure if accurate and really up-to-date
[10:51] <BBB> the direct neighbours are filled in vp9_append_sub8x8_mvs_for_idx() in vp9/common/vp9_findnearmv.c
[10:51] <ubitux> ok
[10:51] <BBB> basically what it does is look for direct left and/or direct above neighbour (if we're not subblock 0)
[10:52] <BBB> so for block 1, the direct left would be block 0
[10:52] <BBB> for block 2, the direct above would be 0
[10:52] <BBB> for block 3, the direct left is 2 and above is 1
[10:52] <BBB> then after that it calls find_ref_mvs (ffvp9) / vp9_find_mv_refs_idx (libvpx) to fill in the more distant mv references
[10:53] <BBB> for sub8x8, it is subblock aware for the direct left/above neighbours
[10:53] <BBB> that is, for the left 8x8 neighbour, it uses the edge block closest to our subblock
[10:53] <BBB> for 0/1, that is 1 (left), for 2/3, that is 3 (left); for 0/2, that is 2 (above) and the 1/3, that is 3 (above)
[10:53] <ubitux> it's still using mv from a maximum of 3 ref frames? (from a maximum of a pool of 8 frames?)
[10:53] <BBB> of course all of this matters only if these blocks use sub9x8x8 coding
[10:53] <BBB> yes
[10:54] <ubitux> why limit the limit to 3 ref frames when there is 8 frames cached?
[10:54] <BBB> no idea
[10:54] <ubitux> ok
[10:54] <BBB> :-p
[10:54] <ubitux> :)
[10:55] <ubitux> ok well, i'll try to make a report of my progress in ~12 hours
[10:55] <ubitux> i have to go right now
[10:55] <ubitux> thx for the help
[10:56] <BBB> bye
[10:56] <ubitux> there is two random trivial commits in my branch if you're interested
[10:56] <BBB> what do I do now? :)
[10:56] <BBB> ok I'll check
[10:56] <ubitux> haha
[10:56] <ubitux> what do you do? i dunno; is my work that blocking for your progress?
[11:02] <BBB> ubitux: well a little right? I can't get reconstruction of the first inter frame correct until sub8x8 is done, and I can't test things like bw adaptivity until after first inter frame is correct
[11:02] <ubitux> erm
[11:03] <ubitux> you can give me something else if that matters for your
[11:03] <ubitux> -r
[11:03] <ubitux> i'm just curious about how it works, but as i know near to nothing about the codec, i guess anything else will be fine
[11:04] <BBB> no it's fine, I'm gonna do some intra pred simd meanwhile
[11:04] <BBB> I'll hope you finish it this weekend or so
[11:05] <BBB> and your patches (plus minor one by me) pushed
[11:05] <ubitux> i'll do my best, but gotta go for real now
[11:05] <ubitux> ok :)
[11:14] <BBB> I know what I'll do, I'll add some fate tests for the vp90-2-* files
[11:14] <BBB> (first frame only ofcourse)
[11:45] <zidanne> How do we write S16P to fifo to be used in audio encoding for mp3lame? like this?                 for(int i=0;i<plane_count;i++) av_fifo_generic_write(fifo, (uint8_t *)data[i], length, NULL );
[12:28] <cone-662> ffmpeg.git 03Stefano Sabatini 07master:0be3be901196: lavf/tee: copy metadata to output chained muxers
[12:28] <cone-662> ffmpeg.git 03Paul B Mahol 07master:8fbf940e1673: lavfi/tile: do not leak input frame
[12:44] <cone-662> ffmpeg.git 03Paul B Mahol 07master:dd1d29bd5f31: pngdec: use av_fast_padded_malloc(z)
[12:52] <durandal11707> is there filter that would repeat each frame several times?
[12:54] <durandal11707> i don't think so
[12:55] <iive> mp=harddup ?
[12:55] <durandal11707> that was removed
[12:56] <durandal11707> and it did nothing
[12:56] <Daemon404> durandal11707, vf_fps?
[12:56] <Daemon404> just use an integer multiple of the current framerate
[12:57] Action: BBB kicks lazy Daemon404 
[12:57] <durandal11707> is it supposed to work with overlay?
[12:57] <durandal11707> when you want to loop single main frame over and over again
[12:58] <Daemon404> oh i unno
[12:58] <Daemon404> ive always used images as input
[12:58] <Daemon404> not videos
[12:59] <durandal11707> yes, but if you loop image it will decode over and over again
[12:59] <Daemon404> ... lol
[13:03] <durandal11707> i get 19 vs 28 here
[13:03] <durandal11707> fps
[13:10] <durandal11707> hmm, this doesn't work: ffmpeg -i bg.png -f lavfi -i testsrc -filter_complex '[0]fps=999[fps],[fps][1]overlay'
[13:19] <durandal11707> because you can't seek in lavfi there is no loop filter
[13:33] <cone-662> ffmpeg.git 03John Stebbins 07master:1f70a5ad284b: mov: use tkhd enabled flag to set the default track
[13:33] <cone-662> ffmpeg.git 03Michael Niedermayer 07master:c6f4a3a70837: Merge commit '1f70a5ad284b33e8b3e2b40a5cb33055419781b7'
[14:07] <zidanne> I am using http://pastebin.com/466tUJyd to convert S16 to S16P so I can feed it to avcodec_encode_audio for libmp3lame codec. However, encoded file is just a looping noise like a very fast shooting machine gun. Is the algorithm wrong?
[14:11] <Skyler_> I'm not sure, but maybe check to be sure that linesize is in units of int16_t, rather than units of bytes?
[14:12] <Skyler_> I'm not sure which it is, but if it's in bytes and you're acting on it as if it's in units of samples, the code might be wrong
[14:12] <Daemon404> why not just call libavresample
[14:12] <Daemon404> the lazy way~
[14:17] <cone-662> ffmpeg.git 03John Stebbins 07master:30ce289074e8: movenc: Make tkhd "enabled" flag QuickTime compatible
[14:17] <cone-662> ffmpeg.git 03Michael Niedermayer 07master:800ea20cadce: Merge remote-tracking branch 'qatar/master'
[14:20] <michaelni> Daemon404, any reason why you suggest avr over libswresample ?
[14:22] <Daemon404> no
[14:22] <Daemon404> its easier to type
[14:28] <zidanne> I have tried using swr_convert but it didn't work for S16 to S16P
[14:30] <zidanne> (however it worked for FLTP to S16, which was valid for another scenario)
[14:35] <michaelni> zidanne, swr certainly works for s16->s16p, its a common convertion, not something obscure that isnt tested
[14:36] <michaelni> zidanne, if it doesnt work for you please provide a reproduceable testcase and ill take a look
[14:45] <zidanne> it crashes on "conv_AV_SAMPLE_FMT_S16_to_AV_SAMPLE_FMT_S16"
[14:46] <michaelni> zidanne, how can this be reproduced ? 
[14:49] <zidanne> I decode an mmsh stream (asf) and I convert it into AV_SAMPLE_FMT_S16 so I can feed the audio system. At the same time, I want to have it in AV_SAMPLE_FMT_S16P too (so I can encode it into mp3). So, I use swr_convert for the "second" time but this time with the output of the previous swr_convert. So, now it converts from S16 to S16P instead of FLTP to S16.
[14:51] <michaelni> zidanne, can you provide a reproduceable testcase, a small C program that causes this crash ?
[14:52] <michaelni> swr doesnt crash when used by other applications
[14:53] <michaelni> or if it does crash for you with ffmpeg and some command line, please provide this command line
[14:57] <durandal11707> so apropos repeat filter: to be or not to be, if loop ever came out it can be deprecated
[15:13] <durandal11707> or why seeking in lavfi is so hard?
[15:13] <zidanne> michaelni:  my bad.. I was not creating an array and assigning the output of the previous swr_convert to it's [0]. Now it didn't crash.
[15:14] <durandal11707> wasn't there example in source tree
[15:14] <durandal11707> so you could look at it?
[15:15] <durandal11707> perhaps its not commented at all and thats why so many people are lost
[15:15] <zidanne> But i still get the same audio noise. So I must be using the AVAudioFifo incorrectly..
[15:16] <durandal11707> when swr converts to s16p it returns array with pointers to array
[15:17] <durandal11707> anyway why there is not function that takes AVFrame?
[15:18] <zidanne> durandal11707: I was using swr_convert to convert S16 to S16P. As swr_convert always wants an array, that was my problem
[15:19] <wm4> durandal11707: yeah, that'd be very useful
[15:19] <wm4> durandal11707: write it
[15:19] <durandal11707> wm4: i have paypal
[15:20] <durandal11707> zidanne: so what you use now? link...
[15:24] <Daemon404> [14:13] <@durandal11707> or why seeking in lavfi is so hard?
[15:24] <Daemon404> because seekign with lavf is hard
[15:24] <Daemon404> or not possible
[15:24] <Daemon404> without an index.
[15:24] <Daemon404> which we do not implement.
[15:29] <durandal11707> let filter just call avformat_seek_frame
[15:34] <wm4> durandal11707: the main problem perhaps is that you'd have to figure out the seek target PTS
[15:34] <wm4> which would require information traveling backwards through the filter chain, or so
[15:34] <wm4> OTOH, you could just add a seek command to the movie src
[15:55] <zidanne> I think, we could have a "ffmpeg tips" page. Where we can add notes related to common mistakes, etc.. (:
[16:00] <michaelni> zidanne, you can create a page for that on the ffmpeg wiki if you like
[16:13] <michaelni> link to wiki: https://ffmpeg.org/trac/ffmpeg
[16:14] <michaelni> shorter link : https://trac.ffmpeg.org/
[18:13] <cone-662> ffmpeg.git 03Michael Niedermayer 07master:912ce9dd2080: jpeg2000: fix dereferencing invalid pointers
[18:13] <cone-662> ffmpeg.git 03Michael Niedermayer 07master:09927f3eaa93: jpeg2000: zero reslevel array on allocation
[18:13] <cone-662> ffmpeg.git 03Michael Niedermayer 07master:9e477a377033: jpeg2000: fix null pointer dereference in case of malloc failure
[20:15] <cone-662> ffmpeg.git 03Michael Niedermayer 07master:aadfadd784bb: avformat/redspark: check coef_off
[20:46] <durandal11707> michaelni: so just report progress and do not care what is put into frame?
[20:47] <michaelni> filling the otherwise uninitialized parts by copying fro the previous frame would be better
[20:48] <durandal_1707> well its hard to find what is initialized and what is not
[20:49] <durandal_1707> some files have multiple idats and only last one may fail
[20:49] <michaelni> then just setting progress should be fine for now if it fixes the crashes and deadlocks
[20:50] <durandal_1707> i can't reproduce either
[20:53] <durandal_1707> so if you can test it to find out no crashes/locks happen it would be great
[20:53] <ubitux> BBB: what does the b->comp bit mean?
[21:12] <zidanne> How can this be possible? (:  When I av_free "resampledOut" after "memcpy(ffData->data,(const uint8_t *)resampledOut,ffData->size);" I get "malloc: *** error for object 0xf5fbf5fb: pointer being freed was not allocated"
[21:13] <zidanne> if I comment out free, everything works perfectly (:
[21:13] <ubitux> maybe because you changed your pointer
[21:14] <zidanne> The only thing is, I give the pointer to swr_convert with &resampledOut.
[21:26] <zidanne> the problem was av_freep. I changed it to av_free and now it works
[21:41] <cone-662> ffmpeg.git 03Alexander Strasser 07master:b329ff3d43ca: MAINTAINERS: Add my GPG fingerprint
[23:09] <durandal_1707> michaelni: so you tried it?
[23:14] <michaelni> durandal_1707, i can if you push the code somewhere
[23:14] <michaelni> i cant test without having the code
[23:15] <durandal_1707> but i think one line change is less work....
[23:16] <michaelni> do you want your code tested or do you want me to redo the debuging and fix it myself ?
[23:18] <michaelni> i cant test your code without seeing your code of course
[23:20] <michaelni> you dont have to push it if you dont want but if you want me to test your code you have to provide your code by some means
[23:20] <durandal_1707> ok, stop typing you are wasting time
[23:22] <durandal_1707> you can see "code" in png branch
[23:30] <zidanne> lol (:
[23:31] <michaelni> durandal_1707, no crashes or deadlocks with that file anymore and fate passed
[23:42] <durandal_1707> michaelni: but asan warnings?
[23:43] <michaelni> asan showed nothing
[23:43] <michaelni> neither valgrind but that didnt show anything before either
[23:45] <Daemon404> 36
[23:47] <durandal_1707> huh, youtube protocol.......
[23:50] <ubitux> ._.
[23:50] <ubitux> why didn't he asked before :(
[23:50] <ubitux> we have libquvi support... :(
[23:51] <durandal_1707> but this one is LGPL
[23:51] <ubitux> durandal_1707: it's going to require regular updates
[23:52] <ubitux> like maybe every month
[23:52] <durandal_1707> than that is not really protocol...
[00:00] --- Sat Aug 24 2013


More information about the Ffmpeg-devel-irc mailing list