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

burek burek021 at gmail.com
Mon Jun 11 03:05:03 EEST 2018

[03:14:41 CEST] <cone-502> ffmpeg 03Jun Zhao 07master:4030d3d3f495: lavc/dolby_e: fix make checkheaders warning
[03:14:41 CEST] <cone-502> ffmpeg 03Jun Zhao 07master:12138402652f: lavc/aacsbr: fix make checkheaders warning
[03:23:09 CEST] <cone-502> ffmpeg 03Carl Eugen Hoyos 07master:3a56ade1f32d: lsws/rgb2rgb_template: Do not compile unneeded shuffle functions on big-endian.
[20:06:29 CEST] <cq1> Hey folks. It used to be that libavcodec/allcodecs.c contained a massive sequence REGISTER_ENCDEC macros to populated the singly linked list of AVCodec*s.
[20:07:06 CEST] <cq1> But now it seems to just include libavcodec/codec_list.c, which I don't see, and is presumably built by something in the build process. Can someone explain the new way things are hooked up?
[20:07:30 CEST] <JEEB> there is no longer any resemblance of dynamic loading, and yes - it gets generated during build time
[20:07:58 CEST] <JEEB> the dynamic loading that used to be there was not really usable for anyone trying to dynamically add an AVCodec of his own
[20:08:12 CEST] <JEEB> as it required private symbols for that
[20:08:36 CEST] <JEEB> that doesn't mean that FFmpeg wouldn't have dynamic loading of decoders/encoders in the future
[20:08:47 CEST] <JEEB> but the API would have to be properly thought out and to be "good enough"
[20:09:43 CEST] <cq1> Okay, got it.
[20:10:22 CEST] <cq1> I'm trying to update this lab description: http://htmlpreview.github.io/?https://github.com/petersn/video-compression-lab/blob/master/lab.html
[20:10:32 CEST] <cq1> My current checklist to add a new encoder/decoder is:
[20:11:13 CEST] <JEEB> hah, that sounds like a class I kind of wanted to do at helsinki uni back in the day
[20:11:29 CEST] <JEEB> playing around with making a simple thing into libavcodec and seeing applications actually playing that stuff
[20:11:37 CEST] <cq1> 1) Add an AVCodecID to libavcodec/avcodec.h 2) Add an entry in libavcodec/codec_desc.c 3) Add a REGISTER_ENCDEC to libavcodec/allcodecs.c 4) Add a FourCC to libavformat/riff.c 5) Add the objects to the Makefile
[20:11:48 CEST] <cq1> I think I just need to replace (3).
[20:12:02 CEST] <JEEB> yea, you basically put the structure into a list
[20:13:05 CEST] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=commit;h=f958f431eced497f42220d8f9890506215742512
[20:13:12 CEST] <JEEB> this seems to have been merged after that change
[20:13:20 CEST] <JEEB> see the allcodecs.c change
[20:14:05 CEST] <cq1> Okay, got it, thanks.
[20:14:32 CEST] <cq1> And simply adding the AVCodecID and the Makefile entries suffices to get an appropriate entry auto-generated into codec_list.c?
[20:15:41 CEST] <JEEB> I think the allcodecs.c thing is the thing that has a part in that
[20:16:02 CEST] <JEEB> basically that commit is adding a new decoder and encoder
[20:16:10 CEST] <JEEB> so it should in theory be the way to do it
[20:16:30 CEST] <nevcairiel> indeed the extern entry in allcodecs.c is whats converted into the list
[20:16:42 CEST] <cq1> nevcairiel: Perfect, thanks.
[20:24:08 CEST] <cq1> Okay, thanks, JEEB and nevcairiel. It works perfectly now.
[20:25:09 CEST] <cq1> nevcairiel: For documentation purposes, do you know what script generates codec_list.c from the externs?
[20:26:47 CEST] <JEEB> configure:print_enabled_components libavcodec/codec_list.c AVCodec codec_list $CODEC_LIST
[20:26:51 CEST] <JEEB> sounds like this
[20:27:06 CEST] <JEEB> unless that prints FROM codec_list.c
[20:28:02 CEST] <JEEB> # generate the lists of enabled components
[20:28:03 CEST] <JEEB> print_enabled_components(){
[20:28:06 CEST] <JEEB> yup, bingo
[20:28:58 CEST] <cq1> Okay, got it, thanks.
[20:39:21 CEST] <January> cq1: you need to make sure it fits the other entries exactly as well see configure for the specific regex it uses
[20:41:49 CEST] <January> cq1: i made that change so if you have any further issues then just ping me
[21:19:38 CEST] <cq1> January: Okay, thanks. I'll check it out.
[21:20:05 CEST] <cq1> This is probably a stupid question, but where did ffplay go? "./configure --enable-ffplay" is not building ffplay for me.
[21:20:24 CEST] <JEEB> it has for a while now been requiring SDL2
[21:20:49 CEST] <JEEB> I would though recommend something "proper" like mpv as a "minimal" player based upon the libraries. but sure, ffplay is within the repo
[21:26:00 CEST] <jamrial> ffplay is more than enough to test playback
[21:26:51 CEST] <JEEB> back in the day I just ended up dumping frames with ffmpeg.c
[21:26:55 CEST] <jamrial> i wouldn't use it to watch a movie, but to make sure the changes i just wrote are good? it's right there in the same folder as ffmpeg and ffprobe
[21:26:57 CEST] <JEEB> but yes, I've also utilized ffplay :)
[21:27:16 CEST] <JEEB> (the thing I was testing I still haven't finished, which is a meh thing :<)
[21:34:28 CEST] <nevcairiel> i usually just use ffmpeg and transcode  or dump pngs
[21:34:34 CEST] <nevcairiel> because sdl is a nightmare
[21:35:04 CEST] <JEEB> yup
[21:38:59 CEST] <durandal_1707> i use examples to watch movies in console
[23:11:31 CEST] <atomnuker> I do -c:v rawvideo -f nut - | mpv - --pause
[23:14:19 CEST] <atomnuker> I did use LDPRELOAD at one stage too
[23:57:51 CEST] <cone-300> ffmpeg 03Marton Balint 07master:d9f72e53bfe7: avcodec/libzvbi-teletextdec: add support for selecting subtitle pages only
[00:00:00 CEST] --- Mon Jun 11 2018

More information about the Ffmpeg-devel-irc mailing list