Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
November 2018
- 1 participants
- 60 discussions
[00:09:07 CET] <jamrial> philipl: minor in release branches can't be bumped, since it would clash with master
[00:10:31 CET] <jamrial> they have their own exclusive major.minor version that can't be touched. micro is free to use
[00:11:02 CET] <JEEB> yeh
[00:11:33 CET] <jamrial> michaelni: about the above, maybe point releases should bump micro across the board
[00:14:31 CET] <jamrial> as is, there's no clear way to tell the libraries apart between 4.0.2 and 4.0.3, for example
[00:14:56 CET] <jamrial> and with the amount of bugfixes each point release gets, it may be a good idea to implement
[00:16:58 CET] <nevcairiel> unless that results in an actual functional behavior, in w hich case the change in question should've had a bump, does anyone really care?
[00:17:06 CET] <nevcairiel> not t hat bumping hurts anything
[00:24:54 CET] <philipl> jamrial: I think it generally makes sense. It basically means treating the so versions like release versions. They always increment on a new release.
[00:26:47 CET] <jamrial> philipl: that's what they do. minor is bumped at release time, so the major.minor combination in a release is not used in master
[00:27:08 CET] <jamrial> my suggestion is doing the same for point releases in a branch
[00:27:32 CET] <philipl> K. So yes, I think it's a good idea :-)
[01:05:00 CET] <nicolas17> bah, I wanted to cleanup some code but there's no tests for the functionality
[01:06:08 CET] <philipl> If nothing can say you got it wrong, can it really be wrong?
[01:06:56 CET] <nicolas17> I mean, I tried removing the feature entirely (support for .Y .U .V files in image2) and all tests passed :P
[01:12:43 CET] <philipl> heh
[12:54:08 CET] <cone-653> ffmpeg 03Michael Niedermayer 07master:df91af140c55: avcodec/mpegaudio_parser: Consume more than 0 bytes in case of the unsupported mp3adu case
[12:54:08 CET] <cone-653> ffmpeg 03Michael Niedermayer 07master:470700bc96c3: avcodec/pictordec: Error out if more than one plane is unused
[15:02:50 CET] <cone-653> ffmpeg 03Paul B Mahol 07master:63fbec747753: avfilter/af_afade: remove unused code
[19:27:02 CET] <durandal_1707> is there any audio samples available for matching/aligning?
[20:22:42 CET] <cone-223> ffmpeg 03Michael Niedermayer 07master:074187d599a2: avcodec/mpeg4videodec: Clear partitioned frame in decode_studio_vop_header()
[20:22:42 CET] <cone-223> ffmpeg 03Michael Niedermayer 07master:c1cee0565692: avcodec/cavsdec: Propagate error codes inside decode_mb_i()
[20:58:06 CET] <cone-223> ffmpeg 03Michael Niedermayer 07release/4.1:b9875b75837d: avcodec/prosumer: Check for bytestream eof in decompress()
[20:58:07 CET] <cone-223> ffmpeg 03Michael Niedermayer 07release/4.1:a163384467dd: avcodec/prosumer: Remove unneeded ()
[20:58:08 CET] <cone-223> ffmpeg 03Michael Niedermayer 07release/4.1:fd05e20650a5: avcodec/prosumer: Remove always true check in decompress()
[20:58:09 CET] <cone-223> ffmpeg 03Michael Niedermayer 07release/4.1:2f04b78b9546: avcodec/prosumer: Simplify bit juggling of the c variable in decompress()
[20:58:10 CET] <cone-223> ffmpeg 03Michael Niedermayer 07release/4.1:7d23ccac8d37: avcodec/mpegaudio_parser: Consume more than 0 bytes in case of the unsupported mp3adu case
[20:58:11 CET] <cone-223> ffmpeg 03Michael Niedermayer 07release/4.1:bc5777bdab7d: avcodec/mpeg4videodec: Clear partitioned frame in decode_studio_vop_header()
[20:58:12 CET] <cone-223> ffmpeg 03Michael Niedermayer 07release/4.1:7ebc27e1fa73: avcodec/cavsdec: Propagate error codes inside decode_mb_i()
[21:15:28 CET] <jamrial> michaelni: please don't tag 4.1 yet, i sent a fix for cbs_av1 that needs to be applied first
[21:17:37 CET] <jamrial> jkqxz: can you push your fix for redundant header obus?
[21:42:06 CET] <michaelni> jamrial, ok
[22:54:52 CET] <cone-223> ffmpeg 03Marton Balint 07master:8e5a2495a8da: avformat/ftp: allow nonstandard 202 reply to OPTS UTF8
[23:04:07 CET] <cone-223> ffmpeg 03Marton Balint 07release/4.1:63c1e291ef7b: avformat/ftp: allow nonstandard 202 reply to OPTS UTF8
[00:00:00 CET] --- Mon Nov 5 2018
1
0
[00:00:03 CET] <M6HZ> The first option seems to be wrong: -bsf:v 'extract_extradata,remove_extra=freq=all' doesn't delete them
[00:00:25 CET] <M6HZ> And I have troubles with this one: -bsf:v 'h264_metadata=delete_filler'
[00:00:38 CET] <M6HZ> Is something missing to activate the filter ?
[00:01:06 CET] <JEEB> see the filter_units bsf
[00:01:14 CET] <JEEB> that most likely is what you want, it even has examples
[00:01:24 CET] <JEEB> just check which NAL unit type the captions are in
[00:01:28 CET] <JEEB> and that should be it
[00:18:04 CET] <M6HZ> JEEB, it looks like this works without having to re-encode :) : ffmpeg -i file.ts -c:v copy -bsf:v 'filter_units=remove_types=6' -f matroska - | mpv -
[00:20:06 CET] <M6HZ> By the way, "just check which NAL unit type the captions are in". Do you know how can I figure this out ? I have found this website, which has been really helpful but it doesn't look very reliable https://fbookmedia.files.wordpress.com/2017/06/facebook-live-closed-caption…
[00:21:50 CET] <JEEB> there's a bsf that dumps info on all the packets there
[00:22:02 CET] <JEEB> yes, trace_headers
[00:22:08 CET] <M6HZ> ok. great.
[00:22:48 CET] <JEEB> I highly expect it to be one of the user data ones
[00:24:28 CET] <JEEB> and yes, NAL unit type 6 is SEI, btw :P
[00:24:41 CET] <JEEB> subtype is probably either 4 or 5
[00:26:28 CET] <M6HZ> according to the website I've linked it would be 4 :)
[00:38:07 CET] <M6HZ> JEEB, Ahem. How could you find out which one is the subtitle unit in all the garbage reported by "trace_headers" ?
[00:43:32 CET] <M6HZ> Acutally, if you know what you are searching, then you can look at "Supplemental Enhancement Information" and you get "3 nal_unit_type 00110 = 6"
[00:43:52 CET] <M6HZ> actually *
[00:44:30 CET] <M6HZ> That's a really cryptic output x)
[00:45:21 CET] <JEEB> basically it outputs the structure of the packets in the format
[00:45:43 CET] <JEEB> and yes, nal_unit_type is the type of the NAL unit (AVC and HEVC are NAL unit based formats)
[00:47:19 CET] <JEEB> and yes, looking at the cbs_h264_syntax_template.c "Supplemental Enhancement Information" is the header printed out for SEIs
[00:47:51 CET] <JEEB> then it should print out something for the payload as well, since it parses the the payloads as well
[00:48:24 CET] <JEEB> it should print out the country code, the extension byte if that's there, and then the payload
[00:49:10 CET] <M6HZ> JEEB, it's even more cryptic
[00:49:18 CET] <M6HZ> I get things like that:
[00:49:21 CET] <M6HZ> [AVBSFContext @ 0x556284646340] 8 last_payload_type_byte 00000100 = 4
[00:49:21 CET] <M6HZ> [AVBSFContext @ 0x556284646340] 16 last_payload_size_byte 01100101 = 101
[00:49:21 CET] <M6HZ> [AVBSFContext @ 0x556284646340] 24 itu_t_t35_country_code 10110101 = 181
[00:49:21 CET] <M6HZ> [AVBSFContext @ 0x556284646340] 32 itu_t_t35_payload_byte 00000000 = 0
[00:49:26 CET] <M6HZ> [AVBSFContext @ 0x556284646340] 40 itu_t_t35_payload_byte 00110001 = 49
[00:49:58 CET] <JEEB> prefer a pastebin site for anything more than one or two lines
[00:50:05 CET] <M6HZ> ok
[00:50:06 CET] <JEEB> but anyways, that's the type there first
[00:50:16 CET] <JEEB> then the payload size
[00:50:34 CET] <JEEB> and then you see the t35 values from inside the registered user data sei
[01:19:41 CET] <M6HZ> https://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-T.35-2012-OAS-PDF-E.pdf
[01:19:48 CET] <M6HZ> JEEB, very interesting
[01:20:25 CET] <JEEB> yes
[01:20:33 CET] <JEEB> that's the country codes
[01:21:46 CET] <M6HZ> Thanks JEEB and nicolas17 for your help. JEEB you seem to have an extensive knowledge about this software :)
[01:22:30 CET] <JEEB> I both hate and love this mess of software, and I'm a maintainer at both FFmpeg and mpv :P
[01:22:30 CET] <TheAMM> Must be a fan, huh
[01:23:03 CET] <M6HZ> JEEB, alright ;)
[01:23:23 CET] <JEEB> although I'm mostly just a masochist on the user support channels
[01:23:30 CET] <JEEB> otherwise just herping a derp elsewhere on IRC
[01:23:45 CET] <nicolas17> in my experience, diving into the source code is more masochistic
[01:24:13 CET] <JEEB> depends, you can grep the logs for me exploding here :P
[01:24:25 CET] <JEEB> although sometimes I also nowadays leave the channel for a while
[01:25:27 CET] <JEEB> nicolas17: but I do agree that I wish I knew less about the insides of discontinuity handling and "vsync" code in ffmpeg.c
[01:26:41 CET] <nicolas17> JEEB: diving into the code is how I found this stupid inconsistency https://paste.kde.org/pbemjvxv7
[01:27:14 CET] <nicolas17> if frame09.png is missing, it processes from 1 to 8; if frame10.png is missing, it tries to process 1 to 20 and gives an error when it can't open 10
[01:27:39 CET] <JEEB> oh, the Very Specific modules that someone made for their little use case
[01:27:41 CET] <JEEB> yes
[01:28:29 CET] <nicolas17> image sequences is very specific and little use case? :P
[01:29:02 CET] <JEEB> no, but the module was clearly made by someone for his own little specific use case
[01:29:12 CET] <JEEB> just like we have I think like four things to do concatenation
[01:29:19 CET] <JEEB> protocol, demuxer, filter?
[01:29:40 CET] <nicolas17> https://paste.kde.org/p6ql23grx here's the underlying cause... it uses exponential steps to find the last file instead of checking every file
[01:29:59 CET] <nicolas17> so gaps are handled inconsistently depending on if the search happens to check it or not
[01:33:16 CET] <Zexaron> A bit old but this is interesting https://twitter.com/ID_AA_Carmack/status/1052237045526089729
[02:30:36 CET] <gaara4896> Was wondering in FFMPEG configure, the --extra-libs=ELIBS add ELIBS [$ELIBS], what is the exact meaning of ELIBS? I can't find the meaning of it
[02:34:35 CET] <furq> gaara4896: are you asking where $ELIBS comes from or what you're supposed to put there
[02:34:52 CET] <furq> if it's the former then it's just a user set env var
[02:34:59 CET] <furq> if it's the latter then it'd be like -lfoo -lbar
[02:39:34 CET] <gaara4896> I believe it would be something like libmathlib.so will become -lmathlib right? For adding third party library, is placing the .so file in /lib/ and define --extra-cflags=-Iffmpeg/include and --extra-ldflags=-Lffmpeg/lib sufficient? I tried doing that, but when configure, it always fail and the tail of config.log is always "cannot open shared object file"
[02:41:03 CET] <JEEB> yes, extra-ldflags or you make a pc file for your thing and make configure pick it up (and use PKG_CONFIG_PATH env var to point towards the directory it's in)
[02:41:47 CET] <JEEB> also of course make sure the solib is for the arch you're building FFmpeg for :P
[02:42:17 CET] <JEEB> also generally speaking I wouldn't put my extra dependencies sysroot within the FFmpeg build directory
[02:47:49 CET] <gaara4896> What is the different between --extra-ldflags and --libdir? They both seems to do the same thing to me, which is defining the path to the directory where all the solib is placed
[02:48:09 CET] <JEEB> extra-ldflags by default is not set
[02:48:18 CET] <JEEB> libdir is the directory where libraries installed to
[02:48:27 CET] <JEEB> by default it's --prefix + /lib
[02:48:38 CET] <JEEB> just like bindir is by default prefix + /bin
[02:49:06 CET] <JEEB> I generally for stuff I build locally use a custom prefix like /home/jeeb/ownapps
[02:49:28 CET] <JEEB> (by default in many projects /usr/local)
[02:49:45 CET] <JEEB> but yea, extra-XXXflags is for building/linking
[02:49:58 CET] <JEEB> while libdir is an output (install) parameter for the stuff you built
[02:50:00 CET] <JEEB> :P
[02:51:45 CET] <JEEB> see ../configure --help |grep libdir
[02:51:59 CET] <JEEB> or just one dot if you're in the same dir as the FFmpeg configure script
[03:34:14 CET] <gaara4896> The problem I am facing is I had define --extra-ldflags=-L/<fullpath>/ffmpeg/lib, place the .so file inside the ffmpeg/lib, and define --extra-libs=-l<libname>, and also --enable-rpath, however I am still getting "cannot open shared object file: No such file or directory" in the tail of the error, why does it not reference the .so file to the ffmpeg/lib directory?
[03:34:34 CET] <gaara4896> The problem occur when I am doing ./configure, not during make
[06:37:18 CET] <gaara4896> The problem I am facing is I had define --extra-ldflags=-L/<fullpath>/ffmpeg/lib, place the .so file inside the ffmpeg/lib, and define --extra-libs=-l<libname>, and also --enable-rpath, however I am still getting "cannot open shared object file: No such file or directory" in the tail of the error, why does it not reference the .so file to the ffmpeg/lib directory?
[06:37:23 CET] <gaara4896> The problem occur when I am doing ./configure, not during make
[10:23:20 CET] <gaara4896> The problem I am facing is I had define --extra-ldflags=-L/<fullpath>/ffmpeg/lib, place the .so file inside the ffmpeg/lib, and define --extra-libs=-l<libname>, and also --enable-rpath, however I am still getting "cannot open shared object file: No such file or directory" in the tail of the error, why does it not reference the .so file to the ffmpeg/lib directory?
[10:48:07 CET] <JEEB> because whatever the result is you're getting isn't finding whatever you're needing? :P
[10:49:03 CET] <JEEB> if you are not getting through the configure phase then check ffbuild/config.log for the exact command that you can try then running manually. otherwise `make V=1` is what during running the Makefile outputs the full commands
[10:49:16 CET] <JEEB> so you can see exactly how the output looks and if it contains what you think it does
[10:50:14 CET] <gaara4896> the `make V=1` is for making stage is it?
[10:51:32 CET] <JEEB> whatever that means
[10:52:08 CET] <illuminated> is ffmpeg coded in c?
[10:52:31 CET] <JEEB> yes
[10:52:47 CET] <JEEB> there's very few C++ files explicitly for libraries that require C++ interfaces
[10:53:54 CET] <illuminated> ok, and what is handbrake coded in?
[10:54:06 CET] <JEEB> I have no idea
[10:54:08 CET] <illuminated> I understand it's kinda just a gui frontend to ffmpeg
[10:54:23 CET] <JEEB> it is an API client for FFmpeg, and then on top of that it has the front-end
[10:54:48 CET] <illuminated> I'm learning programming
[10:54:56 CET] <illuminated> and I'm looking for projects
[10:55:13 CET] <illuminated> thought that writing a simple frontend to ffmpeg would be an interesting project
[10:55:22 CET] <gaara4896> I tried to put the last command in the config.log into my console and it works lol, and able to get -l<libname> wihtout a problem, but it get error when doing ./configure <param...>
[10:55:38 CET] <illuminated> anyway thanks
[10:56:49 CET] <JEEB> gaara4896: so you're not getting further than configure?
[10:57:17 CET] <JEEB> gaara4896: then find what command fails ffbuild/config.log
[10:57:57 CET] <gaara4896> JEEB: The failing comamnd in config.log works when I run it seperately, yet fail when inside .configure
[10:58:52 CET] <gaara4896> https://pastebin.com/6Uwk87bZ, what is the few thing that looks like hash value .c?
[10:59:08 CET] <gaara4896> like /tmp/ffconf.R74iH7Iv.c
[10:59:12 CET] <JEEB> that's the temporary .c file's name
[10:59:21 CET] <JEEB> the script uses mktemp or something to generate them
[10:59:49 CET] <JEEB> in this case it's a basic check if you can compile a file that contains a simple main that returns 0
[11:01:24 CET] <gaara4896> I see, no wonder it says C compiler fail test
[19:08:42 CET] <a__pi> I'm trying to download something rtsp with Transport: MP2T/H2221/UDP. I tried -rtsp_transport udp but it's not sending this type of transport. Is it possible to use this type with ffmpeg ?
[23:06:26 CET] <limbo_> Is there some kind of CLI video encoder interface with a lot of presets for what can play on different platforms, and speed/quality? e.g. encodething -i file.webm --preset ps4 -q high file.mp4 Like handbrake, but faster + CLI.
[23:07:49 CET] <ritsuka> handbrake uses the same encodes as all the other open sources programs& so the speed will be mostly the same, and there is a handbrakecli version too
[23:40:54 CET] <limbo_> interface is pretty bad though. compared to other linux things.
[23:42:43 CET] <furq> do you really need more than one preset these days
[23:42:54 CET] <furq> unless it's for 4k, basically everything wants h264 and aac in mp4
[23:43:23 CET] <nicolas17> the only time I ever had to change something for compatibility was "-profile main" for a crappy TV
[23:43:34 CET] <furq> yeah the days of using baseline and main are more or less over
[23:43:43 CET] <furq> the only real consideration is that you might need to set level 4.1 for hwdec
[23:44:00 CET] <nicolas17> furq: I mean in the days of iPod it was more complicated than just main vs high
[23:44:30 CET] <furq> ipod video was baseline at a specific resolution wasn't it
[23:45:52 CET] <furq> but yeah more or less everything from this decade supports high at 4.1
[00:00:00 CET] --- Mon Nov 5 2018
1
0
[01:17:09 CET] <cone-671> ffmpeg 03Michael Niedermayer 07release/4.0:d2ce6472a77a: avcodec/msrle: Check that the input is large enough to contain a end of picture code
[01:17:10 CET] <cone-671> ffmpeg 03Michael Niedermayer 07release/4.0:b8aa7b9a6d86: avutil/integer: Fix integer overflow in av_mul_i()
[01:17:11 CET] <cone-671> ffmpeg 03Michael Niedermayer 07release/4.0:fcbd117df307: Changelog: update
[01:50:03 CET] <cone-671> ffmpeg 03Michael Niedermayer 07n4.0.3:HEAD: avcodec/prosumer: Simplify bit juggling of the c variable in decompress()
[04:20:32 CET] <cone-671> ffmpeg 03James Almer 07release/4.0:dee8f4b01bfe: avcodec/libaomenc: remove AVOption related to frame partitions
[11:12:03 CET] <durandal_1707> who put yadif_cuda filter in wrong section of Changelog?
[13:01:01 CET] <atomnuker> BBB: wrote checkasm, how do I get the bench time?
[13:31:08 CET] <BBB> bench
[13:31:15 CET] <BBB> test=<yourtestname> --bench
[13:31:27 CET] <BBB> e.g. test=looprestoration_8bpc bench
[13:31:49 CET] <BBB> where the name is the one from the table in checkasm.c
[13:32:11 CET] <BBB> and then itll report everything that has a report() line under that function cll
[13:34:05 CET] <atomnuker> meson test -C build -v test=looprestoration_8bpc bench
[13:34:09 CET] <atomnuker> no suitable tests found
[13:34:50 CET] <atomnuker> then what's the string in check_func() used for if only the one in report() is used?
[13:35:09 CET] <atomnuker> you can give arguments to it, like cdf size, unlike in report
[13:35:19 CET] <BBB> ninja && tests/checkasm test=looprestoration_8bpc bench
[13:35:41 CET] <BBB> sorry, youre right
[13:35:49 CET] <BBB> check_func() is for the per-function perf benchmark (--bench)
[13:36:04 CET] <BBB> the report() is only to validate that all tests in that group passed
[13:36:30 CET] <BBB> and checkasm.c is for test=<name> selection
[13:36:50 CET] <atomnuker> zsh: permission denied: tests/checkasm
[13:37:09 CET] <atomnuker> oh damn, forgot to append build dir
[13:37:16 CET] <BBB> :)
[13:37:41 CET] <atomnuker> did I mention I hate meson and like obscure long bash scripts?
[13:37:48 CET] <BBB> o_O
[13:37:55 CET] <atomnuker> seems like every project but the simplest that uses meson is fighting against it
[13:37:57 CET] <BBB> I guess you did now :)
[13:38:25 CET] <atomnuker> people constantly need to add features to fix bugs, do workarounds to make it work
[13:38:25 CET] <BBB> j-b selected the build system and he liked this. Im fine with it, it does what it needs to do
[13:38:34 CET] <atomnuker> and at the end of the day there's no make backend
[13:38:45 CET] <atomnuker> why? make is fast, everyone has it, ninja is some google thing
[13:39:06 CET] <atomnuker> but they made it a principle not to have make support
[13:39:15 CET] <BBB> I dont care, I really dont. I dont care for build systems. I care for C code and assembly, and algorithms for video compression etc.
[13:39:35 CET] <atomnuker> yeah, I know, this is on the side of usability and extendability
[13:39:37 CET] <BBB> I ask dumb questions aboutt he build system all the time, and ePirat is knowledgable and answers all my questions
[13:39:41 CET] <BBB> so it works fine for me
[13:40:05 CET] <BBB> its better than ffmpegs configure, where nobodoy knows how it works, except mru who isnt here and diego whos doing some fork
[13:40:38 CET] <BBB> usability o_O whats that? :-p
[13:40:48 CET] <BBB> anyway, does checkasm work now?
[13:41:07 CET] <atomnuker> configure.sh is alright, I can sort of understand what it does enough to work with it
[13:41:08 CET] <BBB> dont forget to build in release mode
[13:41:17 CET] <atomnuker> and its also faster than meson and doesn't require ninja
[13:41:24 CET] <BBB> (meson configure --buildtype=release -Db_sanitize=none && ninja clean && ninja)
[13:41:24 CET] <atomnuker> granted, it doesn't support msvc though
[13:41:41 CET] <atomnuker> can't I use debugoptimized?
[13:41:43 CET] <JEEB> msvc it does, it doesn't support msvs
[13:41:51 CET] <JEEB> otherwise we wouldn't support cl.exe
[13:42:17 CET] <BBB> debugoptimized is probably ok, yes
[13:42:17 CET] <JEEB> (MSVS is the GUI/IDE, MSVC is the C compiler)
[13:42:25 CET] <BBB> release is slightlybetter but itll only be off by a few %
[13:42:32 CET] <BBB> dont use debug, its like -O0, results will be useless
[13:42:37 CET] <atomnuker> BBB: running the checkasm script and it prints exactly what meson test outputs
[13:42:47 CET] <atomnuker> debugoptimized isn't release + debug symbols?
[13:43:02 CET] <BBB> I think one is O2 and one is O3?
[13:43:17 CET] <BBB> $ tests/checkasm --test=looprestoration_8bpc
[13:43:17 CET] <BBB> checkasm: using random seed 4273947412
[13:43:19 CET] <BBB> AVX2:
[13:43:20 CET] <BBB> - looprestoration_8bpc.wiener [OK]
[13:43:21 CET] <BBB> - looprestoration_8bpc.sgr [OK]
[13:43:22 CET] <BBB> checkasm: all 5 tests passed
[13:43:24 CET] <BBB> you dont see that?
[13:43:40 CET] <atomnuker> nope, I see checkasm: all 1068 tests passed
[13:43:53 CET] <atomnuker> ./build/tests/checkasm test=looprestoration_8bpc bench
[13:44:03 CET] <BBB> did you copypaste my dashes?
[13:44:17 CET] <BBB> my irc client converts them from a real dash to some corrupt counterpart
[13:44:22 CET] <BBB> which isnt an actual dash
[13:44:24 CET] <atomnuker> ...I did
[13:44:30 CET] <BBB> really
[13:44:33 CET] <BBB> and still nothing?
[13:44:44 CET] <atomnuker> no, I mean I copied them and that's why it didn't work
[13:44:47 CET] <BBB> :)
[13:44:54 CET] <BBB> sorry, my irc client is & dumb
[13:45:07 CET] <BBB> - -
[13:45:10 CET] <atomnuker> your dots and quote marks are visibly different here, but dashes not so much
[13:52:55 CET] <BBB> you know we have a irc channel for this where other people can also help with these questions, right? just sayin. you dont have to be there if you dont want to, but youd get answers quicker
[13:56:28 CET] <atomnuker> yeah, I know, I'm in no hurry and I don't know what else to do after the ec stuff is done
[13:58:47 CET] <BBB> theres a long todo list of potential funny optimizations on the wiki
[13:58:58 CET] <BBB> https://code.videolan.org/videolan/dav1d/wikis/task-list
[13:59:14 CET] <BBB> youd maybe be interested in the more technical ones?
[13:59:35 CET] <BBB> e.g. the palette index context optimizations, the hi/lo coef coding context optimizations
[13:59:44 CET] <BBB> esp. the second could be pretty big if we do it right
[13:59:49 CET] <BBB> brb
[16:11:09 CET] <ePirat> atomnuker, yes meson has still some rough edges and lacking support of some things in some areas but it's improving
[16:55:44 CET] <cone-077> ffmpeg 03Josh de Kock 07master:8096f52049ac: fate/api-h264-slice-test: don't use ssize_t
[16:55:44 CET] <cone-077> ffmpeg 03Josh de Kock 07master:1052578dadf7: fate/api-h264-slice-test: use cleaner error handling
[16:58:11 CET] <nevcairiel> January: can you push that to 4.1 as well?
[16:58:44 CET] <cone-077> ffmpeg 03Josh de Kock 07release/4.1:5060a615c738: fate/api-h264-slice-test: don't use ssize_t
[16:58:45 CET] <cone-077> ffmpeg 03Josh de Kock 07release/4.1:765fb1f224f6: fate/api-h264-slice-test: use cleaner error handling
[17:01:50 CET] <jamrial> nevcairiel: why didn't the ssize_t error happen in your fate clients?
[17:01:55 CET] <nevcairiel> it does
[17:02:10 CET] <nevcairiel> but compile errors in test programs dont get recognized by fate as a failure for some reason
[17:02:25 CET] <jamrial> ah
[17:02:37 CET] <jamrial> yeah, i've seen that happen before with other tests
[17:02:40 CET] <nevcairiel> fatebeta shows the stations as yellow
[17:02:42 CET] <jamrial> it's really annoying
[17:02:47 CET] <nevcairiel> but for some reason fatebeta was never finished
[17:03:27 CET] <jamrial> it's yellow but still says "3660 / 3660"
[17:03:33 CET] <jamrial> so not perfect
[17:03:41 CET] <nevcairiel> yeah but at l east it indicates something is wrong
[18:12:00 CET] <gaara4896> Hello, I was trying to compile ffmpeg, and I face this problem. The config.log looks something like this: https://pastebin.com/DUzgv9W6, but libstegolib.so did exists inside the folder ffmpeg/lib/libstegolib.so, anyone have any idea what might be the cause?
[18:12:24 CET] <JEEB> that is not related to upstream as I already told you on #ffmpeg
[18:12:45 CET] <JEEB> please do not spam and this channel is specific to FFmpeg development
[18:25:36 CET] <cone-077> ffmpeg 03Paul B Mahol 07master:639694eaa554: avfilter/vf_extractplanes: use ff_outlink_get_status()
[18:25:37 CET] <cone-077> ffmpeg 03Paul B Mahol 07master:decc008929e3: avfilter/af_amultiply: make use of ff_inlink_queued_samples()
[18:25:38 CET] <cone-077> ffmpeg 03Paul B Mahol 07master:4b82b7104120: avfilter/af_amerge: use ff_inlink_queued_samples()
[18:25:39 CET] <cone-077> ffmpeg 03Paul B Mahol 07master:c8625e5c6f50: avfilter/af_afade: do not use framequeue directly
[18:25:40 CET] <cone-077> ffmpeg 03Paul B Mahol 07master:242f7bf20254: avfilter/split: use ff_outlink_get_status()
[18:25:51 CET] <JEEB> -34
[20:36:42 CET] <durandal_1707> SSSSSSSSSSSSSSSPPPPPPPPPPPPPPPPPPAAAAAAAAAAAAAAAAAAAAAAAAAAAAMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
[20:37:53 CET] <atomnuker> where?
[20:38:43 CET] <durandal_1707> philipl: did you put cuda yadif filter in wrong section of Changelog?
[20:42:38 CET] <durandal_1707> atomnuker: spam of silence
[20:50:16 CET] <atomnuker> it is saturday after all
[20:51:31 CET] <atomnuker> I have learned to appreciate silence more over the past few days
[20:51:47 CET] <atomnuker> there has been constant bombardment here over the past week or more here
[20:52:54 CET] <atomnuker> fireworks, explosions, around the evenings, some foreign holiday or something which last a whole 2 weeks or so
[20:53:27 CET] <atomnuker> oh and a fucking bird that sings for 5 minutes at 06:36 every morning, wakes me up, and fucks off a few minutes later
[20:56:38 CET] <philipl> durandal_1707: did i?
[20:58:41 CET] <Compn> lol atomnuker
[20:58:47 CET] <Compn> 6:36 bird
[21:05:21 CET] <philipl> i thought 4.0 had been cut already. is it not?
[21:05:40 CET] <nevcairiel> 4.1 has been cut yes
[21:06:04 CET] <nevcairiel> but thats why its in the wrong section
[21:06:08 CET] <nevcairiel> because its not in 4.1 =p
[21:06:09 CET] <atomnuker> Compn: yes, it thinks its spring, the small idiotic creature, and thus sings as if its the breeding season
[21:06:13 CET] <philipl> oh.
[21:06:26 CET] <nevcairiel> generally, you always put it into the top section, it gets updated on cuts
[21:06:26 CET] <atomnuker> its not as bad as spring though, fuck spring, multiple ones all at once at 05:20
[21:06:48 CET] <philipl> well, that's easy to fix. or do you want me to cherry pick it over?
[21:07:01 CET] <nevcairiel> i wouldnt mind having it in 4.1
[21:07:06 CET] <nevcairiel> its not like 4.1 is frozen yet
[21:07:17 CET] <philipl> i missed it because when i started, 4.1 hadn't been cut yet.
[21:07:33 CET] <philipl> i'll cherry-pick it over later today.
[23:46:42 CET] <philipl> nevcairiel: So what do I do about the version.h when porting to the branch?
[23:46:59 CET] <philipl> I have a minor bump because of the new filter. Do I just leave it untouched? Increase the micro version instead?
[23:47:38 CET] <nevcairiel> do a micro i guess
[23:49:32 CET] <philipl> Will do
[23:55:18 CET] <cone-077> ffmpeg 03Philip Langdale 07release/4.1:041231fcd632: libavfilter/vf_yadif: Make frame management logic and options shareable
[23:55:19 CET] <cone-077> ffmpeg 03Philip Langdale 07release/4.1:67126555fc03: avfilter/vf_yadif_cuda: CUDA accelerated yadif deinterlacer
[23:55:20 CET] <cone-077> ffmpeg 03Philip Langdale 07release/4.1:6feec11e489b: avcodec/nvdec: Increase frame pool size to help deinterlacing
[23:55:21 CET] <cone-077> ffmpeg 03Philip Langdale 07release/4.1:ebc1c49e417c: avfilter/vf_cuda_yadif: Avoid new syntax for vector initialisation
[00:00:00 CET] --- Sun Nov 4 2018
1
0
[00:54:23 CET] <brimestone> Is there an ffmpeg/ffplay wrapper for Swift4 or objective c?
[04:44:34 CET] <grosso> hi
[04:45:12 CET] <grosso> i'm using ffmpeg to receive a rtsp stream, like this: ffmpeg -i 'rtsp://192.168.1.44:8559/live.sdp -c copy output.mkv
[04:46:25 CET] <grosso> the problem is that ffmpeg actually don't save the file until the streaming is stopped from the sending end... it actually don't do anything until streaming is stopped
[04:47:38 CET] <nicolas17> that seems unlikely... where would all the stream be stored meanwhile? in RAM?
[04:49:04 CET] <grosso> I tryed with several different options: to save a file, to save a sequence of pictures, using segments, re-streaming through udp, etc etc etc... in all cases, it just receives the stream (I see that at the sender end) but don't do anything more until streaming stops
[04:49:24 CET] <grosso> yes! it stores it in RAM!!
[04:51:45 CET] <grosso> nicolas17... it's so strange.. I can't make it do anything until stop sending stream... then it saves the files from what I think has to be a large RAM buffer
[04:52:22 CET] <pink_mist> have you tried streaming so much that it won't fit in RAM?
[04:53:20 CET] <nicolas17> how big is the file when you stop it?
[04:54:28 CET] <grosso> well, i do no tryed beyond a minute or two... when working with sequences of pictures, it can deliver 1000 pictures from ram
[04:55:00 CET] <grosso> that actually is 40 seconds
[04:56:08 CET] <grosso> what I think it behaves like the imput was actually a file, rather than a live streaming
[04:56:34 CET] <nicolas17> file size I mean
[04:58:14 CET] <grosso> file size is easy 4mBytes
[04:58:34 CET] <grosso> i don't stressed out
[04:58:43 CET] <grosso> just a minute or so
[04:59:07 CET] <nicolas17> it can buffer data before writing to output file but 4MB seems too much...
[04:59:35 CET] <grosso> it does it..
[05:01:33 CET] <grosso> it don't do anything until streaming stops.. if it could buffer 100MB it will... don't do anything until streaming stops from sender
[05:01:55 CET] <grosso> that's the problem
[05:02:26 CET] <grosso> I can't make it behaves like if a real live streaming
[05:03:09 CET] <grosso> it just behaves like if the input was a file
[05:04:15 CET] <nicolas17> input files don't behave like that either
[05:04:22 CET] <nicolas17> buffering the entire video in memory makes no sense
[05:04:26 CET] <nicolas17> try for longer time?
[05:04:53 CET] <grosso> ok, I can try for longer time
[05:05:03 CET] <grosso> just wait a moment
[05:09:11 CET] <grosso> ok, I just started now
[05:09:21 CET] <grosso> tell me when to stop
[05:10:05 CET] <nicolas17> maybe like 2 minutes to ensure it exceeds 4MB?
[05:10:40 CET] <grosso> ok
[05:10:49 CET] <grosso> it is running now
[05:11:51 CET] <grosso> maybe it just buffer the last 4mb of video...what is for sure is that it don't saved any file so far
[05:12:21 CET] <grosso> so, I stop it?
[05:12:42 CET] <furq> grosso: try setting -rtbufsize
[05:14:00 CET] <grosso> 8MB
[05:15:54 CET] <grosso> rather than limit buffer size, i would like to force it to save files before stream stops
[18:08:46 CET] <gaara4896> Hello, I was trying to compile ffmpeg, and I face this problem. The config.log looks something like this: https://pastebin.com/DUzgv9W6, but libstegolib.so did exists inside the folder
[18:08:50 CET] <gaara4896> ffmpeg/lib/libstegolib.so, anyone have any idea what might be the cause?
[18:09:27 CET] <JEEB> not upstream stuff
[18:09:46 CET] <JEEB> please take this to the developers of this specific project
[18:10:01 CET] <JEEB> since stegolib is not part of FFmpeg nor is what you're building part of the standard FFmpeg
[18:10:27 CET] <JEEB> but what it sounds is that you don't have that stegolib thing in your linker search path
[18:10:42 CET] <JEEB> good luck with trying to get support from that project
[18:10:46 CET] <gaara4896> I actually wanted to ask CMake or Make specific problem, not ffmpeg, wondering what IRC channel is related to it?
[18:13:30 CET] <JEEB> gaara4896: no idea. your best bet is to just ask for guidance with that project you are trying to build
[18:17:24 CET] <pink_mist> gaara4896: /msg alis help
[18:17:35 CET] <pink_mist> gaara4896: alis is the freenode bot for channel listing and searching
[19:09:41 CET] <Filarius> hello, would somebody say me is there will be really big difference for encoding time if I take same raw data file and encode it as 1080p source or 4k source, or 480p source ?
[19:10:07 CET] <Filarius> with x264 codec
[19:11:18 CET] <furq> yes
[19:12:45 CET] <tdr> more data or less data to encode = more or less work to do
[19:14:06 CET] <Filarius> just for sure... input file is like just 1Gb raw data( always same for all setings), and only what I change will be making ffmpeg think what resolution it could be, with common settings on x264
[19:14:54 CET] <Filarius> yes, result file will be different at frame count, but in this I only want know what will be with time spent on encoding
[19:15:39 CET] <Filarius> furq, and where it will be faster ?
[19:17:57 CET] <Filarius> I know I ask strang thing, but I talk about it with buddy and its about using ffmpeg in data procedding
[19:18:00 CET] <Filarius> *processing
[19:27:30 CET] <ChocolateArmpits> Filarius, in theory then it shouldn't
[19:27:51 CET] <ChocolateArmpits> unless there's something memory related due to bigger frames
[19:28:56 CET] <ChocolateArmpits> Filarius, you may have to pad it if the data length doesn't stricly match the input settings you will use
[19:29:27 CET] <Filarius> yep, padding added
[19:30:12 CET] <Filarius> just there some stranger found my old "data to video" project so we came to this question
[19:31:26 CET] <ChocolateArmpits> I think there was someone else some time ago who wanted to also lossy compress data as well
[19:32:11 CET] <Filarius> a sent days and nights making DCT data coding as I see simple squares is too stupid ideas, and that dude say me what he prefer version what pack data into b/w squares !
[19:32:27 CET] <Filarius> ***i spent days and nights
[19:33:22 CET] <Filarius> maybe I was here with same question
[19:33:32 CET] <Filarius> 2-3 years ago
[19:33:43 CET] <ChocolateArmpits> nah it was a month or so ago
[19:34:00 CET] <ChocolateArmpits> definitely in the last few months
[19:37:34 CET] <Filarius> well, I have 2 y.o. project on GitHub already made it with Integer Cosinus Transform "stolen" from E264 sources and making error-less coding/decoding best at ~7 bits per 8x8 block yuv420p for case if you want upload it on Youtube (thought testes also like 2 years ago)
[19:40:16 CET] <Filarius> thought shortly ago i was back to project with idea to rewrite to make cross platform and I found pure ICT isn't working so best as I thought before, also made myself a little-little more undertanding how actually x264 works
[20:10:26 CET] <kerio> how do i shove hevc into rtmp?
[20:11:07 CET] <JEEB> you don't
[20:11:09 CET] <JEEB> it's not specified
[20:11:14 CET] <JEEB> go ask Adobe if you need it
[20:11:30 CET] <JEEB> so that it appears in annex E of https://wwwimages2.adobe.com/content/dam/acom/en/devnet/flv/video_file_form…
[20:12:06 CET] <JEEB> although adobe really felt like they were going the fragmented mp4 route
[20:12:33 CET] <JEEB> and FLV (which is what is transferred over RTMP) went the way of the dodo
[22:33:23 CET] <M6HZ> Hello, is there a way to extract CEA 608/708 subtitles from h264 stream over http ? This works, but only for local files: ffmpeg -f lavfi -i movie=file.ts[out+subcc] -map 0:1 -f srt -
[22:35:56 CET] <JEEB> I don't see it being any more special unless protocols are blacklisted in the lavfi thing
[22:36:11 CET] <JEEB> technically you don't need lavfi for the thing at all, but ffmpeg.c doesn't support it
[22:36:34 CET] <JEEB> writing an API client that does caption extraction should be pretty simple
[22:36:53 CET] <JEEB> just init lavf+lavc and grab the captions from the video packets' side data
[22:38:28 CET] <M6HZ> JEEB, here is what I get if I substitute the file name with a url to a ts file: [Parsed_movie_0 @ 0x555934ccec00] Failed to avformat_open_input 'http'
[22:38:48 CET] <JEEB> sounds like you need to escape the :
[22:38:51 CET] <nicolas17> that's because : separates parameters in a filtergraph
[22:40:53 CET] <M6HZ> you mean like that: \: ?
[22:40:56 CET] <nicolas17> yes
[22:41:06 CET] <M6HZ> It doesn't change anything.
[22:41:47 CET] <JEEB> http://ffmpeg.org/ffmpeg-filters.html#Notes-on-filtergraph-escaping
[22:42:07 CET] <JEEB> read up this
[22:42:08 CET] <JEEB> :)
[22:42:15 CET] <M6HZ> ok
[22:42:24 CET] <nicolas17> maybe your shell is interpreting \: and sending : to ffmpeg
[22:44:02 CET] <M6HZ> nicolas17, I think you're right.
[22:46:48 CET] <M6HZ> The result is different if I double the escape \\:
[22:46:54 CET] <M6HZ> Now it looks like the option -referer is ignored.
[22:47:33 CET] <M6HZ> Is this option incompatible with -lavfi ?
[22:48:20 CET] <JEEB> lavfi makes the lavf context by itself so whatever you set with ffmpeg.c probably ain't gonna get passed
[22:49:09 CET] <M6HZ> Wow. Ok.
[22:49:46 CET] <JEEB> you could see what that movie filter does
[22:49:56 CET] <JEEB> and if it has options for passing lavf options
[22:50:12 CET] <JEEB> although to be honest if I was in your shoes I'd probably make a simple API client for the FFmpeg APIs
[22:52:48 CET] <M6HZ> JEEB, I would rather avoid that since I would like it to be the more portable and with the fewer dependencies possible.
[22:53:31 CET] <JEEB> well FFmpeg with its libs are already your dependencies
[22:54:44 CET] <nicolas17> I don't understand why the video can't be passed to -i
[22:54:58 CET] <JEEB> because ffmpeg.c doesn't have the logic to handle side data packets
[22:55:23 CET] <JEEB> for some reason only lavfi's movie filter has that functionality and generates that extra stream from it if it notices the captions might be there
[22:55:43 CET] <JEEB> (well I can understand why kind of, ffmpeg.c is a mess)
[22:59:45 CET] <M6HZ> Humm, I guess I'm running out of options.
[23:02:20 CET] <nicolas17> curl -H "Referer: http://example.com/" http://example.com/video.mp4 | ffmpeg -f lavfi -i movie=/dev/stdin[out+subcc]
[23:02:23 CET] <nicolas17> or would movie=- work?
[23:03:07 CET] <M6HZ> Yes, obviously, It would work, but this is a m3u8 stream ...
[23:03:57 CET] <nicolas17> HLS? ouch
[23:04:17 CET] <nicolas17> hmm
[23:04:42 CET] <nicolas17> JEEB: would "ffmpeg -i http://blah -codec copy -" at least *preserve* side data?
[23:05:53 CET] <JEEB> hmm, that would still have the side data in the AVPacket I guess
[23:05:58 CET] <M6HZ> by "side data" do you mean the subtitles ?
[23:05:58 CET] <JEEB> so quite possibly yes
[23:06:09 CET] <JEEB> M6HZ: they're part of the video stream as side data, so yes
[23:06:19 CET] <M6HZ> Yes, they are preserved
[23:06:39 CET] <JEEB> nicolas17: basically I don't see any special handling of SIDE_DATA anything in ffmpeg.c so most likely the AVPackets will just get passed on
[23:06:58 CET] <nicolas17> then maybe:
[23:07:08 CET] <nicolas17> ffmpeg -referer http://example.com/ -i http://example.com/stream.m3u8 -codec copy -f matroska - | ffmpeg -f lavfi -i movie=-[out+subcc] -map 0:1 -f srt -
[23:07:35 CET] <nicolas17> maybe another -f is more appropriate I dunno
[23:08:25 CET] <M6HZ> nicolas17, even if I do: ffmpeg -i file.ts -c:v h264 -f matroska - | mpv - I can still get the subtitles.
[23:08:51 CET] <JEEB> since they're in the video track yea
[23:09:07 CET] <JEEB> unless something touches those AVPackets inappropriately it will pass them through
[23:09:36 CET] <nicolas17> yeah but -c:v h264 would unnecessarily re-encode the video, you should use -c:v copy since you're ignoring the actual video anyway
[23:10:03 CET] <M6HZ> JEEB, ok, interesting.
[23:10:32 CET] <M6HZ> nicolas17, yes, I know that, it's just that it was odd to me.
[23:10:59 CET] <JEEB> but yea, this is just a hack from hell tbqh :P but hey, I've already voiced my opinion
[23:11:32 CET] <nicolas17> isn't ffmpeg.c a hack from hell? :v
[23:11:57 CET] <JEEB> yea, but I recommended a simple lavf+lavc API client
[23:12:03 CET] <JEEB> since just doing what he needs isn't too hard
[23:12:14 CET] <nicolas17> yeah maybe
[23:12:38 CET] <JEEB> grab the side data, make AVPackets from them for the caption decoder, pass them to srt stuff
[23:13:40 CET] <nicolas17> I tried writing the equivalent of "ffmpeg -f image2 -i frame%03d.png output.mp4" in C and it was somewhat painful, but I may have done it in the middle of the codecpar transition...
[23:14:21 CET] <nicolas17> ffprobe on my program's output file gave different results than on ffmpeg's output and it took me forever to find what differed and it was subtle
[23:14:27 CET] <M6HZ> JEEB, Do you think it would also be easy to delete these subtitles once I have extracted them from the video ?
[23:14:40 CET] <JEEB> in what sense?
[23:15:47 CET] <M6HZ> nicolas17, In the end what differed ?
[23:15:49 CET] <M6HZ> JEEB, me ?
[23:15:54 CET] <M6HZ> At *
[23:16:51 CET] <nicolas17> I don't remember anymore ^^
[23:17:04 CET] <JEEB> ffprobe generally doesn't massage stuff as much as ffmpeg.c does in various if clauses
[23:17:14 CET] <nicolas17> there is a filter to strip all sidedata
[23:17:15 CET] <JEEB> so it's closer to what the APIs return
[23:17:21 CET] <M6HZ> JEEB, I would like to extract the subtitles in a text file, and delete them from the h264 stream, then "merge" them again in a more conventional way.
[23:18:33 CET] <JEEB> I can see how that is done but no idea about ffmpeg.c
[23:20:39 CET] <M6HZ> nicolas17, sidedata, asidedata
[23:22:21 CET] <M6HZ> nicolas17, Great !
[23:23:02 CET] <M6HZ> nicolas17, sadly it means that I have to re-encode the whole stream.
[23:24:15 CET] <JEEB> https://www.ffmpeg.org/ffmpeg-all.html#toc-Bitstream-Filters :P
[23:26:16 CET] <M6HZ> JEEB, Wow interesting, I've never played with this option.
[23:49:37 CET] <M6HZ> JEEB, So it looks like I have the choice between "extract_extradata" + "remove" and "h264_metadata" + "delete_filler", apparently the subtitles are located in SEI messages.
[23:50:51 CET] <JEEB> yes, whatever removes SEI messages of a certain type. not going to say if that combo is correct or not since extract_extradata is supposed to just put extradata (decoding init data) into the AVCodecContext's extradata field
[00:00:00 CET] --- Sun Nov 4 2018
1
0
[00:51:38 CET] <cone-124> ffmpeg 03Michael Niedermayer 07master:acf4fbddf3fe: doc/APIchanges: Update for 4.1
[00:51:39 CET] <cone-124> ffmpeg 03Michael Niedermayer 07master:324d21164d49: Changelog: next is 4.1
[00:51:40 CET] <cone-124> ffmpeg 03Michael Niedermayer 07master:780d5e30a0a0: Bump minor versions for branching 4.1
[00:52:18 CET] <cone-124> ffmpeg 03Michael Niedermayer 07release/4.1:HEAD: Bump minor versions for branching 4.1
[01:25:41 CET] <cone-124> ffmpeg 03Michael Niedermayer 07master:517573a67088: Bump minor version for master after 4.1 branchpoint
[01:25:42 CET] <cone-124> ffmpeg 03Michael Niedermayer 07master:e8ced83f68a7: Changelog: Add new version next tag
[01:25:43 CET] <cone-124> ffmpeg 03Michael Niedermayer 07master:f4dd2db91301: RELEASE: bump to 4.1.git
[02:44:07 CET] <cone-124> ffmpeg 03Michael Niedermayer 07release/4.1:3c7e97343065: Update for 4.1
[02:44:08 CET] <cone-124> ffmpeg 03Michael Niedermayer 07release/4.1:1665ac6a4461: RELEASE_NOTES: Based on the version from 4.0
[02:56:44 CET] <cone-124> ffmpeg 03James Almer 07master:2d2af23349ca: avformat/ivfenc: use the av1_metadata bsf to insert Temporal Delimiter OBUs if needed
[02:58:09 CET] <cone-124> ffmpeg 03kjeyapal(a)akamai.com 07master:d6d407d2d758: avformat/dashenc: Disable writing CODECS tag for HEVC streams
[04:09:17 CET] <philipl> BtbN: I have posted an updated patchset, mostly just in case michaelni wanted to see it after updates.
[09:34:10 CET] <cone-122> ffmpeg 03Paul B Mahol 07master:97e9e3504d36: avfilter: add tpad filter
[09:40:35 CET] <BradleyS> :)
[11:26:38 CET] <cone-122> ffmpeg 03Paul B Mahol 07master:4620e4c7ad2f: avfilter/f_loop: make sure duration of frame is never zero
[12:07:54 CET] <atomnuker> BBB: had the time to play with the code?
[12:16:50 CET] <BBB> atomnuker: not yet, finishing SGR first& one thing at a time
[12:17:04 CET] <BBB> av1 = big codec, takes some time to get to everything
[12:35:08 CET] <cone-122> ffmpeg 03Paul B Mahol 07master:ef1aadffc785: avfilter/f_loop: switch to activate
[14:50:22 CET] <atomnuker> BBB: did a minor update on the PR, using pand like you suggested
[14:50:42 CET] <atomnuker> are 3 argument instructions more expensive to encode than 2 argument versions?
[14:53:53 CET] <BBB> I dont think so
[14:54:05 CET] <BBB> 2-arg is automatically expanded into 3-arg when using vex encoding, no?
[14:54:14 CET] <BBB> at least thats what the lldb disassembly suggests
[14:58:08 CET] <atomnuker> also ALIGN() definitely does not work, none of the cdfs are actually aligned, mova segfaults
[15:04:38 CET] <BBB> is the cdf itself algined?
[15:05:05 CET] <BBB> hm& it should be
[15:05:06 CET] <BBB> it is a ref
[15:05:25 CET] <BBB> cdf.c:4051 is not though
[15:05:29 CET] <BBB> static CdfThreadContext cdf_init[4] = { ..
[15:05:35 CET] <BBB> that needs to be aligned also
[15:17:46 CET] <jamrial> it's complaining about seta on win32
[15:18:05 CET] <jamrial> probably x86_32 in general
[15:27:15 CET] <atomnuker> yeah, is 32 bit windows not able to use byte regs or something?
[15:27:43 CET] <BBB> 32bit? only a few regs have bye equivalents
[15:27:51 CET] <BBB> for 64bit I thought they all did
[15:27:55 CET] <BBB> but I dont recall exactly
[15:29:01 CET] <jamrial> also, it's still slower than what gcc compiles
[15:29:42 CET] <nevcairiel> A/B/C/D have byte regs
[15:30:09 CET] <BBB> Ill play around with this a bit when I have time
[15:30:29 CET] <BBB> it should be faster when you remove the extra calls
[15:30:33 CET] <nevcairiel> but that comes back to comment from yesterday, in x86inc.asm which register is behind which name varies between platforms
[15:35:27 CET] <nevcairiel> although r2 or r3 should map to a register with a byte component on all platforms
[15:35:36 CET] <nevcairiel> if oyu can use one of those two
[15:45:34 CET] <BBB> if you use avx2, just make it 64bit only
[15:45:39 CET] <BBB> no reason to use avx2 on 32bit platforms
[15:45:50 CET] <BBB> lets move people off 32bit
[15:46:14 CET] <nevcairiel> you have more choices then for sure, but still like 4 legacy registers left that dont have one :D
[15:46:45 CET] <nevcairiel> or 3 really, since you dont use the 4th
[15:48:00 CET] <atomnuker> I could do that I suppose but it'll cost 1 more vector reg
[15:57:28 CET] <Gramner> up to 6 vector regs it doesn't matter. e.g using two or six is all the same. above 6 becomes slower on win64, and above 8 becomes 64-bit only
[16:02:11 CET] <atomnuker> does that apply for all platforms?
[16:02:40 CET] <atomnuker> also does it apply to gprs
[17:08:06 CET] <Gramner> atomnuker: volatile registers per platform: x86-32: 3 gpr, 8 vec. win64: 7 gpr, 6 vec. unix64: 9 gpr, 16 vec
[17:08:33 CET] <Gramner> anything more than that costs some performance since registers have to be saved and restored
[17:09:57 CET] <Gramner> avx-512 adds another 16 volatile vector regs on x68-64, so you can use up to 22 on win64 without having to save stuff
[17:10:12 CET] <nevcairiel> callee saved vector registers are so weird
[17:10:29 CET] <Gramner> yes. it makes no sense because they're mostly used in leaf functions
[17:10:47 CET] <BBB> atomnuker: I have a fix for you
[17:10:52 CET] <Gramner> I could _maybe_ understand having like 1 or 2 being callee-saved but certainly not the majority
[17:11:05 CET] <BBB> I can get it down from 14.738 to 14.661 in decoding time for Chimera first 1k frames
[17:11:12 CET] <BBB> atomnuker: I havent tuned anything yet, but it works at least
[17:11:17 CET] <BBB> and it appears to not be slower anymore
[17:11:45 CET] <BBB> I bet you can bring it down further by removing the msac_update_cdf for the boolean one and instead simply having a special version that updates the boolean one without copying
[17:11:46 CET] <BBB> anyway
[17:12:56 CET] <BBB> atomnuker: https://code.videolan.org/rbultje/dav1d/commits/atomnuker-cdf-update-simd
[17:13:11 CET] <BBB> atomnuker: I threw out half of your changes, please dont be angry, was just trying to boil it down to something simple for the proof of concept
[17:13:19 CET] <BBB> so all changes to cdf.c are gone
[17:13:26 CET] <BBB> and the wrapper for the avx2 function is also gone
[17:13:49 CET] <BBB> this works for me, generates same md5, and is faster (a little). I think with some tuning you can speed it up a lot more
[17:15:42 CET] <BBB> atomnuker: one thing that may be interesting is to try and have a version for n_syms == 16 and then another for n_syms < 16 which writes the counter etc. all in avx2 instead of gpr
[17:15:48 CET] <BBB> since then its just one read and one write
[17:15:52 CET] <BBB> not sure how useful that would be though
[17:16:39 CET] <BBB> atomnuker: lmk if you want to discuss or whatever
[17:17:55 CET] <BBB> atomnuker: but most of it shouldbe fairly obvious
[18:13:51 CET] <nicolas17> when using a big image sequence as input, often I see neither CPU nor I/O are saturated, because ffmpeg reads one file (CPU idle) and then decodes it (I/O idle)
[18:13:53 CET] <nicolas17> if I do "cat *.jpg > /dev/null" in the background, overall performance improves
[18:13:54 CET] <nicolas17> would it make sense to add pre-fetching to ffmpeg itself?
[18:14:43 CET] <philipl> BtbN: https://github.com/philipl/nv-codec-headers/commit/576d39d4bde190989925b290…
[18:14:59 CET] <philipl> Ticket #7530 is a valid complaint.
[18:15:46 CET] <nevcairiel> that function is CUDA 9.2, which matches the documented driver requirement for the 8.2 branch
[18:16:20 CET] <nevcairiel> if he gets past that function itll probably get stuck on some other function
[18:16:24 CET] <nevcairiel> this is just the first
[18:21:50 CET] <philipl> nevcairiel: technically, they say CUDA 8.0 is the base requirement.
[18:22:04 CET] <philipl> Now, the driver requirements for Video SDK 8.2 imply the presence of this function.
[18:22:08 CET] <nevcairiel> then i dont know where the driver versions in the README file come from
[18:22:34 CET] <philipl> Those come from the Video SDK stated requirements.
[18:22:46 CET] <nevcairiel> in any case, those are high enough for your function
[18:23:02 CET] <philipl> Yes. But it should be made optional or not included for the older SDK releases.
[18:23:09 CET] <philipl> Header releases, rather.
[18:23:22 CET] <nevcairiel> its only useful for the CUDA 10 interop anyway, isnt it?
[18:23:26 CET] <nevcairiel> so just not backport it
[18:23:27 CET] <philipl> So the 8.0 and 8.1 branches shouldn't have it.
[18:23:28 CET] <philipl> Right.
[18:23:32 CET] <philipl> BtbN: did backport it. :-P
[18:23:36 CET] <nevcairiel> ah
[18:23:38 CET] <nevcairiel> oh well
[18:23:39 CET] <philipl> So I guess the right answer is to revert on the old branches.
[18:24:17 CET] <philipl> but the person doing the ffmpeg build might use the latest headers and this shouldn't break people not using vulkan interop
[18:24:25 CET] <philipl> so I think making it optional on the 8.2 headers is correct.
[18:24:33 CET] <philipl> The same way the rest of the vulkan interop functions are optional.
[18:24:42 CET] <nevcairiel> not that it hurts anything
[18:24:47 CET] <nevcairiel> but i dont think it'll fix that guy
[18:24:54 CET] <philipl> It can fix him.
[18:25:10 CET] <philipl> Well, maybe. It's confusing.
[18:25:21 CET] <philipl> I'd rather not try and work it out and just make it optional so the vulkan stuff is consistent.
[18:25:22 CET] <nevcairiel> if he is u sing the 8.2 headers, those would require a new driver anyway
[18:25:36 CET] <nevcairiel> but yeah just making it optional would be f ine
[18:25:57 CET] <philipl> It's fuzzy. if he tried to use certain nvenc features, it would fail on old drivers. nvdec would work.
[18:26:24 CET] <BtbN> philipl, only mpv is using it so far, is it?
[18:26:26 CET] <nevcairiel> does ffmpeg still build w ith 8.0/8.1?
[18:26:43 CET] <BtbN> nevcairiel, it should, I didn't do a test build in a while though
[18:27:05 CET] <atomnuker> BBB: this is nuts
[18:27:12 CET] <BBB> ?
[18:27:45 CET] <philipl> BtbN: yeah, only mpv
[18:28:08 CET] <atomnuker> BBB: its very clever
[18:28:19 CET] <BBB> atomnuker: so, few suggestions for improvements
[18:28:25 CET] <philipl> BtbN: It already does a null check for the vulkan functions so I don't even have to add a guard to make this one optional.
[18:28:43 CET] <BBB> atomnuker: first of all, remove the shift using [rsp], instead use pmulhuw using a constant vpbroadcastded using r4q
[18:29:02 CET] <BBB> e.g. times 2 dw 4096, times 2 dw 2048, times 2 dw 1024, times 2 512
[18:29:11 CET] <BBB> and then [offset+r4q*4]
[18:29:46 CET] <BBB> then secondly, I think theres merit in having a jumptable and doing 4 versions (maybe even 5) for this function
[18:29:54 CET] <BBB> one for <8, one for ==8, one for <16, one for ==16
[18:30:08 CET] <BBB> the first one does xmm registers only and can do the counter in the simd code
[18:30:28 CET] <BBB> (pcmpgtw pw_32, etc., then or using fixed 0xff psrldqed by 2 ored into the final paddw register)
[18:30:30 CET] <BBB> same for <16
[18:30:37 CET] <BtbN> philipl, it's a CUDA function though
[18:30:38 CET] <BBB> then for ==8 and ==16, do the same as you do now in xmm/ymm registers
[18:30:50 CET] <philipl> BtbN: I mean the interop cuda functions.
[18:30:50 CET] <BBB> ad maybe a amaybe a fifth one for ==1 (which would be the boolean one)
[18:30:58 CET] <BtbN> philipl, ok.
[18:31:02 CET] <BBB> mc shows how to do jumptables
[18:31:04 CET] <BtbN> I'll do another round of releases then
[18:31:47 CET] <BBB> atomnuker: and please add a checkasm test, this is easily testable :)
[18:32:02 CET] <BBB> that also allows exploring performance gains per n_symbol number etc.
[18:34:52 CET] <BtbN> philipl, cuDeviceGetAttribute is around for forever, right?
[18:35:06 CET] <BtbN> Oldest reference I can find is it being in CUDA 8.0, but it's probably even older
[18:35:27 CET] <philipl> BtbN: CUDA 8.0 is old enough to equal forever. All SDK releases we support say they require CUDA 8
[18:36:24 CET] <BtbN> true
[18:38:57 CET] <philipl> michaelni: do you want to re-review the yadif refactoring, or are you happy for me to push?
[18:39:18 CET] <nevcairiel> bonus p oints if you sneak it into 4.1 before it freezes
[18:39:24 CET] <philipl> woo
[18:39:52 CET] <philipl> I can sneak in all sorts of things if I skip the review step. :-)
[18:45:55 CET] <BBB> atomnuker: Im also guessing that when you use cmov and clz, you can prevent all the conditional code in the beginning
[18:47:55 CET] <BBB> atomnuker: something like clz bla, word [cdfq+nsymsq*2], cmp bla, 28 cmovle bla, 28 (?)
[18:48:30 CET] <BBB> atomnuker: and then you can use that to calculate the offset into the pmulhuw table
[18:48:50 CET] <BBB> atomnuker: I know, a little crazy, but it sounds doable right?
[18:49:48 CET] <BBB> but please make a checkasm test so we can explore speed gains from each of these on various n_symbols numbers
[18:49:57 CET] <BBB> otherwise it gets fairly nonsensical
[18:51:05 CET] <philipl> BtbN: so want me to push?
[18:51:17 CET] <BtbN> push?
[18:51:52 CET] <BtbN> The nv-codec-header stuff is already done
[18:52:45 CET] <BtbN> Or you mean yadif?
[18:52:49 CET] <nevcairiel> you didnt push 8.0 :(
[18:52:57 CET] <BtbN> I'm pretty sure I did
[18:53:07 CET] <nevcairiel> oh you pushed a tag
[18:53:09 CET] <nevcairiel> but not the branch
[18:53:11 CET] <BtbN> oh
[18:53:23 CET] <BtbN> fixed
[18:53:38 CET] <philipl> BtbN: I meant nv-codec-header. but you work fast :-)
[18:54:55 CET] <philipl> I want to push yadif but michaelni was not explicit as to his level of satisfaction.
[18:55:32 CET] <BtbN> I typoed the commit... well, too late now
[18:55:40 CET] <philipl> You can force push it. :-)
[18:55:49 CET] <BtbN> Pretty sure force pushes are blocked
[18:57:03 CET] <philipl> only one way to be sure.
[18:57:30 CET] <BtbN> It would also mean re-doing the whole releases
[18:57:32 CET] <BtbN> not worth it
[18:59:20 CET] <michaelni> philipl, i think its ok to push the yadif change, sorry that my reply was unclear
[19:10:31 CET] <nicolas17> guess I should post to the mailing list instead...
[19:11:13 CET] <tmm1> i wish yadif had neon simd
[19:11:25 CET] <nevcairiel> write some
[19:11:26 CET] <nevcairiel> :D
[19:11:35 CET] <nicolas17> tmm1: compiler autovectorizer not smart enough yet? :)
[19:11:56 CET] <nevcairiel> never
[19:12:01 CET] <nicolas17> :P
[19:12:32 CET] <tmm1> i wrote a simple blend deint using neon intrinsics
[19:12:37 CET] <tmm1> yadif is 100x more complicated
[19:13:02 CET] <nevcairiel> well you have the x86 simd to steal a concept from
[19:13:25 CET] <nicolas17> does ffmpeg "support" having an image2 sequence with gaps? or is the result undefined?
[19:16:40 CET] <nicolas17> if I have frame{1,2,3,4,5,6,8,9,10}.png, and I use ffmpeg -i %d.png, is it supposed to transcode frames 1-6, or transcode 1-10 and skip the missing 7, or give an error because of missing 7, or "there's no guarantees, don't do that"?
[19:17:29 CET] <durandal_1707> nicolas17: error, also wrong channel
[19:23:24 CET] <philipl> michaelni: thanks!
[19:25:09 CET] <JEEB> can someone note if this one is OK so I can push both https://patchwork.ffmpeg.org/patch/10574/ (which was LGTM'd) and it
[19:25:15 CET] <JEEB> asdf
[19:25:20 CET] <JEEB> https://patchwork.ffmpeg.org/patch/10583/
[19:25:25 CET] <JEEB> is the first one I meant, which wasn't ack'd
[19:25:30 CET] Action: JEEB is clearly tired
[19:26:14 CET] <JEEB> or should I add the dts there in that message as well? :V
[19:26:30 CET] <JEEB> since the offset by itself might not be useful possibly
[19:27:56 CET] Action: durandal_1707 wonders when users will appear wondering what new message means
[19:28:40 CET] <JEEB> it's not a new message, but generally if you hit that you're going to get A/V desync
[19:28:55 CET] <JEEB> at least in most cases I've had that happen it means that the vsync logic in ffmpeg.c is going to crash town :P
[19:29:08 CET] <JEEB> either due to weirdness in the input or otherwise
[19:30:10 CET] <JEEB> I have a patch that stops that intra stream discontinuity check from triggering if a stream of the "opposing" type (video if audio, and vice versa) has already reached the jumped-to point
[19:32:29 CET] <nicolas17> durandal_1707: I ask what it's *supposed* to do because the actual behavior is certainly weird https://paste.kde.org/pbemjvxv7
[19:33:41 CET] <cone-675> ffmpeg 03Philip Langdale 07master:598f0f39271d: libavfilter/vf_yadif: Make frame management logic and options shareable
[19:33:41 CET] <cone-675> ffmpeg 03Philip Langdale 07master:d5272e94ab22: avfilter/vf_yadif_cuda: CUDA accelerated yadif deinterlacer
[19:33:41 CET] <cone-675> ffmpeg 03Philip Langdale 07master:1b41115ef708: avcodec/nvdec: Increase frame pool size to help deinterlacing
[19:34:24 CET] <durandal_1707> nicolas17: gaps are not supported, unless you use glob pattern
[19:34:25 CET] <nicolas17> find_image_range is doing some exponential search for the last file in the sequence
[19:36:30 CET] <nicolas17> if find_image_range happens to skip over the gap, then the encoding process will give an error when it can't open the missing file; otherwise, it will successfully encode up to the missing file
[20:26:26 CET] <BtbN> philipl, https://travis-ci.org/FFmpeg/FFmpeg-Coverity/builds/449984694#L1824
[20:26:28 CET] <BtbN> oO
[20:39:22 CET] <BtbN> Why? The configure check looks right to me.
[20:40:00 CET] <BtbN> hm, cuda_sdk _is_ enabled on there
[20:40:05 CET] <BtbN> how
[20:41:04 CET] <BtbN> philipl, seems like it doesn't build on older cuda SDKs, namely on the one Debian Stretch uses.
[20:51:42 CET] <BBB> atomnuker: https://code.videolan.org/videolan/dav1d/merge_requests/289 for you
[20:53:37 CET] <atomnuker> BBB: just write that into the msac_decode_symbol_adapt function
[20:53:47 CET] <atomnuker> I'm not sure if a branching asm code would be worth it
[20:54:04 CET] <BBB> maybe I should move that function from header to .c file
[20:54:14 CET] <BBB> otherwise well blow up the binary size of decode.c by a lot
[20:54:44 CET] <atomnuker> yeah, compiler will inline msac_decode_bool anyway so you save a function call
[21:01:32 CET] <philipl> BtbN: I'll look.
[21:02:13 CET] <BBB> done
[21:05:19 CET] <durandal_1707> anybody against audio match/align report filter?
[21:05:21 CET] <BtbN> philipl, I sent new docker images on the way with a more up to date CUDA SDK (9.2 iirc)
[21:08:02 CET] <atomnuker> BBB: no need for a function for msac_update_bool_cdf, just make the msac_decode_bool_adapt do the adaptation
[21:09:22 CET] <atomnuker> also I don't know the coding style though and through but I don't think msac_update_cdf needs the msac_ prefix as its no longer exposed
[21:09:27 CET] <BBB> you dont think its better self-documentation?
[21:09:28 CET] <atomnuker> other than that lgtm
[21:09:35 CET] <BBB> oh right msac_ prefix should go, yes
[21:09:46 CET] <atomnuker> its fine, _adapt implies it does adaptation
[21:10:01 CET] <BBB> right
[21:12:23 CET] <BBB> done
[21:13:42 CET] <durandal_1707> michaelni: you havent pushed prosumer changes, they need to go to 4.1 too
[21:16:38 CET] <atomnuker> BBB: yeah, looks fine
[21:18:56 CET] <durandal_1707> JEEB: that log message patch should be fine
[21:19:58 CET] <JEEB> durandal_1707: I only poked because 2/2 never got any straight acks even though I could take the "you should also raise teh level for that other one, too" as someone having a positive opinion on it
[21:29:29 CET] <philipl> BtbN: apparently that initialization syntax for built-in vectors is new...
[21:29:55 CET] <philipl> I don't want to change it because the old way requires you to know the exact type (so uchar2 vs ushort2 becomes a problem)
[21:36:52 CET] <BtbN> yeah, it's probably fine
[21:36:56 CET] <BtbN> what syntax exactly?
[21:37:13 CET] <philipl> uchar2 foo = { 1, 2 };
[21:37:29 CET] <philipl> I would need to do: uchar2 foo = make_uchar2(1, 2);
[21:42:19 CET] <nicolas17> durandal_1707: audio align? that sounds like something I could use...
[21:44:12 CET] <durandal_1707> nicolas17: yes, it would report best match between two (or more?) tracks so one could align them for example when mixing, it would not do actual aligning
[21:45:41 CET] <BtbN> philipl, can probably do some C++ template magic
[21:45:59 CET] <philipl> BtbN: well, the point is my current syntax does do C++ magic.
[21:46:07 CET] <BtbN> more
[21:46:49 CET] <BtbN> You can make a make_vector<T> and specifically implement it for the types you use
[21:47:03 CET] <BtbN> and then use that in your template
[21:48:53 CET] <philipl> Does that exist in cuda?
[21:48:58 CET] <philipl> Oh, I see.
[22:02:24 CET] <nicolas17> durandal_1707: I think the audio I need to align like that would be a bitwise match, so I probably have easier ways to do it, but your filter still sounds interesting :)
[22:03:45 CET] <durandal_1707> nicolas17: well it will report score, so if its inf you know its bitexact :)
[22:11:09 CET] <philipl> BtbN: https://github.com/philipl/FFmpeg/commit/9df533144fcead8b416ba928d5aefb8de5…
[22:15:23 CET] <BtbN> it builds on CUDA 10/VS2017 at least
[22:35:12 CET] <philipl> BtbN: https://github.com/philipl/FFmpeg/commit/8e50215b5e02074b0773dfcf55867654ee…
[22:35:15 CET] <philipl> even simpler.
[22:35:21 CET] <philipl> Obvious in retrospect.
[22:49:32 CET] <cone-671> ffmpeg 03Philip Langdale 07master:8e50215b5e02: avfilter/vf_cuda_yadif: Avoid new syntax for vector initialisation
[22:56:04 CET] <philipl> BtbN, nevcairiel: Well, with that out of the way, we're back to pix fmts. Yay!
[23:47:51 CET] <cone-671> ffmpeg 03Michael Niedermayer 07master:9acdf17b2c30: avcodec/prosumer: Check for bytestream eof in decompress()
[23:47:52 CET] <cone-671> ffmpeg 03Michael Niedermayer 07master:506839a3e9cc: avcodec/prosumer: Remove unneeded ()
[23:47:53 CET] <cone-671> ffmpeg 03Michael Niedermayer 07master:1dfa0b6f36d2: avcodec/prosumer: Remove always true check in decompress()
[23:47:54 CET] <cone-671> ffmpeg 03Michael Niedermayer 07master:66425add270c: avcodec/prosumer: Simplify bit juggling of the c variable in decompress()
[00:00:00 CET] --- Sat Nov 3 2018
1
0
[04:43:35 CET] <grosso> hi
[04:44:44 CET] <grosso> any chance to get ffplay utility in android?
[07:08:00 CET] <grosso> ffplay for android?
[08:02:13 CET] <Mavrik> That would be pretty silly to have.
[10:43:09 CET] <friki> grosso: I have a Debian chroot with xorg+vnc server in my rooted Android (LineageOS). I've tested ffmpeg and ffplay, both work fine even to encode video. Probably it isn't what you are looking for ;-)
[11:50:30 CET] <kingmanor> is there a reason the static builds are compiled with gcc 6 vs gcc 8?
[12:13:51 CET] <relaxed> kingmanor: I encountered too many build issues with 8, if you're asking about https://www.johnvansickle.com/ffmpeg/
[12:23:17 CET] <kingmanor> yeah i guess i am as that is the main one linked on the download page. yes ubuntu ffmpeg is built on gcc8 but it is 4.0.2 release i was looking for latest.
[12:24:01 CET] <kingmanor> its ok im gonna try to build it myself
[12:26:54 CET] <relaxed> kingmanor: if you haven't seen it, check out https://trac.ffmpeg.org/wiki/CompilationGuide
[14:16:54 CET] <zivanovicb> we have to transcode one video which is 1080p to 1080p,720p,480p, all in mp4,webm & hls, which would be 9 different outputs i guess
[14:17:11 CET] <zivanovicb> is it better to do all this in one ffmpeg instance using multiple outputs or break it down in their own separate ffmpeg instances?
[14:18:18 CET] <zivanovicb> its also really important that original resolution(1080p) finishes as fast as possible
[15:37:16 CET] <Shibe> hi, what is wrong with this command? sudo ffmpeg -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -vcodec h264_vaapi -f pulse -ac 2 -i 1 -crf 0 -preset ultrafast -acodec pcm_s16le output.mkv
[15:37:22 CET] <Shibe> Option vf (set video filters) cannot be applied to input url 1 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
[15:41:55 CET] <relaxed> try, ffmpeg -f kmsgrab -i - -f pulse -ac 2 -i 1 ...
[15:44:59 CET] <Shibe> relaxed: sudo ffmpeg -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -vcodec h264_vaapi -f pulse -ac 2 -preset ultrafast -acodec pcm_s16le -i 1 output.mkv
[15:45:04 CET] <Shibe> Option vf (set video filters) cannot be applied to input url 1 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
[15:45:55 CET] <durandal_1707> move -vf before output.mkv
[15:47:57 CET] <relaxed> Shibe: your inputs go first in the command
[15:50:59 CET] <Shibe> relaxed: 'sudo ffmpeg -f kmsgrab -vcodec h264_vaapi -f pulse -ac 2 -preset ultrafast -acodec pcm_s16le -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' output.mkv' like this?
[15:58:30 CET] <relaxed> Shibe: ffmpeg <demuxer/format 1 options> -i <input 1> <demuxer/format 2 options> -i <input 2> <filters & encoding options> <output>
[15:59:20 CET] <relaxed> your last command has no inputs (-i)
[16:16:44 CET] <Shibe> relaxed: works perfect, thanks!
[20:22:29 CET] <teratorn> is there a way to select [*] (all) audio and video stream pairs from the input list in an ffmpeg filtergraph?
[20:24:33 CET] <durandal_1707> teratorn: huh, you can only pick them, there is no * thing
[20:25:30 CET] <furq> teratorn: if it's the first filter in the list then maybe don't set an input label
[20:25:43 CET] <furq> that'll give you all the input streams in the order they were specified
[20:31:42 CET] <teratorn> furq: i was thinking that ^
[20:31:55 CET] <teratorn> would be nice to have some simple patterns in "label expansion" :)
[20:32:18 CET] <furq> you could also do [0][1]... if you know how many inputs you have
[20:42:49 CET] <grosso> hi
[20:44:18 CET] <grosso> can I receive a rtsp stream with ffmpeg and save to sequence of images realtime?
[20:46:18 CET] <edgy> Hi, In https://trac.ffmpeg.org/wiki/Encode/H.264 "It is not required if you are going to use a video service such as YouTube. YouTube recommends using faststart" Isn't there a contradiction here? I thought the phrase should say "It is required"
[20:50:48 CET] <edgy> Also the channel title says 4.0.1, shall I tell you that 4.0.2 is released? ;)
[20:52:53 CET] <HarveyPwca> An odd thing is happening when I am using ffmpeg. After ripping a film from a dvd and combining the vob files into a single file I use ffmpeg (cli) to select the video, audio and subtitles desired. ffmpeg starts out really well at 16x but then slooooowwwws down to <1x. Never used to do this. Anyone know how I can figure out how/why this is happening?
[20:55:45 CET] <HarveyPwca> Generally the command I'm using is: ffmpeg -i [film name] -map 0:0 -c:v copy -map 0:1 -c:a copy -map 0:2 -c:s copy [new file]
[20:56:41 CET] <HarveyPwca> Depending on the film the 0:x for desired language/subtitles changes.
[20:57:09 CET] <HarveyPwca> So the above is just a general command.
[20:57:33 CET] <durandal_1707> you sure it doesnt start using swap?
[20:58:12 CET] <HarveyPwca> Never looked before. But looking just now it seems to be.
[21:18:17 CET] <HarveyPwca> It seems to be using very little of the system memory and none of the swap space.
[21:18:52 CET] <HarveyPwca> System memory fluctuates between 11% - 16%.
[21:19:56 CET] <HarveyPwca> Gawd it's slow. It's taken 45 minutes to process a lousy 10 minutes of film.
[21:20:13 CET] <durandal_1707> HarveyPwca: pastebin full uncut ffmpeg output
[21:22:10 CET] <edgy> any help?
[21:23:20 CET] <durandal_1707> edgy: no, i see no contradiction
[21:23:40 CET] <furq> edgy: it'll start processing faster if you use faststart, but it'll work fine either way
[21:24:08 CET] <furq> although i'd just use mkv in any case because that doesn't require a second pass
[21:24:33 CET] <edgy> furq: ah! thanks!
[21:24:52 CET] <edgy> furq: you mean mkv instead of mp4?
[21:24:55 CET] <furq> yeah
[21:25:07 CET] <furq> faststart mp4 with ffmpeg has to copy the entire file after writing it
[21:25:38 CET] <edgy> furq: but youtube recommends mp4 not mkv
[21:25:48 CET] <furq> yeah youtube recommends a lot of insane things that don't matter
[21:25:49 CET] <edgy> furq: I don't know why though
[21:25:57 CET] <edgy> furq: ;)
[21:26:17 CET] <furq> probably half of the things on that youtube recommendation page are either irrelevant or wrong
[21:27:04 CET] <edgy> furq: that's really strange! Can you please give me the command you recommend for youtube? I will trust you better than google ;)
[21:27:13 CET] <furq> what are you using now
[21:28:04 CET] <furq> i checked again and they fixed a lot of the stupider recommendations on there
[21:28:16 CET] <furq> 2 consecutive B frames
[21:28:16 CET] <furq> Closed GOP. GOP of half the frame rate.
[21:28:20 CET] <furq> these are the only bits i disagree with
[21:28:37 CET] <furq> just keep both of those at the x264 defaults
[21:29:06 CET] <edgy> furq: may be something like ffmpeg -i input -c:v libx264 -preset slow -profile:v high -crf 18 -coder 1 -pix_fmt yuv420p -movflags +faststart -g 30 -bf 2 -c:a aac -b:a 384k -profile:a aac_low output
[21:29:10 CET] <HarveyPwca> durandal_1707: Here is the pastebin link, I hope... https://pastebin.com/eYpch2Rs
[21:29:19 CET] <furq> yeah just get rid of -g 30 -bf 2
[21:29:24 CET] <furq> and also 384k aac is absolutely insane
[21:29:29 CET] <furq> they got rid of that recommendation now
[21:29:45 CET] <furq> honestly you shouldn't reencode the audio at all
[21:30:31 CET] <furq> get rid of -profile high, let x264 set that automatically (it'll probably be high anyway)
[21:30:34 CET] <furq> and -coder 1
[21:30:38 CET] <edgy> furq: not sure whether -g 30 or -g 15 maybe?
[21:30:38 CET] <edgy> furq: I copied this from somewhere
[21:30:44 CET] <furq> just get rid of it entirely
[21:31:01 CET] <furq> x264 has sensible defaults for all of this stuff
[21:31:30 CET] <furq> and then just use -c:a copy and get rid of all the other audio stuff
[21:32:49 CET] <edgy> furq: thanks, though this stuff is a bit difficult for me but if i might ask, why do you recommend removing -bf 2?
[21:33:54 CET] <furq> there's just no reason to manually set bframes when youtube is reencoding anyway
[21:34:17 CET] <furq> as a general rule you shouldn't touch any x264 option other than preset, tune and crf unless you know what you're doing
[21:35:04 CET] <furq> basically i would do -i foo.mp4 -c:v libx264 -c:a copy -preset slow -crf 18 -pix_fmt yuv420p bar.mkv
[21:35:07 CET] <furq> brb
[21:36:24 CET] <edgy> furq: Thanks! what's tune and what's brb? execuse my english
[21:37:09 CET] <HarveyPwca> edgy: brb = be right back
[21:38:02 CET] <edgy> HarveyPwca: thanks and tune?
[21:38:10 CET] <HarveyPwca> Not a clue.
[21:39:01 CET] <relaxed> edgy: it's detailed here, https://trac.ffmpeg.org/wiki/Encode/H.264
[21:39:34 CET] <durandal_1707> HarveyPwca: how big is input file?
[21:39:53 CET] <edgy> relaxed: thanks!
[21:39:59 CET] <HarveyPwca> 4.7Gb
[21:42:45 CET] <HarveyPwca> I should also note that this situation only occurs when I'm doing filename.vob to newfilename.vob. If I'm doing filename.mkv to newfilename.mkv (or *.mp4 or *.mkv to *.mp4) there's no slowdown at all. Zips right through these similarly sized files in ~20min or less.
[21:44:11 CET] <HarveyPwca> in.vob to out.vob can take 4 or more hours.
[21:44:36 CET] <furq> not that i think that's intended behaviour, but why would you copy it to another vob
[21:45:44 CET] <relaxed> HarveyPwca: you're trying to create an SVCD?
[21:45:51 CET] <HarveyPwca> furq: I'm removing extraneous audio and subtitle streams by selecting only those streams I want to keep.
[21:46:14 CET] <durandal_1707> HarveyPwca: does same happens if you instead of final vob use -f null - ? if no than vob muxer is doing something silly
[21:47:21 CET] <HarveyPwca> What is "-f null -"?
[21:47:41 CET] <furq> well it's not the vob muxer for starters
[21:47:42 CET] <HarveyPwca> Or did you mean "-f null"?
[21:48:48 CET] <nicolas17> "-f null" picks the null muxer which does nothing and sends data nowhere, but ffmpeg still wants a filename, "-" is enough to satisfy it
[21:50:08 CET] <HarveyPwca> Ah...just looked up the null command and read it a bit. Will try that now. Give me a couple of minutes to respond.
[21:52:45 CET] <relaxed> also try -f dvd
[21:53:04 CET] <furq> or just remux to mkv instead of vob
[21:53:13 CET] <HarveyPwca> Zowie! That sucker screams speed wise. Gets up into the 200x+ speeds. However, after a few seconds I get this:
[21:53:34 CET] <HarveyPwca> [null @ 0x55e076b50260] Application provided invalid, non monotonically increasing dts to muxer in stream 1: 6474240 >= 6474240
[21:55:24 CET] <HarveyPwca> The value * >= * increments with same message.
[21:56:31 CET] <HarveyPwca> furg: Never thought to just remux. I'll try that now. Let you know in a moment the results.
[21:57:16 CET] <nicolas17> you *are* doing a remux, just into the same format as the input :P
[21:57:36 CET] <furq> yeah there's no point using vob as the output
[21:57:51 CET] <furq> especially if it's bigger than 1GB because then it's an entirely worthless format
[21:57:56 CET] <HarveyPwca> Yes. I'm seeing that now.
[21:57:57 CET] <furq> given that you can't put it back onto a dvd
[21:58:56 CET] <HarveyPwca> Well, actually the file gets smaller than the original because I'm negatively discarding the unwanted audio streams.
[21:59:19 CET] <nicolas17> you won't turn 4.7GB into 900MB by discarding audio :)
[21:59:20 CET] <HarveyPwca> Most of the time the file starts at 4.7Gb and ends up being half that or less.
[22:01:24 CET] <tdr> that would have to be a lot of audio streams and channels
[22:01:50 CET] <nicolas17> or long video with really bad video quality
[22:01:57 CET] <HarveyPwca> Okay. The .vob to .mp4 finished in record time. Video and Audio are correct but waaayyyy off in being synced.
[22:03:17 CET] <HarveyPwca> I think the .vob files are seriously borked somehow. Will just go back and re-rip the film. Thanks for all the help everyone. :-)
[22:38:20 CET] <grosso> hi
[22:38:32 CET] <grosso> can I ask a question?
[22:38:41 CET] <tdr> dont ask to ask
[22:38:46 CET] <grosso> ok
[22:39:10 CET] <grosso> i'm trying to receive a rtsp stream
[22:39:38 CET] <grosso> so far I can receive it, my problem is just the "output" part of the command line
[22:40:11 CET] <grosso> no mather what I put as "output" the command never writes it in real time
[22:41:04 CET] <grosso> so, if i set to output a sequence of images, it don't write anything, then when the streamer stops, it begins to write the images
[22:43:44 CET] <grosso> what command should I use to write a video file or a sequence of images while stream is coming?
[22:44:06 CET] <grosso> i.e. "realtime"
[22:44:11 CET] <tdr> you should prob paste what you're using now so folks can see what may be wrong
[22:44:21 CET] <grosso> ok,here I go
[22:46:12 CET] <grosso> ffmpeg -rtsp_flags listen -i rtsp://192.168.1.44:8559/live.sdp test.mp4
[22:47:40 CET] <grosso> or ffmpeg -rtsp_flags listen -i rtsp://192.168.1.44:8559/live.sdp -r 25 img-%02d.png
[22:49:43 CET] <nicolas17> are you sure your CPU and disk can write 25 PNG images per second?
[22:49:45 CET] <relaxed> ffmpeg -i 'rtsp://192.168.1.44:8559/live.sdp' -c copy output.mkv
[22:49:59 CET] <grosso> no, I'm not shure
[22:51:13 CET] <grosso> i don't need specifically 25 png per second, what I really need is any way to display that output in the screen of an android device, so no ffplay
[22:52:02 CET] <relaxed> install mpv on the android device and play them stream using it
[22:52:17 CET] <nicolas17> you could have started at that
[22:52:19 CET] <nicolas17> http://xyproblem.info/
[22:52:36 CET] <relaxed> it's called mpv-android in the playstore
[22:54:22 CET] <grosso> ok, I will try it... but, any players that I have tested, including vlc don't have that "listen" option so can't receive my stream
[22:57:01 CET] <relaxed> is that necessary? Can you start the stream, then play it?
[22:57:05 CET] <grosso> so you think mvp-android should receive this stream? so far only ffmpeg and ffplay have worked for me
[22:57:18 CET] <nicolas17> where would that ffmpeg process run anyway?
[22:57:45 CET] <relaxed> mpv uses ffmpeg's demuxers/codecs, so it should be fine
[22:58:06 CET] <nicolas17> relaxed: yeah but can you tell mpv-android to "listen"?
[22:58:25 CET] <relaxed> paging JEEB
[22:59:44 CET] <grosso> the parameter "listen" tells the player act as a server... it is absolutely necessary since the sending end expects a server
[22:59:52 CET] <relaxed> gotcha
[23:05:59 CET] <grosso> nicolas17 i'm running ffmpeg in android... there are lots of compilations, but what don't exist is ffplay which is exactely what I need... so what I'm trying to do is receive with ffmpeg and output to wathever that I can then see on android... a video or a sequence of pictures, even raw images... but it has to be "realtime" that is, i need to see it as it comes to ffmpeg
[23:09:24 CET] <grosso> I will try this: ffmpeg -i 'rtsp://192.168.1.44:8559/live.sdp -c copy output.mkv
[23:28:23 CET] <grosso> that command actually works, but... 1) no audio (original audio is AAC 1 channel) 2) I still have this problem: file is generated when sending end stops, rather than been generated "realtime"
[00:00:00 CET] --- Sat Nov 3 2018
1
0
[00:07:04 CET] <atomnuker> BBB: I'm getting a stack smash abort, and I've already wrapped all cdfs in cdf.h using ALIGN(, 16);
[00:07:19 CET] <atomnuker> is there somewhere in the decoder where the CDF isn't taken from that array but is on stack?
[00:12:19 CET] <atomnuker> seems to be msac_decode_bool_adapt()
[00:27:32 CET] <atomnuker> ALIGN doesn't seem to be working as I'd expected, my code only works if I create a temporary cdf and then copy the updated one back
[00:27:54 CET] <atomnuker> otherwise I get a desync
[01:10:16 CET] <BBB> atomnuker: not quite sure, but yes, bool uses one on the stack and probably shouldnt use the update_cdf anyway (it can use an optimized update which is purely boolean)
[01:36:37 CET] <cone-330> ffmpeg 03Philip Langdale 07master:4a976200d785: avcodec/vdpau: Initialise driver version variable explicitly
[01:55:55 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:ea160f02137e: avutil/pixfmt: Document chroma plane size for odd resolutions
[01:55:56 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:31262860ccd3: swresample/swresample: Fix input channel count in resample_first computation
[01:55:57 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:922a29142e77: avcodec/diracdec: Prevent integer overflow in intermediate in global_mv()
[01:55:58 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:d5c48e8536d0: avcodec/dirac_dwt_template: Fix several integer overflows in horizontal_compose_daub97i()
[01:55:59 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:ee5b42ce2f2f: avcodec/diracdec: Change frame_number to 64bit as its a 32bit from the bitstream and we also have a -1 special case
[01:56:00 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:c07d568603d3: avcodec/diracdec: Check slice numbers for overflows in relation to picture dimensions
[01:56:01 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:c1a3212d45a9: avcodec/diracdec: Check bytes count in else branch in decode_lowdelay() too
[01:56:02 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:1e1c02c51b3b: avcodec/qtrle: Check remaining bytestream in qtrle_decode_XYbpp()
[01:56:03 CET] <cone-330> ffmpeg 03Nikolas Bowe 07release/3.3:e2d052d5c832: lavc/svq3: Fix regression decoding some files.
[01:56:04 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:0026d007428a: avformat/flvenc: Check audio packet size
[01:56:05 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:0678985c14dd: avcodec/aacpsdsp_template: Fix integer overflow in ps_stereo_interpolate_c()
[01:56:06 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:0ea1b62b9ac5: avcodec/mpegaudio_parser: Initialize poutbuf*
[01:56:07 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:488c246bf565: avcodec/shorten: Check verbatim length
[01:56:08 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:d16d851238f4: avcodec/shorten: Fix integer overflow in residual/LPC combination
[01:56:09 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:298ca73ab14b: avcodec/shorten: Fix signed 32bit overflow in shift in shorten_decode_frame()
[01:56:10 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:907699d1207f: avcodec/scpr: Check for min > max in decompress_p()
[01:56:11 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:44ebea8657e2: avformat/rmdec: Fix EOF check in the stream loop in ivr_read_header()
[01:56:12 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:24add16a3236: avformat/mlvdec: read_string() received unsigned size, make the argument unsigned
[01:56:13 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:b80d7d4a0920: avformat/nsvdec: Do not parse multiple NSVf
[01:56:14 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:dc8ec1a5bc85: avcodec/snowdec: Fix integer overflow with motion vector residual
[01:56:15 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:347c50b0d4e7: avcodec/vb: Check for end of bytestream before reading blocktype
[01:56:16 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:66331499a7d2: avcodec/hq_hqa: Check remaining input bits in hqa_decode_mb()
[01:56:17 CET] <cone-330> ffmpeg 03Michael Bunk 07release/3.3:7266a6d23c89: examples: Fix use of AV_CODEC_FLAG_GLOBAL_HEADER
[01:56:18 CET] <cone-330> ffmpeg 03Dale Curtis 07release/3.3:1acec9bbf55b: avformat/mov: Error on too large stsd entry counts.
[01:56:19 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:78a1db00c4c4: avcodec/indeo4: Check dimensions in decode_pic_hdr()
[01:56:20 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:5c91bb1881a8: avcodec/ra144: Fix undefined integer overflow in add_wav()
[01:56:21 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:fa5498cb4dae: avcodec/h264_refs: Document last if() in ff_h264_execute_ref_pic_marking()
[01:56:22 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:46875255bc95: avcodec/dvdsubdec: Avoid branch in decode_run_8bit()
[01:56:23 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:3c3b437d7947: avcodec/shorten: Fix bitstream end check in read_header()
[01:56:24 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:bf4026fcbee8: avcodec/zmbv: Update decomp_len in raw frames
[01:56:25 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:7fb45ccf4ef5: avcodec/zmbv: Check that the decompressed data size is correct
[01:56:26 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:43a80efee600: avcodec/mpeg4videodec: Fix undefined shift in get_amv()
[01:56:27 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:6177ed2a9b70: avcodec/dvdsubdec: Sanity check len in decode_rle()
[01:56:28 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:a9ce7cfc5949: avcodec/unary: Improve get_unary() docs
[01:56:29 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:1e59d05e48f9: avformat/utils: Fix integer overflow in discontinuity check
[01:56:30 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:a1f4fe165a40: avformat/utils: Never store negative values in last_IP_duration
[01:56:31 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:caddb7890aa6: avcodec/ra144: Fix integer overflow in add_wav()
[01:56:32 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:65710b7e6c89: avcodec/h264_cavlc: Check mb_skip_run
[01:56:33 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:947f7af04821: avcodec/mpeg4videodec: Fix typo in sprite delta check
[01:56:34 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:98444e0222ed: avcodec/jpeg2000dec: Fix off by 1 error in JPEG2000_PGOD_CPRL handling
[01:56:35 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:2405af5081a9: avcodec/msrle: Check that the input is large enough to contain a end of picture code
[01:56:36 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:72e1c43d6df5: avutil/integer: Fix integer overflow in av_mul_i()
[01:56:37 CET] <cone-330> ffmpeg 03Michael Niedermayer 07release/3.3:6fe9f36dd994: Update for FFmpeg 3.3.9
[02:14:54 CET] <Gramner> fwiw shrx is faster than shifting by cl
[02:16:13 CET] <Gramner> shr r,cl is 2/2 (3 µops), shrx r,r,r is 1/0.5 (1 µop)
[02:17:47 CET] <Gramner> and no, that doesn't make any sense. just intel things.
[02:28:02 CET] <jamrial> worth the extra byte then
[02:41:30 CET] <BBB> hm& bmi2
[02:41:33 CET] <BBB> whats that
[02:41:36 CET] <BBB> do I have that?
[02:41:52 CET] <BBB> Ive always wanted a shift instruction that did not need cl
[02:42:08 CET] <Gramner> bmi2 == avx2 in practice
[02:44:41 CET] <Gramner> as in all cpus with avx2 have bmi2, and all cpus with bmi2 has avx2
[02:48:28 CET] <Gramner> since it uses vex encoding those budget cpus with AVX fused off for marget segmentation reasons also lack bmi
[03:45:45 CET] <nicolas17> when using a big image sequence as input, often I see neither CPU nor I/O are saturated, because ffmpeg reads one file (CPU idle) and then decodes it (I/O idle)
[03:46:16 CET] <nicolas17> if I do "cat *.jpg > /dev/null" in the background, overall performance improves
[03:46:24 CET] <nicolas17> would it make sense to add pre-fetching to ffmpeg itself?
[04:12:47 CET] <nicolas17> https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/libavformat/img2dec.c "reading blob failed"?
[04:14:40 CET] <nicolas17> https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/img2dec.c#L130 is this doing a binary search?
[04:39:39 CET] <philipl> Because I like to double down on bad life choices, I'm now trying to implement bwdif in cuda. It seems mostly working but I clearly see small artifacts in sample playback that aren't in the CPU version. Can't see any errors in the algorithm at this point.
[04:40:22 CET] <nicolas17> looks like it's not quiiite a binary search but similar idea
[04:40:31 CET] <nicolas17> I'm not sure if it's wise, what if there are gaps in the sequence?
[11:15:05 CET] <durandal_1707> is there tool to display raw bayer pixels, you just specify dimensions and pattern?
[13:52:33 CET] <cone-316> ffmpeg 03Paul B Mahol 07master:d98fb558be9c: doc/filter: add some loop filter trivial examples
[15:56:37 CET] <cone-316> ffmpeg 03Michael Niedermayer 07release/3.4:cb74b3ff27d5: Update for 3.4.5
[18:16:57 CET] <atomnuker> BBB: opened a pr for the wip simd
[18:17:40 CET] <atomnuker> help on why it corrupts other CDFs welcome, not even ALIGN(, 128) helps
[18:27:10 CET] Action: durandal_1707 *cries*
[18:29:10 CET] <atomnuker> is it that cold over there already for electricity bills to do that?
[18:29:33 CET] <durandal_1707> how did you guess?
[18:34:09 CET] <atomnuker> s-same -_-
[18:45:07 CET] <kurosu_> atomnuker, tried your dav1d msac branch, it is slower (than pure C) :(
[18:45:31 CET] <kurosu_> haven't looked at your branch, but msac_update_cdf is already vectorized
[18:45:36 CET] <kurosu_> bbl
[18:45:43 CET] <durandal_1707> clang?
[18:52:02 CET] <kurosu_> gcc 8.2/win64/msys2
[18:52:37 CET] <kurosu_> I wonder what would happen if I specified -mavx2 or stuff; I have already seen bmi insns in bitstream functions, in that case
[18:53:19 CET] <jamrial> how did you bench? atomnuker didn't add a checkasm test yet
[18:53:37 CET] <kurosu_> just runtime on a sequence
[18:55:14 CET] <kurosu_> 9.7s -> 10.5s
[18:57:29 CET] <jamrial> kurosu_: yeah, it is slower for me as well
[18:58:04 CET] <jamrial> 59fps to 56fps on this one 1080p sample
[18:58:37 CET] <BBB> pand m1, m2
[18:58:37 CET] <BBB> pxor m2, [inv_16bit]
[18:58:38 CET] <BBB> pand m0, m2
[18:58:40 CET] <BBB> atomnuker: pandn
[18:59:01 CET] <BBB> pandn m0, m2, m0 is the same as pxor m2, 0xfffffff.. and then pand m0, m2
[18:59:11 CET] <BBB> memory access is expensive
[19:01:12 CET] <BBB> you could also consider a mask to only update the bits within n_syms
[19:01:18 CET] <BBB> that way you dont need the weird alignment
[19:04:17 CET] <jamrial> psrlw using memory seems to read 16 bytes from it, and i'm not sure if that's what you inteded
[19:05:23 CET] <cone-796> ffmpeg 03BIGLER Don (Framatome) 07master:cb74c33106d0: avdevice/decklink_dec: fix codec_tag of RGBA formats
[19:05:23 CET] <cone-796> ffmpeg 03Anton Platov 07master:295fd12d17f3: avdevice/libndi_newtek_dec: add extra_ips option to libndi_newtek allowing use remote network sources
[19:09:51 CET] <BBB> atomnuker: want me to play around with that?
[19:10:09 CET] <BBB> atomnuker: and the C code works, right?
[19:13:08 CET] <atomnuker> kurosu_: yeah, it does 2 function calls instead of one and 2 memcpys
[19:14:40 CET] <BBB> thats why I suggested inline sse2
[19:14:43 CET] <BBB> so the function call is gone
[19:15:32 CET] <atomnuker> well, the functions will get bigger once updating is done at the same time as decoding
[19:15:48 CET] <atomnuker> so inlining won't really be doing good for the size at that point
[19:16:13 CET] <atomnuker> BBB: go and play with it, I tried pandn and it didn't work right away
[19:17:18 CET] <BBB> sure :)
[19:33:27 CET] <thardin> does ffmpeg needs hosting for things?
[19:33:53 CET] <thardin> local computer club has some 13 Gbps of unused bandwidth to spare for free software projects
[20:02:21 CET] <cone-796> ffmpeg 03Anton Platov 07n3.4.5:HEAD: avdevice/libndi_newtek_dec: add extra_ips option to libndi_newtek allowing use remote network sources
[20:14:56 CET] <durandal_1707> tpad is 411th filter
[20:23:46 CET] <philipl> BtbN: time to pester you about the yadif filter :-)
[20:24:39 CET] <BtbN> I haven't forgotten it, just insanely short on time at the moment
[20:26:02 CET] <BtbN> philipl, I'm also not sure who is responsible for yadiff to ok those changes.
[20:26:40 CET] <philipl> michaelni presumably?
[20:26:41 CET] <BtbN> it's just moving a bunch of functions without changes, so should be ok in general
[20:26:51 CET] <philipl> It seemed wasteful to duplicate them.
[20:27:01 CET] <philipl> I can also consolidate bwdif to reuse them with a small addition.
[20:27:06 CET] <BtbN> yeah, it's the right approach, just needs to be okayed
[20:27:35 CET] <JEEB> &41
[20:27:42 CET] <durandal_1707> michaelni: why cant release be named Carl? you are not friendly and ignore lots of votes
[20:29:11 CET] <jamrial> durandal_1707: because they are troll votes
[20:30:22 CET] <BtbN> philipl, I'm starting to wonder if we should put all those CHECK_CU stuff in some central place.
[20:30:35 CET] <BtbN> But that's something for another patch at some point
[20:30:53 CET] <philipl> Yeah. It can be done - just a little tedious to ensure naming is consistent, etc.
[20:31:20 CET] <durandal_1707> jamrial: troll votes? you can not be so serious
[21:07:35 CET] <durandal_1707> it is 11, 2018 and there are still AVERROR_EOF bugs in ffmpeg code
[21:09:03 CET] <philipl> There is no end to EOF.
[21:10:43 CET] <gnafu> EOEOF
[21:10:57 CET] <gnafu> "There was a coder, had a bug. EOEOF."
[23:11:06 CET] <cone-124> ffmpeg 03Marton Balint 07master:6a034adf7516: avformat/ftp: return AVERROR_EOF for EOF
[23:19:55 CET] <cone-124> ffmpeg 03Marton Balint 07release/4.0:00e7e4b18806: avcodec/libx264: remove FF_CODEC_CAP_INIT_THREADSAFE flag
[23:19:56 CET] <cone-124> ffmpeg 03Marton Balint 07release/4.0:ebc01c8f6dfc: avformat/ftp: return AVERROR_EOF for EOF
[23:27:07 CET] <akravchenko188> jkqxz: Hello. I have sent updated patches for hwcontext_amf & amfenc. Could you please review them and apply if they are ok?
[23:55:30 CET] <philipl> BtbN: heh. That's a landmine of a function to add :-)
[23:56:05 CET] <BtbN> Yeah, I definitely do not want the full enum. Most of that is useless
[23:56:16 CET] <BtbN> CU_DEVICE_ATTRIBUTE_ECC_ENABLED...
[00:00:00 CET] --- Fri Nov 2 2018
1
0
[02:51:30 CET] <p1nky> looking at this .. https://trac.ffmpeg.org/wiki/Create%20a%20mosaic%20out%20of%20several%20inp…
[02:51:43 CET] <p1nky> anyone know of a way to create a dynamic version using an mpeg-ts as input ?
[02:52:26 CET] <p1nky> dynamic meaning not needing to specify how many inputs there are.. just all programs on the TS in their own box and as many boxes as needed within a given size where they all fit
[02:53:28 CET] <p1nky> it would also be neat to do the same but be able to just extract one frame out of each and write a png
[02:55:38 CET] <nicolas17> hmm programs from a ts...
[02:56:15 CET] <nicolas17> I mean you can write a script to generate an appropriate filtergraph if you tell it how many inputs you have
[02:56:48 CET] <nicolas17> but I never had to deal with multi-program transport streams
[02:56:53 CET] <p1nky> yeah i was thinking if i had to do that i would .. probably having to run something to peek at the ts first and get that info
[02:56:56 CET] <nicolas17> so I don't even know how to tell how many programs are there
[02:57:33 CET] <p1nky> i guess i can start with them static .. the examples all show multiple input files
[02:57:43 CET] <nicolas17> also what do you do if the number of programs is a prime number? :)
[02:57:54 CET] <p1nky> i am hoping that my one input can be the ts and i can reference them
[02:57:57 CET] <p1nky> hah
[02:58:21 CET] <p1nky> probably just round to an even #
[03:01:35 CET] <poutine> p1nky, I know ts duck allows for some stuff like that
[03:02:50 CET] <p1nky> oh neat, i ran across that the other day
[03:02:55 CET] <p1nky> but didn't think it did stuff like mosaics
[03:10:14 CET] <p1nky> oh i guess you were saying to inspect the ts
[03:10:29 CET] <p1nky> i wonder how you even reference a ts program in a filtergraph
[03:11:56 CET] <nicolas17> looks like stream specifiers have program_id
[03:12:23 CET] <nicolas17> in the wiki example, [0:v] is a stream specifier, meaning "video stream of input file 0"
[03:12:46 CET] <p1nky> i am trying [0:v:0]
[03:12:59 CET] <p1nky> working on an output issue now :) trying to multicast the output
[03:13:57 CET] <nicolas17> weird, docs say it should be v:0 to get the video stream of input 0, maybe it supports 0:v for compatibility?
[03:14:15 CET] <nicolas17> anyway
[03:14:23 CET] <nicolas17> for programs, it seems to be p:program_id[:stream_type[:stream_index]]
[03:22:20 CET] <p1nky> ooh .. not sure if this is it or not https://ffmpeg.org/ffmpeg-filters.html#toc-xstack
[03:24:13 CET] <garyserj> I have an mkv file, video(AVC) / Audio(Opus). How do I convert it to mp4 ?
[03:30:06 CET] <ariyasu> ffmpeg -i input.mkv -vcodec copy -acodec copy output.mp4
[03:31:10 CET] <nicolas17> AVC is h264?
[03:32:08 CET] <garyserj> Is -c copy the same as -acodec copy -vcodec copy ?
[03:33:13 CET] <furq> yes
[03:33:18 CET] <furq> and subtitles as well
[03:33:48 CET] <furq> but you probably want -c:v copy -c:a aac
[03:36:06 CET] <garyserj> thanks yeah that worked well, that audio codec.
[10:59:18 CET] <termos> I want to create HLS segments with epoch time and segment numbers in the filenames. Tried using second_level_segment_index hls flag but %d is then starting to count from epoch time for when I started transcoding. Any way to make this number start at 0?
[11:11:32 CET] <garyserj> if I do ffmpeg -i a.mp4 -vf "transpose=1" b.mp4 Should I do it with -c copy? And how would I rotate it 90 degrees the other way instead?
[11:11:59 CET] <ariyasu> no
[11:12:11 CET] <ariyasu> you can't copy the video stream if you are using transpose
[11:12:16 CET] <ariyasu> it needs to be re-encoded
[11:12:33 CET] <ariyasu> you can do -acodec copy though, no need to re-encode the audio
[11:13:37 CET] <ariyasu> ffmpeg -i a.mp4 -vf "transpose=1" -vcodec libx264 -acodec copy b.mp4
[11:13:58 CET] <ariyasu> somthing like that, you may want to use some x264 options though but thats the basic line
[11:31:03 CET] <BtbN> If the mp4 rotate metadata is enough, you can add that without transcoding
[11:31:10 CET] <BtbN> If it works depends entirely on the player
[12:05:18 CET] <th3_v0ice> I have a problem that is making me question my knowledge and sanity. When the program starts it uses 40mb of RAM it then decodes 100 frames and store them in vector<AVFrame> using now 400mb of RAM. So far so good. Stored frames are processed trought some filter (scale) and then sent off to the encoder. While encoding, memory doubles, which I think is fine, so 800mb. Closing the encoder and
[12:05:18 CET] <th3_v0ice> filter free's the 400mb of memory. When I start av_frame_free(frame) for each frame from the vector, memory stays at 400mb+. The problem is that this memory stays constant, meaning my program is not increasing this 400mb memory usage even when I decode next 100 frames. What could I be doing wrong?
[12:34:30 CET] <rolandaswb> hello hoe to run ffmpeg comand line in python?
[12:36:00 CET] <rolandaswb> what is command line for adding audio to video file?
[13:15:05 CET] <M6HZ> Hello, it looks like there is an issue with the way ffmpeg handles the options "-referer" and "-user_agent". These options seem to stick only for the first http request, if there is a redirection they seem to be dismissed.
[13:18:06 CET] <JEEB> quite possible. check the trac issue tracker for similar issue(s) and either comment on one of them or create a new issue with specifics.
[13:20:10 CET] <M6HZ> JEEB, ok, thanks.
[15:49:09 CET] <jngk> why can I find files for an encoder under libavcodec, when that encoder isn't listed by `configure --list-encoders`
[15:49:44 CET] <jngk> eg. libavcodec/truemotion{1,2}.c
[17:40:47 CET] <Dudemanguy> What's the fastest way to demux a large number of audio files?
[17:40:57 CET] <Dudemanguy> Using this: https://pastebin.com/raw/QF8yueC7 I can do ~12000 files in about 10 seconds
[17:41:11 CET] <Dudemanguy> It's not bad, but is it possible to be more efficient?
[17:45:03 CET] <Dudemanguy> oh and I'm not really sure if I'm guessing the input format name right. They're opus files and I think the decoder name is ogg, but I'm not 100% sure on that
[17:52:16 CET] <durandal_1707> ogg is container, so it can be either demuxer or muxer
[17:53:27 CET] <Dudemanguy> does ffmpeg not have a demuxer for opus containers?
[17:53:38 CET] <Dudemanguy> I don't see it in allformats.c at least
[18:00:05 CET] <relaxed> Dudemanguy: it's covered by the ogg demuxer
[18:00:26 CET] <iive> is there such thing as opus container? I thought they use ogg, because it is done by the same people.
[18:01:27 CET] <Dudemanguy> ah you're right it's an og container
[18:01:31 CET] <Dudemanguy> ogg* rather
[21:37:35 CET] <retal> Hi guys, I am tryng live transcoding and restream video to RTMP H265 but receiving error: Video codec hevc not compatible with flv. But same commands works if I tryng: -f rtsp rtsp://
[21:38:46 CET] <JEEB> rtsp is not rtmp
[21:38:49 CET] <JEEB> rtmp is adobe's thing
[21:39:02 CET] <JEEB> rtmp is basically FLV over a protocol
[21:39:13 CET] <JEEB> and you will have to ask adobe to standardize HEVC in it
[21:39:42 CET] <JEEB> there were requests of using some made-up ID (there's just a number for each codec in FLV), but since it's not official adobe could (in theory) just use that number for something else
[21:39:59 CET] <JEEB> but most likely at this point even adobe is generally just wanting to ignore it had RTMP :P
[21:40:15 CET] <JEEB> but yes, pester Adobe about HEVC if you want it in FLV or RTMP
[21:44:06 CET] <JEEB> so when HEVC will be in Annex E of https://wwwimages2.adobe.com/content/dam/acom/en/devnet/flv/video_file_form…
[21:44:11 CET] <JEEB> then it will work :P
[21:44:42 CET] <Mavrik> What's the usecase for RTMP these days?
[21:45:33 CET] <JEEB> mostly feeding to servers, although I'm seeing things being able to take MPEG-TS (over UDP etc) or fragmented MP4 over HTTP as well
[21:45:40 CET] <retal> JEEB, i know rtsp and rtmp difference :) I just made litle research looks like Adobe doesn't support 265 officially. Thank you
[21:45:54 CET] <JEEB> retal: that's literally what I just told you :P
[21:46:00 CET] <JEEB> but great that you figured it out as well
[21:46:01 CET] <retal> :)
[21:46:56 CET] <durandal_1707> lol
[21:48:24 CET] <retal> JEEB, I surprised H265 5-6 years old codec
[21:49:05 CET] <retal> maybe we need wait 10 years more
[21:49:06 CET] <JEEB> that's because adobe gave up on RTMP for end user streaming :P
[21:49:27 CET] <JEEB> as I said, > but most likely at this point even adobe is generally just wanting to ignore it had RTMP
[21:49:54 CET] <JEEB> (and FLV while at it)
[21:50:32 CET] <JEEB> even that specification I linked first and foremost (and most of the document) documents F4V, which is flash's variant of fragmented ISOBMFF (aka "mp4")
[21:50:45 CET] <JEEB> s/flash/adobe/
[21:50:55 CET] <JEEB> and then an annex is given to FLV
[21:51:29 CET] <retal> thank you
[21:55:24 CET] <friki> Hi. I'm trying to write build and test a DASH example with TS segments. Testing with ffplay I got "stream.mpd: Invalid data found when processing input". My mpd example looks like: https://pastebin.com/aB9YxXuk
[21:59:01 CET] <friki> The problem seems to be in the mpd, because ffplay doesn't request the segments. I'll appreciate if someone can take a look at my example or share a working one. I've only found examples using mp4 segments, btw
[22:09:14 CET] <p1nky> hmm when trying to extract frames like this from an MPEG-TS
[22:09:20 CET] <p1nky> $ ffmpeg -i rtp://@224.0.1.2:5004 -vf select=1 -frames:v 1 -y x.png
[22:09:29 CET] <p1nky> is there a way to be sure they are 'clean' ?
[22:10:04 CET] <furq> define clean
[22:10:43 CET] <furq> i'm pretty sure the decoder will just discard everything before the first keyframe
[22:10:52 CET] <furq> so select is doing nothing there
[22:11:10 CET] <p1nky> hm yeah i'm also having a ton of problems being able to select by program id
[22:11:32 CET] <JEEB> ffmpeg.c has a -map selector for that
[22:11:43 CET] <JEEB> or well, it's by PID I think
[22:11:48 CET] <furq> can you use pids in filter input labels
[22:11:50 CET] <JEEB> still helpful I would say
[22:12:20 CET] <furq> i assume it's just the same stream specifier as -map
[22:12:24 CET] <p1nky> yeah things i am reading say p:1:v for program 1
[22:12:39 CET] <p1nky> but program isn't pid right? ffmpeg says program # 1 and such
[22:12:42 CET] <p1nky> i am sure thats not the actual pid
[22:12:46 CET] <p1nky> although maybe it is..
[22:13:17 CET] <furq> yeah that's the actual pid
[22:13:25 CET] <furq> https://trac.ffmpeg.org/wiki/Map#Example8
[22:13:25 CET] <JEEB> programs and stream ids are separate
[22:14:20 CET] <JEEB> http://up-cat.net/p/7106af10
[22:14:51 CET] <JEEB> in this ffprobe output Program XXX is the program, the 0xYYY after the stream index is the stream ID
[22:14:58 CET] <JEEB> which in case of mpeg-ts is the PID :P
[22:15:49 CET] <furq> yeah in that example you could use p:1048:0 or i:0x111
[22:16:51 CET] <p1nky> ok nice thanks
[22:17:07 CET] <p1nky> so select=1 is not actually selecting anything
[22:17:11 CET] <furq> or p:1048:v or even p:1048:v:0
[22:17:19 CET] <furq> select=1 is selecting everything
[22:17:40 CET] <p1nky> so -vf select p:1048:v in your example?
[22:17:45 CET] <p1nky> i was trying that as an argument to select
[22:17:47 CET] <furq> oh
[22:17:50 CET] <furq> no that's not what select does
[22:17:51 CET] <p1nky> confused as to -map
[22:18:28 CET] <furq> if you want to filter one stream then you'd use something like -filter_complex [i:0x111]yadif
[22:18:49 CET] <furq> select is for conditionally selecting frames
[22:20:27 CET] <p1nky> hm i thought there was a paste thing in the topic..
[22:20:30 CET] <p1nky> but i don't see it
[22:20:41 CET] <furq> any pastebin is fine
[22:21:12 CET] <p1nky> i only know of pastebin and its down :)
[22:21:23 CET] <p1nky> Program 1
[22:21:24 CET] <p1nky> Stream #0:7: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
[22:22:17 CET] <p1nky> should this work? -filter_complex '[p:1]'
[22:23:15 CET] <furq> probably p:1:v or 0:p:1:v
[22:23:40 CET] <p1nky> with [] around it? -filter_complex '[p:1:v]'
[22:23:44 CET] <p1nky> [AVFilterGraph @ 0x5556b6dab380] No such filter: ''
[22:23:51 CET] <furq> well yeah you need to put an actual filter in there
[22:23:57 CET] <furq> otherwise just use -map
[22:27:09 CET] <p1nky> ah ok trying -map 0:0 and i still seem to be getting random programs every time i run it
[22:27:29 CET] <furq> well yeah use -map 0:p:1:v
[22:28:41 CET] <p1nky> ah! thanks!
[22:28:50 CET] <p1nky> that is reliably giving me just one program
[22:29:13 CET] <p1nky> but its a crap frame a lot of times, and sometimes it matches no stream
[22:31:53 CET] <p1nky> i need to figure out xstack at some point ..
[22:32:01 CET] <p1nky> with one box per program
[22:35:35 CET] <p1nky> anyway thanks a lot for the help!
[22:35:54 CET] <p1nky> i need to do some reading on MPEG-TS i suppose
[22:49:28 CET] <friki> p1nky: check for missing frames a the original video with ffprobe (check dst/pst/duration values)
[22:50:41 CET] <p1nky> its a satellite stream
[22:50:50 CET] <friki> a droped keyframe, may be?
[22:51:27 CET] <friki> try recording a sample to disk with "-codec copy"
[22:51:36 CET] <p1nky> receiving it with a DVB-s receiver and then using dvbstream to multicast the whole TS
[22:55:22 CET] <friki> Can ffmpeg read stream from your receiver? ffmpeg -i yourReceiver -codec copy -t 10 record.ts
[22:55:45 CET] <friki> I've used "tzap" to receive TDT
[22:56:23 CET] <p1nky> yeah reads it fine, prints all 8 PIDs on this TS
[22:56:37 CET] <p1nky> vlc always looks fine
[22:56:48 CET] <friki> TDT => DTT
[22:56:50 CET] <p1nky> i am sure theres noise that mpeg deals with in some way
[22:57:22 CET] <p1nky> when actually watching video, but seems like this method is "get the very next frame no matter its quality and output a png of it"
[22:58:55 CET] <p1nky> various messages .. PES packet size mismatch, RTP missed 19 packets, jitter buffer full, error while decoding MB 0 0, bytestream 28483 .. corrupt input packet in stream 0
[22:59:48 CET] <friki> i bet for signal reception problems
[23:00:03 CET] <p1nky> this is a big stream, 30Msps QPSK .. 8 1920x1080 video streams with multiple audio each
[23:00:37 CET] <p1nky> well yeah its never going to be perfect even if i had a bigger dish .. but between FEC at the DVB level and whatever is in mpeg to handle it ..
[23:00:42 CET] <p1nky> actually watching streams off it looks perfect
[23:00:50 CET] <p1nky> but apparently not so easy to just capture an arbitrary frame
[23:01:25 CET] <p1nky> really i don't care a ton about capturing frames, what i want to do is use xstack to make a grid of every program in the stream at a reduced frame rate
[23:01:40 CET] <p1nky> so that i can easily monitor each
[23:02:28 CET] <friki> is an interaced signal. do you deinterlace it before export png?
[23:02:39 CET] <p1nky> oh, i don't think so :)
[23:02:47 CET] <p1nky> although sometimes it looks totally perfect..
[23:03:01 CET] <p1nky> other times its cut off at a various point in the stream i suppose and some portion is gray
[23:03:09 CET] <friki> test with: -vf 'yadif'
[23:04:11 CET] <p1nky> ffmpeg -i rtp://@224.0.1.2:5004 -map 0:p:1:v -vf select=1 -frames:v 1 -vf 'yadif' -y x.png
[23:04:20 CET] <p1nky> nope still nasty most of the time
[23:04:43 CET] <p1nky> sometimes fails entirely with: Stream map '0:p:1:v' matches no streams.
[23:05:15 CET] <p1nky> i assume because theres only a short window of time where its trying to capture a packet with that PID and if one doesn't come it stops
[23:05:36 CET] <p1nky> i think potentially if the image isn't moving theres no packets coming? or very few ..
[23:05:39 CET] <friki> if you can share a recorded sample i can check for missing frames using ffprobe
[23:06:17 CET] <p1nky> let me try to do that .. but need to get back to something, am at work :( hehe
[23:07:30 CET] <p1nky> what args for ffprobe?
[23:09:26 CET] <friki> i'll start with: ffprobe -i sample.ts -show_packets -print_format csv > sample.csv
[23:10:30 CET] <friki> it will write a line for each packet. I'll check for "jumps" in pts column
[23:11:46 CET] <p1nky> hm interesting .. anyway i recorded a 100M sample by just running dumprtp > x.mpg .. if you have a way for me to send it and you're really interested, i can :)
[23:11:49 CET] <friki> "jump" -> unexpected big gap between two corelative video frame pts values. Gap should match packet duration
[23:11:50 CET] <p1nky> which column is that?
[23:12:03 CET] <p1nky> ah pastebin works now
[23:12:36 CET] <p1nky> exceeded 512k :)
[23:12:51 CET] <p1nky> for pastebin
[23:15:11 CET] <friki> column 4 is pts
[23:16:33 CET] <friki> column 10 is duration (usually same value)
[23:16:55 CET] <p1nky> https://pastebin.com/gwFXxRh2
[23:17:15 CET] <p1nky> col 10 is all N/A
[23:19:12 CET] <friki> Only 29 frames for "video,0" stream... None of them are key frame
[23:19:47 CET] <p1nky> some of these right now are liable to be colorbars, so not moving at all
[23:19:52 CET] <p1nky> i suspect that has something to do with it
[23:19:53 CET] <friki> in fact there are no K frames in any video stream
[23:20:07 CET] <p1nky> that was a 100mb file but i had to only take some of the lines
[23:20:10 CET] <p1nky> let me grep for video,0
[23:20:31 CET] <p1nky> how do you tell a key frame?
[23:20:42 CET] <p1nky> 716 lines for video,0
[23:20:45 CET] <friki> 'K' in the last column
[23:21:11 CET] <p1nky> oh yeah none for video,0 in the whole file
[23:21:40 CET] <p1nky> plenty for others .. K_ anyway but actually all audio
[23:23:38 CET] <friki> May be the encoder is using a "key lines wave" (i don't recall the correct naming). It's a technique to avoid transmission bandwith peaks
[23:24:07 CET] <friki> i mean, you should check the gap between column 4 values. should be stable
[23:24:49 CET] <friki> If FPS is 50, the gap between pts should be 0.02
[23:24:59 CET] <friki> 1/$FPS ;-)
[23:25:18 CET] <p1nky> its 29.97 fps according to ffmpeg
[23:25:28 CET] <p1nky> Stream #0:8: Video: h264 (High), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
[23:25:56 CET] <friki> so... 0.033-0.034 :-P
[23:25:58 CET] <p1nky> but yeah grep video,0 x.csv | cut -d, -f4
[23:26:02 CET] <p1nky> gap is usually about 1-2
[23:26:08 CET] <p1nky> heres one where its 10
[23:26:25 CET] <p1nky> gah, theres one thats 6174545206 to 6174537698
[23:26:30 CET] <friki> hehe, you got it
[23:27:06 CET] <friki> BTW: 5th column is decimal value. Same data as col 4
[23:27:07 CET] <p1nky> thanks for all the help :)
[23:27:17 CET] <p1nky> ah nice
[23:27:39 CET] <friki> a pleasure
[23:28:02 CET] <friki> interesting transmission mode without keyframes. love it
[23:29:25 CET] <p1nky> :)
[00:00:00 CET] --- Fri Nov 2 2018
1
0
[00:00:18 CET] <atomnuker> I haven't figured out how to do the part afterwards, where for i >= val you go the other way
[00:04:52 CET] <BBB> ty!
[00:05:15 CET] <j-b> atomnuker: \o/
[00:05:19 CET] <BBB> well I think you do both right?
[00:05:32 CET] <BBB> and then you mask them based on val
[00:05:34 CET] <BBB> and then you or them
[00:05:40 CET] <BBB> thats how I would do it at least
[00:06:26 CET] <BBB> but gramner is better at this than me
[00:09:13 CET] <atomnuker> yeah, I suppose I could splat the val across a reg, then run a compare, and convert the output of that into a mask
[00:10:07 CET] <atomnuker> then using that I could combine the 2 paths
[00:10:16 CET] <BBB> you can also do what I did in cdef/lr
[00:10:33 CET] <BBB> have a 64 byte constant times 32 db 0xff times 32 db 0x0
[00:10:37 CET] <BBB> and then index into that using val
[00:10:44 CET] <BBB> its almost the same
[00:11:08 CET] <cone-547> ffmpeg 03Mark Thompson 07master:edcdf3512376: cbs_vp9: Ensure that reserved zero bits are actually zero
[00:11:28 CET] <BBB> but what yousaid works also, yes
[00:21:28 CET] <atomnuker> https://0x0.st/sIHr.jpg
[00:21:36 CET] <atomnuker> yep, gimp still works even though I've never used it
[00:43:22 CET] <kierank> durandal_1707: sucks
[00:43:25 CET] <kierank> adding bayer to swscale
[00:43:27 CET] <kierank> mess on top of mess
[01:11:14 CET] <cone-547> ffmpeg 03James Almer 07master:ec440339b2cd: avcodec/cbs_vp9: keep track of reference frames
[01:11:15 CET] <cone-547> ffmpeg 03James Almer 07master:7aaf092f8ce8: avcodec/cbs_vp9: store profile in the private context
[01:13:04 CET] <jamrial> jkqxz: only thing that remains would be to add frame_type to VP9ReferenceFrameState
[01:14:03 CET] <jamrial> it's not contemplated in the spec, but without it, an avparser can't feasibly set pict_type for frames with show_existing_frame = 1
[01:14:54 CET] <BBB> show_existing_frame is by definition an inter frame, right?
[01:14:55 CET] <jamrial> the decoder for example keeps avframe references instead of a custom struct like VP9ReferenceFrameState, which has that and more
[01:15:00 CET] <BBB> its what vc1 calls a pskip frame
[01:15:11 CET] <BBB> it copies the whole reference with no motion or residual
[01:15:13 CET] <jamrial> it can point to invisible frames, which can be intra_only
[01:15:14 CET] <BBB> thats still inter:)
[01:15:23 CET] <BBB> the reference of the frame is intra
[01:15:27 CET] <BBB> but the frame itself is inter
[01:15:35 CET] <BBB> its just specially coded
[01:15:56 CET] <BBB> or you want to point out keyframe search poiints using this?
[01:16:09 CET] <BBB> I would say the keyframe search point is the invisible frame, not the show-existing-frame making it visible
[01:16:10 CET] <jamrial> show_existing_frame is literally a 1 byte frame that says "present this old frame"
[01:16:56 CET] <jamrial> in av1 it certainly can be intra, as it's the case with delayed RAPs
[01:26:38 CET] <BBB> right, I know
[01:26:46 CET] <BBB> I just wonder why you want to annotate them as such
[01:26:51 CET] <BBB> you cant actually seek to the show-existing-frame
[01:27:03 CET] <BBB> you can seek to the invisible frame, skip the next few frames that reference frames beforeit
[01:27:06 CET] <BBB> and then show it
[01:27:12 CET] <BBB> and then go from there
[01:27:18 CET] <BBB> but the seek is not to the show-existing-frame then
[01:27:21 CET] <BBB> so ...
[01:27:26 CET] <BBB> its complicated ;)
[01:28:35 CET] <jamrial> BBB: i'm trying to port the parser to cbs, to export more fields than just profile
[01:29:03 CET] <BBB> oh so its just metadata, not for seeking or anything input to the muxer?
[01:29:04 CET] <jamrial> since reimplementing parsing code to handle super frames, keeping track of references and such is annyoning
[01:29:08 CET] <jamrial> yeah
[01:29:34 CET] <jamrial> so i want to set AVCodecParserContext.pict_type correctly for all frames
[01:51:20 CET] <jkqxz> It seems like it depends on what you are going to use it for.
[01:51:28 CET] <jkqxz> If you are looking at packets then the superframe containing an invisible key frame is obviously itself key - making the displayed actually-non-key frame the one that gets marked as key, while the later-displayed actually-key frame doesn't.
[01:51:45 CET] <jkqxz> Whereas if you are looking at frames only then it's more logical for it to be the other way around.
[01:52:02 CET] <jkqxz> It seems like the first interpretation is more useful, though, since that's what you actually want for seeking purposes?
[01:53:46 CET] <jkqxz> (At least we don't have the wrangle with the wtf confusing thing in AV1 where the IDRalike frame only flushes the DPB when it's shown, not when it's decoded.)
[02:48:22 CET] <jamrial> BBB, jkqxz: like this https://github.com/jamrial/FFmpeg/commit/c4dc8cffcdcaae3d489ed991fa7b267fba…
[02:49:00 CET] <jamrial> pretty much the same as the av1 parser
[02:55:38 CET] <BBB> yeah I guess
[02:55:46 CET] <BBB> (still a cbs n00b)
[02:55:49 CET] <BBB> (me)
[03:01:36 CET] <jamrial> BBB: it's really neat and powerful. it parses everything for you
[03:01:45 CET] <jamrial> you just then read some values and export metadata, or you change them then output it all as a new frame where the new value is neatly written without fucking up the bitstream
[03:02:04 CET] <jamrial> props to jkqxz for writing it :p
[03:04:59 CET] <jamrial> it's ideal for bitstream filters and parsers for obvious reasons, but also can be used in decoders to handle the header bitstream parsing. each frame's tile/slice data is also handed to you as an avbufferref
[03:08:46 CET] <BBB> Ill play with it at some point
[03:08:53 CET] <BBB> might be useful for the stream analyzer going forward
[03:09:09 CET] <BBB> the amount of code in there right now related to header parsing is just awful
[03:44:53 CET] <cone-547> ffmpeg 03ManojGuptaBonda 07master:4a6d5f3cadaa: avcodec/vdpau: Enable HEVC support for working Nvidia driver versions
[11:52:42 CET] <cone-674> ffmpeg 03Paul B Mahol 07master:323c2cfd384a: avfilter: add (a)graphmonitor filter(s)
[14:54:25 CET] <pasouza> hi, I'd like to know the right procedure for reimbursement request (GSoC mentor summit)
[14:58:21 CET] <durandal_1707> write it to ML
[15:00:26 CET] <Compn> include invoice
[15:00:38 CET] <Compn> who you mentored, project worked on, etc
[15:00:43 CET] <Compn> committed status
[16:02:23 CET] <pasouza> ok, thanks!
[16:04:00 CET] <pasouza> can I email the invoice privately? as it may contain personal info
[16:40:01 CET] <durandal_1707> pasouza: do not include invoice, there are already siimilar mails available in archive
[17:34:19 CET] <akravchenko188> jkqxz: hi, could you please answer on my comments in forum?. Probably I can remove amf logging on this stage, and decide later how to integrate it
[17:36:16 CET] <akravchenko188> jkqxz: there are some customers, who need hw pipeline in FFMpeg (hwdecode -> scaler -> encode) and we have hwcontext_amf blocker for this
[17:38:21 CET] <akravchenko188> jkqxz: it would be very nice if we try to speed up the integration process
[19:08:24 CET] <durandal_1707> why is everything is so silent?
[19:24:03 CET] <jamrial> it's spooky day
[19:25:41 CET] <atomnuker> its cold
[19:58:26 CET] <atomnuker> how do I right shift a gpr with a value from another gpr? shr only accepts constants
[20:00:09 CET] <nevcairiel> they accept register CL
[20:00:18 CET] <nevcairiel> and only that
[20:01:01 CET] <atomnuker> register cl?
[20:01:22 CET] <nevcairiel> its an 8-bit slice o f RCX
[20:03:16 CET] <atomnuker> wow, that's bad design
[20:07:04 CET] <jamrial> atomnuker: if you're targeting avx2, use shrx
[20:08:19 CET] <nevcairiel> not sure using a super vex instruction is really worht it =p
[20:08:24 CET] <nevcairiel> super long*
[20:10:04 CET] <jamrial> it's like five bytes instead of three or four from shr. it's not that bad
[20:10:31 CET] <jamrial> and you can use any gpr with it
[20:12:49 CET] <atomnuker> no, I choose maximum efficiency and least readibility, I'll make it so cl (r3b) ends up as my final shift amount
[20:34:04 CET] <jamrial> maximum efficiency and least readibility <-- the ffmpeg way :p
[20:36:25 CET] <atomnuker> didn't need to do it in the first place, I remembered I didn't need variable right shifts after all
[20:36:41 CET] <atomnuker> I'll just use psrlw
[20:37:08 CET] <atomnuker> ...which I can't because it takes either a constant or a memory address
[20:37:48 CET] <atomnuker> what were intel smoking, vectors are nice but then gprs are inflexible crap
[20:38:08 CET] <atomnuker> shenzhen io's assembler had more flexible gprs than this
[20:46:21 CET] <atomnuker> wait, psrlw m3, xm3 works?
[20:50:27 CET] <BBB> atomnuker: yes!
[20:50:30 CET] <BBB> atomnuker: but its slow
[20:50:49 CET] <BBB> atomnuker: because its crosslane, it takes the first qword (!?!?!?!?!?) from xm3 to shift all words (in both lanes) in m3
[20:51:14 CET] <BBB> and if the qword >= 16, itll set everything to 0
[20:51:24 CET] <BBB> which, given that theyre words (possibly non-zero), is quite likely
[20:52:38 CET] <atomnuker> I think it'll be faster than giving it a memory argument, plus I'd have to either bloat my grps to 7 (since r6m exists) or reserve some stack
[20:57:54 CET] <BBB> for me, stack mem wa sfaster
[20:57:59 CET] <BBB> probably because no cross-lane
[21:00:54 CET] <atomnuker> can't do a dumb 1 to 1 look up table either, it requests fpic
[21:01:18 CET] <atomnuker> honestly what the fuck intel, why did they not make it accept gprs
[21:12:30 CET] <BBB> lea r6, [table]
[21:12:45 CET] <BBB> mov r5d, dword [r6+idx*2]
[21:12:46 CET] <BBB> or whatever
[21:12:53 CET] <BBB> its annoying yes
[22:22:16 CET] <kurosu_> shr design is older than you, respect your elders :p
[22:28:58 CET] <atomnuker> I wonder if the 68000 had the same level of flag abuse and opaqueness
[22:34:26 CET] <cone-330> ffmpeg 03Michael Niedermayer 07master:793a3e7bc909: doc/fate.texi: Mention that samples should be uploaded before pushing dependent commits
[22:39:25 CET] <cone-330> ffmpeg 03Mark Thompson 07master:30fcc1093796: cbs_h264: Include SEI type names in trace output
[22:39:26 CET] <cone-330> ffmpeg 03Mark Thompson 07master:2dee0679e9a8: cbs_h265: Add PTL parsing for Main 10 Still Picture profile
[23:46:20 CET] <nevcairiel> atomnuker: for the record, which actual register actually backs r0-r14 in x86inc.asm code varies between platforms, because it prefers those it doesnt have to save, so r3b is only CL on unix64, on 32-bit its r1b and on windows64 its r0b, but i see you're not using it anymore anyway
[23:50:38 CET] <nevcairiel> some code in avcodec even uses SHR with a CL argument, it has 3 different register assignments in there for the 3 cases
[23:56:34 CET] <atomnuker> yeah, I thought so too
[00:00:00 CET] --- Thu Nov 1 2018
1
0
[00:05:33 CET] <brimestone> is there an FFplay wrapper for objective c?
[00:55:14 CET] <nicolas17> do .ts files have such thing as 'faststart'?
[00:55:31 CET] <furq> no
[00:56:01 CET] <nicolas17> do they not need it? can always play before getting the end?
[00:56:59 CET] <furq> yes
[00:57:08 CET] <furq> the whole point of mpegts is that it's streamable
[00:57:45 CET] <furq> you can start reading from any arbitrary point in the file and it'll play
[00:58:00 CET] <furq> the downside is that sending headers inband adds a lot of overhead and there's no seek index
[00:59:47 CET] <nicolas17> wonder why it was chosen for HLS
[01:00:43 CET] <nicolas17> I guess so that something can produce a long mpegts and something else can chop it up without having to generate new headers or anything?
[01:01:16 CET] <furq> hls is usually used for livestreaming, so it's a pretty natural choice
[01:01:37 CET] <furq> you can use fragmented mp4 as well but that whole format is a bolt-on afterthought
[01:35:40 CET] <Zexaron> Helllo
[01:36:05 CET] <Zexaron> is there a way to detect what kind of build options were used on precompiled .lib files
[01:36:17 CET] <Zexaron> I think I did that in the past but forgot
[01:36:27 CET] <Zexaron> I have like avcodec, avformat etc
[01:36:39 CET] <Zexaron> I have the libs without exe
[01:38:11 CET] <Zexaron> im not sure if precompiled lib is proper term, since it's 8 mb size, but when final project exe is built it's only a like less than 2 mb diff
[01:39:47 CET] <BtbN> avcodec_configuration()
[01:41:34 CET] <Zexaron> oh okay, I was browing through the raw file heh
[01:42:10 CET] <nicolas17> search for "--enable" or "--prefix"? :P
[01:42:19 CET] <BtbN> it's in there somewhere, strings will probably find it
[01:46:57 CET] <Zexaron> yeah not quite getting it const char a = *avcodec_configuration(); debugger a is undefined ... i was in a rush
[01:53:10 CET] <nicolas17> doesn't avcodec_configuration return a char array?
[01:53:17 CET] <nicolas17> const char* a = avcodec_configuration();
[01:54:21 CET] <Zexaron> oh that
[01:55:07 CET] <Zexaron> Yes with VS2017 error reporting I just go trial and error as sometimes the suggestions are so off
[01:59:42 CET] <Zexaron> ain't working either
[01:59:54 CET] <Zexaron> but I can watch avcodec_configuration() directly then
[02:00:14 CET] <Zexaron> using the same code
[02:01:57 CET] <Zexaron> funny how lib file leaks the username of the machine it was compiled in
[02:03:03 CET] <Zexaron> anyway, it's just showing some disassembly and source stuff, not sure if this is it
[02:08:39 CET] <Zexaron> oh okay it's not that big deal, I'll figure it out tomorrow
[02:38:55 CET] <Matador> bloody hecks
[03:08:38 CET] <nicolas17> any idea on how I could get the first frame of an mpegts while reading/downloading as little as possible? I think I would need to parse headers myself to know how big the first packet is and then download only that much...
[03:10:19 CET] <nicolas17> and mpegts headers don't look like the easiest thing to parse ^^
[13:01:07 CET] <Zexaron> Hello
[13:01:22 CET] <Zexaron> does ffmpeg, well, codecs, support changing resulution on-fly ?
[13:01:40 CET] <Zexaron> Probably not but just checking if there's any oddball chance of any codec that can do that?
[13:02:03 CET] <Zexaron> or let's say, input resolution change, but through a filter that scales it to the same output one
[13:03:52 CET] <relaxed> it can decode such streams, not sure about encoding
[13:30:40 CET] <Chagall> just wondering, why is y4m "c420" interpreted as c420jpeg (while c422/c444 have colocated chroma as far as I remember) while c420paldv is interpreted as having colocated chroma instead of the correct pal-dv format?
[13:31:52 CET] <Chagall> it seems like the c420paldv implementation is missing and c420paldv is what c420 should be, though I'm not sure c420 was defined in yuv4mpeg
[13:32:27 CET] <Chagall> that is, the current c420paldv implementation is what c420 should be as it tends to be defined
[13:34:22 CET] <Chagall> I traced back the addition of 420 to this commit https://code.oxygene.sk/mirrors/ffmpeg/commit/b864b38397a2962d265ad39005265… and I am assuming that LOC_TOPLEFT and LOC_CENTER are exactly what they imply
[13:37:30 CET] <Chagall> in master 420paldv is just treated as a clone of 420mpeg2, and 420 as a clone of 420jpeg (https://code.oxygene.sk/mirrors/ffmpeg/blob/master/libavformat/yuv4mpegdec.c)
[13:39:08 CET] <Zexaron> relaxed: this gave me an idea, if there is a scaling mode that would scale the canvas size not the actual input so it would encode black bars but keep the original input size in place , since this is about frame dumping from a gaming emulator, it's live, it's not offline video, so it may only work if resolution is less than it originally started with
[14:12:19 CET] <blenderwitch> hi! AFAIK, the following command should add image as an attachment stream to mkv container but instead adds it as a video stream: `ffmpeg -i test.mkv -c copy -attach cover.png -metadata:s:t mimetype=image/png test2.mkv`
[14:17:49 CET] <blenderwitch> here's the output of `ffmpeg -i test2.mkv` after the attachment: http://pasted.co/b3e12750
[15:05:08 CET] <blenderwitch> ah, nvm. apparently ffmpeg just shows it weird. mkvinfo does it proper
[15:05:10 CET] <blenderwitch> cheers!
[15:11:36 CET] <lemourin> does avformat have stream preloading built in? that would be useful for http e.g or do i need to implement it myself?
[16:18:20 CET] <pomaranc> identify separate
[18:54:07 CET] <CoreX> best way to go about getting to know if the first and last frames are B frames?
[18:54:53 CET] <furq> ffprobe -show_frames
[18:57:32 CET] <CoreX> thanks
[00:00:00 CET] --- Thu Nov 1 2018
1
0