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

burek burek021 at gmail.com
Mon Aug 12 02:05:02 CEST 2013


[00:00] <saste> nice, now I can resume my work on av_bprint_options
[00:06] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:d5dd54df69ec: MAINTAINERS: add myself as maintainer for the interface code to swresample & swscale in libavfilter
[00:06] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:ec334232731a: MAINTAINERS: drop 1.1 from the releases that i maintain
[00:06] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:15ea618ef629: MAINTAINERS: order libavutil entries alphabetically
[00:06] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:b2a9f64e1b12: MAINTAINERS: Add some maintainers for parts of libavutil
[00:06] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:f09f33031b9d: MAINTAINERS: alphabetical sort
[00:06] <cone-865> ffmpeg.git 03Matthieu Bouron 07release/2.0:01838c5732e7: MAINTAINERS: add myself as maintainer for lavf/aiff* and lavf/movenc.c
[00:06] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:1155bdb754b0: MAINTAINERS: remove myself from movenc, 2 maintainers should be enough
[00:06] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:fa004f4854db: MAINTAINERS: add Alexander Strasser for the server
[00:06] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:fd2951bb53b3: update for 2.0.1
[00:28] <cone-865> ffmpeg.git 03Michael Niedermayer 07release/2.0:acf511de34e0: avcodec/g2meet: fix src pointer checks in kempf_decode_tile()
[00:49] <cone-865> ffmpeg.git 03James Almer 07master:214293b1433d: lavd: Fix make checkheaders
[00:49] <cone-865> ffmpeg.git 03Thilo Borgmann 07master:4dcb2f74786e: lavu: fix grammar in doxy for av_frame_ref.
[01:41] <BBB> ubitux: not sure, add an assert(0) or so in them and see if they trigger
[01:41] <BBB> ubitux: I think they didn't trigger (at least in the first frame) when I tested them, but I may be wrong ofcourse
[02:06] <BBB> ubitux: I have some half-assed loopfilter strength calculation code in my tree. will now work on the actual simd for the loopfilter itself, once it works I'll commit
[02:42] <cone-865> ffmpeg.git 03Thilo Borgmann 07fatal: ambiguous argument 'refs/tags/n2.0.1': unknown revision or path not in the working tree.
[02:42] <cone-865> Use '--' to separate paths from revisions
[02:42] <cone-865> refs/tags/n2.0.1:HEAD: lavu: fix grammar in doxy for av_frame_ref.
[04:21] <wm4> with hwaccel, what is AVFrame.data[0] supposed to contain?
[08:39] <nevcairiel> the same as [3] but only because it must be non-null
[10:26] <BBB> ubitux: Daemon404: OK I have a rough first implementation of loopfilter done, not exactly working yet and certainly nothing close to finished, but just so you know where I am
[10:27] <ubitux> ok :)
[10:27] Action: ubitux is still trying to figure out the problem with idct32 :p
[10:27] <BBB> just printf all intermediates for a case where it fails in libvpx and your code and see where it goes off
[10:27] <cone-455> ffmpeg.git 03Vittorio Giovara 07master:b3dc260e7fa6: h264: return meaningful values
[10:27] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:e0b45ca730f2: Merge commit 'b3dc260e7fa6f3f852dd5cb7d86763c4b5736714'
[10:27] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:019eb2c77b7c: svq3: Fix ff_h264_check_intra_pred_mode() return code check
[10:28] <ubitux> yeah i was considering this
[10:32] <BBB> that's how I debugged idct8/16
[10:32] <BBB> idct4 was correct on the first try
[10:33] <cone-455> ffmpeg.git 03Vittorio Giovara 07master:5eb488bfa835: h264: use explicit variable names for *_field_flag
[10:33] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:d2d8e259fd2e: Merge commit '5eb488bfa835f2902a31ba99d57c16ae36c4f598'
[10:39] <BBB> (then again you have to admit, idct4 is kind of easy :) )
[10:40] <ubitux> BBB: any simpler way than editing libvpx code to disable asm optim? i don't see any runtime nor configure flags to disable them
[10:41] <BBB> there's an environmental flag
[10:41] <BBB> let me figure out what it was
[10:41] <ubitux> ah, ok
[10:41] <ubitux> BBB: don't worry, i'll look at it, thx
[10:41] <cone-455> ffmpeg.git 03Vittorio Giovara 07master:c1076d8479a6: h264: check one context_init() allocation
[10:41] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:921c1d4c95a8: Merge commit 'c1076d8479a6c0ee2e0c4b0e2151df5b0228438e'
[10:42] <ubitux> VPX_SIMD_CAPS and VPX_SIMD_CAPS_MASK i guess
[10:42] <BBB> ah yes
[10:43] <BBB> setting one of them (or both) to 0 as an env var in your shell should disable all simd
[10:43] <BBB> then you can edit the c function to your liking to spew you with evil output
[10:47] <kurosu> idct4? do you use both dct and dst for intra 4x4 ?
[10:48] <BBB> and 8 and 16
[10:48] <BBB> they're separable 1d filters
[10:48] <BBB> so can be used in any order
[10:48] <BBB> (you could also do rectangular ones, but we didn't do that in vp9)
[10:53] <kurosu> vc1 is the only codec I know that uses rectangular transforms
[10:53] <BBB> right
[10:54] <BBB> dont wanna go there i guess ;)
[10:55] <kurosu> I'd thought you wouldn't have gone towards dst either ;)
[10:56] <BBB> dst is kinda useful
[10:57] <BBB> it's certainly a big technical investment, i.e. a ton of extra code for really only intra gains at this point, but it's cool technology
[10:57] <BBB> I think we could use it in inter also, but nobody looked into that
[11:00] <ubitux> BBB: are you sure vp9 decoder honors those caps?
[11:00] <BBB> ubitux: I believe it does yes
[11:01] <ubitux> i wonder what i'm doing wrong then, the caps are indeed set to zero, but the _c func are still not called
[11:01] <BBB> export VPX_SIMD_CAPS=0
[11:01] <ubitux> i did that
[11:01] <BBB> oh it might be that there's only a sse2 unction
[11:01] <ubitux> the caps are set to zero at runtime, this part is ok
[11:01] <BBB> these are specialcased on x86-64
[11:01] <BBB> #define func func_sse2
[11:01] <BBB> instead of them being runtime allocated
[11:02] <BBB> so then you need to do a x86-32 build or comment out the sse2 function in vp9/common/vp9_rtcd_defs.sh
[11:02] <cone-455> ffmpeg.git 03Luca Barbato 07master:5a9a9d4a2abe: lavc: Add refcounted api to AVPacket
[11:02] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:67a580f423f2: Merge commit '5a9a9d4a2abefa63d9a898ce26715453c569e89d'
[11:02] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:b905a7137a51: avcodec/avpacket: Fix memory allocation failure check
[11:02] <ubitux> right i was looking at vp9/common/vp9_rtcd_defs.sh
[11:04] <ubitux> much better..
[11:04] <ubitux> thx
[11:05] <BBB> np
[11:06] <kurosu> BBB: If you used the starting point I'm thinking of, the author only worked on intra; I think inter needs rdo decision to bring gains
[11:06] <BBB> well of course, but that's not an issue
[11:06] <BBB> I mean, let's be honest, vp9 is dog slow, so making it a little slower is ok
[11:06] <BBB> modeling can be done late
[11:07] <kurosu> I thought at this stage that vp9 was mostly done
[11:07] <BBB> it is, I'm thinking in terms of vp10
[11:07] <BBB> or 11, or 12
[11:07] <kurosu> ok
[11:08] <BBB> vp9 bitstream is done and there won't be anything more
[11:08] <BBB> (for vp9)
[11:08] <BBB> I think there's a web profile planned for alpha, 444, rgb etc. support, and a high profile (long future) for 10bit
[11:08] <BBB> but for now, this is it
[11:11] <cone-455> ffmpeg.git 03Luca Barbato 07master:4ebc7d659f0d: rtmp: Use PRId64 when needed.
[11:11] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:a2b0699f4f0a: Merge commit '4ebc7d659f0da6c1305ca08cf4303959203fff4b'
[11:16] <cone-455> ffmpeg.git 03Luca Barbato 07master:ba5393a609c7: rtmp: rename data_size to size
[11:16] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:06186a3160d0: Merge commit 'ba5393a609c723ec8ab7f9727c10fef734c09278'
[11:17] <ubitux> BBB: well, actually, it seems my function outputs the same thing
[11:17] <ubitux> so the problem might be elsewhere
[11:22] <BBB> does the 2d one output the same thing?
[11:22] <BBB> maybe dequant is broken?
[11:22] <BBB> dunno
[11:22] <ubitux> i was going to check the 2d
[11:22] <BBB> (there's a specialcase there for 32x32
[11:22] <BBB> right
[11:22] <BBB> sounds good
[11:23] <ubitux> i've pushed a clean 1d if you want to pick/merge/squash/whatever
[11:23] <ubitux> the style is not exactly the same as the other 1d (inlined int and space in parenthesis, but i'll fix that later) but the logic matches
[11:24] <cone-455> ffmpeg.git 03Martin Storsjö 07master:8e1fe345577a: rtmp: Detect and warn if the user tries to pass librtmp style parameters
[11:24] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:6c7a05352f5e: Merge commit '8e1fe345577a42f99591caf8a06c447613449694'
[11:25] <BBB> ok sounds good
[11:25] <BBB> I'll try to merge verysoon
[11:26] <BBB> nice work
[11:26] <ubitux> not very useful yet though :p
[11:27] <BBB> it's ok
[11:28] <BBB> once you debug the 2d it should be easy to figure out
[11:28] <cone-455> ffmpeg.git 03Martin Storsjö 07master:aa16a6b0c56e: doc: Extend the rtmp example to include how to pass username/password
[11:28] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:78242e431028: Merge commit 'aa16a6b0c56e3f46c5d7efb706b87a8f7a1603ec'
[11:31] <ubitux> heh that's indeed not the same in the 2d
[11:32] <ubitux> ok got it
[11:32] <ubitux> BBB: fixed
[11:32] <ubitux> will push soon
[11:33] <cone-455> ffmpeg.git 03Martin Storsjö 07master:a435ca5b4d9e: doc: Explain that the default RTMP user agent is different when publishing
[11:33] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:159dfd26259d: Merge commit 'a435ca5b4d9efebf0759220681010977c36615f7'
[11:33] <ubitux> BBB: pushed, you can merge
[11:33] <ubitux> (i squashed it)
[11:33] <ubitux> i was using 7 bit instead of 6 for the 2d
[11:34] <ubitux> it decodes fine now
[11:35] <ubitux> BBB: what do you want me to do now?
[11:36] <ubitux> gonna watch an anime while you decide
[11:36] <ubitux> ;)
[11:39] <cone-455> ffmpeg.git 03Martin Storsjö 07master:3bea53dbdf16: doc: Add librtmp to the section header for the librtmp specific details
[11:39] <cone-455> ffmpeg.git 03Martin Storsjö 07master:d175a5730b42: doc: Add an example on publishing over RTMP
[11:39] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:5993b962691a: Merge commit 'd175a5730b42166704b7262b33f4b780d9d92f60'
[11:54] <cone-455> ffmpeg.git 03Martin Storsjö 07master:205a4502d3da: doc: Clarify the avconv section about -re
[11:54] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:99091ff21744: Merge commit '205a4502d3da9de2db75d2c965c9d065574e9266'
[12:06] <cone-455> ffmpeg.git 03Luca Barbato 07master:5718e3487ba3: rtmp: Do not misuse memcmp
[12:06] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:15c92f8c486a: Merge remote-tracking branch 'qatar/master'
[12:37] <BBB> ubitux: uh, dunno yet, help daemon404 with inter coding
[12:37] <BBB> ubitux: keyframes seem mostly finished now
[12:38] <BBB> ubitux: unless you want to write the remaining 6 32x32 intra pred functions
[12:40] <ubitux> Daemon404: do you need/want help or something?
[12:41] <ubitux> otherwise yeah i guess i'll go look for the remaining intra pred functions
[12:41] <BBB> pushed I think
[12:43] <BBB> yeah first frame of akiyo decodes correctly now
[12:45] <BBB> oh no there is a difference
[12:48] <BBB> fixed
[12:48] <BBB> ok keyframe is good now
[12:48] <BBB> apparently this one has no loopfilter
[12:48] <BBB> weird
[12:48] <BBB> anyway, yes, off to the second frame
[12:48] <BBB> once that's done we should be mostly good except for small one-off bugs
[12:49] <BBB> then we can work on performance (micro-optimizations, simd, threading, etc.)
[12:49] <ubitux> :)
[12:50] <BBB> daemon404 said he was working on code for parsing the mb data, I think
[12:51] <BBB> so let's see how far he is
[12:58] <ubitux> BBB: btw, in idct16, last t7 assignment was "lucky"
[12:58] <ubitux> it looks like it should have been a t7a
[12:58] <BBB>     t7   = t0   - t7; ?
[12:58] <ubitux> yeah
[12:58] <ubitux> t7a = ...
[12:58] <BBB> t4 also
[12:58] <ubitux> in practice it doesn't matter
[12:59] <ubitux> right
[12:59] <BBB> yeah I think that was my logic
[12:59] <BBB> it doesn't matter much in practice
[12:59] <BBB> I'm fine with changing it
[12:59] <ubitux> it's ok :p
[12:59] <BBB> the idea is simply that the code as-is serves as a boilerplate for simd
[12:59] <BBB> and in simd, let's be honest, registers have no names, so it doesn't matter much
[13:00] <ubitux> how is simd gonna work for those function? making the function doing multiple 1d at the same time?
[13:01] <BBB> so take the second 1d idct4 as an example
[13:01] <BBB> (the first 1d needs some changes that are trivial but haven't been done yet)
[13:02] <BBB> what you're doing is that you're reading (from tmp[4*4]) IN(0-3), which is tmp[0*4], tmp[1*4], tmp[2*4] and tmp[3*4] right?
[13:02] <BBB> and then calculate t0, t1, t2, t3
[13:02] <BBB> so instead of doing that once, you can load 8 bytes, representing tmp[0*4] for the first loop (i=0 in the wrapper) as well as for all other iterations of that loop
[13:02] <BBB> then subtract/add with each of these
[13:03] <BBB> and store the result
[13:03] <BBB> that's the basic idea of simd: do the same operation multiple times, assuming each one in different locations of the same register can be done independently
[13:04] <BBB> using mmx (8byte registers), you can do 4 2-byte calculations for a idct/iadst (e.g. a 4x4)
[13:04] <ubitux> ok, so indeed multiple 1d
[13:04] <BBB> using sse (16byte registers), you do 8 at a time
[13:04] <BBB> so you can do a 8x8 without a loop
[13:04] <ubitux> i was wondering if it was that way, or if the function itself was trying to make several op at the same time
[13:04] <BBB> 16x16 is harder in sse2, you need some intermediate memory stores, but avx2 allows it to be done loopless again
[13:05] <BBB> 32x32 is a bitch :)
[13:05] <BBB> but can still be done, it's just more work
[13:05] <ubitux> ok :)
[13:15] <ubitux> there are some trailing whitespaces btw, i'm assuming they will be blocking for pushing
[13:15] <BBB> probably
[13:15] <BBB> I'll remove them later
[13:16] <BBB> or if you can, go for it
[13:16] <cone-455> ffmpeg.git 03Mark Harris 07master:4ccafaca1cf6: avformat/id3v2enc: use UTF-16 in id3v2.3 APIC frame only if non-ASCII
[13:17] <BBB> fixed
[13:17] <BBB> (was easier than I thought)
[13:17] <BBB> bbl
[13:17] <ubitux> :)
[17:01] <wm4> <nevcairiel> [08:43:33] the same as [3] but only because it must be non-null <- well, I had data[0] set to a random, non-NULL value - but it appears this made the vaapi hwaccel fill in incorrect bitstream info, and led to corrupted decoding
[17:01] <wm4> with data[0] set to data[3] it works
[17:02] <wm4> didn't see anything suspicious in the libavcodec vaapi code (but then I don't know it well)
[17:29] <nevcairiel> might depend on the implementation of the actual hwaccel, not that setting [0] to the same as [3] is hard :)
[17:33] <wm4> nevcairiel: took me quite a while to find, though :(
[17:46] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:475df42eb62c: avutil/sha512: make const tables static const
[17:46] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:90b40b45d40b: avutil/sha:make const tables static const
[17:46] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:0e98a133226f: avutil/xtea: make const tables static const
[17:46] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:64a3dbadee7d: avutil/ripemd:make const tables static const
[17:46] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:22159474381c: avutil/parseutils:make const tables static const
[17:47] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:5717689c750b: avutil/avstring: make const tables static const
[17:47] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:06137a496b93: mpeg4videodec: check resolution marker bits
[17:47] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:8e119a22c482: mpeg4videodec: Parse newpred headers
[18:38] <cone-455> ffmpeg.git 03Michael Niedermayer 07master:61e0e809998f: tiff: continue parsing on non fatal errors
[19:32] <cone-455> ffmpeg.git 03Reimar Döffinger 07master:49cf36f4e3e9: sanm: fix undefined behaviour on big-endian.
[19:32] <cone-455> ffmpeg.git 03Reimar Döffinger 07master:d87f9da53c93: vdpau_internal.h: Add missing include for FF_API_BUFS_VDPAU.
[19:32] <cone-455> ffmpeg.git 03Reimar Döffinger 07master:af05edc658f3: vdpau: Add an allocation function for AVVDPAUContext.
[20:17] <cone-455> ffmpeg.git 03Reimar Döffinger 07master:d404fe35b2fb: Make new VDPAU easier to use by adding context to callback.
[21:54] <cone-455> ffmpeg.git 03wm4 07master:a5ef7960fc96: ape: check avio_read() return value
[22:10] <ubitux> michaelni: i don't know if it's playable by anything so far, the guy with the sample asked the uploaders for more info
[22:11] <ubitux> but i have the complete sample (~300M iirc) if you want
[22:11] <ubitux> it seems a bunch of videos were encoded exactly the same way
[22:11] <ubitux> note: i'm not responsible for the twisted content ;)_
[22:12] <ubitux> (mpeg4 new pred thing)
[00:00] --- Mon Aug 12 2013


More information about the Ffmpeg-devel-irc mailing list