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

burek burek021 at gmail.com
Thu Jan 12 02:05:03 CET 2012

[00:00] <durandal_1707> i dont know out of head
[00:00] <durandal_1707> maybe fourcc
[00:00] <durandal_1707> where you found that?
[00:02] <OanaStratulat> durandal_1707: Stream #0:1(eng): Video: h264 (Main) (avc1 / 0x31637661)
[00:05] <OanaStratulat> durandal_1707: can you point me the line where the duration is calculated?
[00:05] <durandal_1707> avc1 is fourcc and 0x31... is its hex representation
[00:05] <durandal_1707> OanaStratulat: you need to start reading mov demuxer
[00:09] <durandal_1707> michaelni: ffplay -vf format=bgr555le,format=rgb555be fate-suite/dxtory/dxtory_mic.avi
[00:10] <durandal_1707> something is not right with endianess and rgb2rgb conversion
[00:28] <cbsrobot> OanaStratulat: concerning the bug 599
[00:28] <OanaStratulat> cbsrobot: yes
[00:28] <cbsrobot> I think mov.c calculates the duration from the info in the mdhd atom
[00:29] <cbsrobot> timescale 5994, duration: 2004952
[00:30] <cbsrobot> but the tkhd (and elst ) atom have a duration of 179700
[00:30] <cbsrobot> so: 179700 / 5994 = 29.81 sec
[00:30] <OanaStratulat> yes...that is the correct duration of the file
[00:31] <cbsrobot> 2004952 / 5994 = 334 sec
[00:31] <cbsrobot> ^ the wrong duration
[00:31] <OanaStratulat> so where do you think is the problem?
[00:32] <OanaStratulat> the duration in mdhd atom?
[00:32] <cbsrobot> before answering this ... some observations I made
[00:32] <cbsrobot> quicktime says the file has about 5 fps, but plays it at 60 fps
[00:33] <cbsrobot> so quicktime mixes some things up too
[00:34] <OanaStratulat> yes
[00:34] <OanaStratulat> please have in mind that i started working with ffmpeg 2 weeks ago
[00:35] <cbsrobot> and btw the mvhd atom uses timescale: 5994, duration: 179700 
[00:36] <OanaStratulat> where does the 2004952 duration come from ?
[00:37] <cbsrobot> not sure
[00:38] <cbsrobot> I suggest you read http://developer.apple.com/documentation/quicktime/QTFF/qtff.pdf
[00:39] <OanaStratulat> it calculates duration on line 765 in mov.c but it is based on the version no ?
[00:40] <cbsrobot> read p52: Duration
[00:42] <cbsrobot> as I can see in mov.c
[00:43] <cbsrobot> the MOVContext timescale is set in mov_read_mvhd
[00:44] <cbsrobot> but the MOVStreamContext is set in mov_read_mdhd
[00:44] <cbsrobot> and the duration aswell
[00:44] <OanaStratulat> they must be in the same place no?
[00:44] <OanaStratulat> it uses the timescale for one track with the duration of another one no/
[00:46] <cbsrobot> well - actually it looks correct to me
[00:47] <cbsrobot> but I think you can try to set in mov_read_mdhd :
[00:47] <cbsrobot>  sc->time_scale =  c->time_scale;
[00:47] <cbsrobot> at the end and see if it fixes the problem
[00:47] <cbsrobot> sorry
[00:47] <cbsrobot> wrong
[00:48] <cbsrobot> timescale is 5994 in both atoms
[00:48] <cbsrobot> rather 
[00:48] <cbsrobot> st->duration = c->duration;
[00:49] <cbsrobot> at the end
[00:49] <OanaStratulat> the same duration
[00:49] <cbsrobot> (I cant tell you the exact linenumer as I'm hacking mov.c in this branch)
[00:50] <cbsrobot> *linenumber
[00:50] <OanaStratulat> ok so now i have http://pastebin.com/QV7Uvza1
[00:50] <OanaStratulat> this is my output
[00:51] <OanaStratulat> http://pastebin.com/bugPg610
[00:51] <OanaStratulat> my diff
[00:51] <cbsrobot> Duration: 00:05:34.49, start: 0.000000, bitrate: 2775 kb/s <- still looks wrong
[00:52] <OanaStratulat> yes
[00:52] <OanaStratulat> but when i av_log the duration looks good
[00:55] <cbsrobot> yeah - you  need to dig deeper
[00:55] <cbsrobot> it was just a hint ....
[00:56] <OanaStratulat> so no other ideas ?
[01:03] <cbsrobot> not yet
[01:03] <OanaStratulat> what is version ?
[01:03] <OanaStratulat> because the duration is calculated looking at the version
[01:05] <bcoudurier> duration is not based on edit lists
[01:05] <bcoudurier> it's what's in the mdhd atom
[01:06] <OanaStratulat> i`m now looking at http://wiki.multimedia.cx/index.php?title=QuickTime_container#mdhd
[01:09] <cbsrobot> version is a question of 32-bit size or 64-bit size
[01:09] <OanaStratulat> yes, found that out
[01:10] <OanaStratulat> the duration is calculated correctly from the file, i checked with the versions
[01:10] <OanaStratulat> and it`s using the correct function
[01:10] <OanaStratulat> maybe the file used it`s the problem ? can it be?
[01:11] <cbsrobot> quicktime shows correct duration
[01:11] <Daemon404> btw
[01:11] <cbsrobot> but who knows what info quicktime shows as duration
[01:11] <Daemon404> quicktime will be a dick sometimes
[01:11] <Daemon404> and its "Duration" will techncially be wrong
[01:12] <Daemon404> cause itll be based off of timecodes instead of timestamps
[01:15] <cbsrobot> the duration in the editlist (elst) seems correct for audio and video
[01:16] <OanaStratulat> why it`s doing 2 passes of mdhd ?
[01:16] <cbsrobot> the only place it seems wrong is the duration in the mdhd atom
[01:16] <cbsrobot> audio
[01:16] <cbsrobot> video
[01:16] <cbsrobot> audio <- pass 1
[01:16] <cbsrobot> video <- pass 2
[01:17] <cbsrobot> or more ccurate
[01:17] <cbsrobot> *accurate
[01:17] <cbsrobot> pass1: trak 1
[01:17] <cbsrobot> pass 2: track 2
[01:17] <OanaStratulat> so video is wrong 
[01:17] <OanaStratulat> can be the video header scrammbled in the file ?
[01:18] <OanaStratulat> scrambled *
[01:18] <cbsrobot> maybe
[01:18] <cbsrobot> remove the DEBUG comment at line 25
[01:19] <OanaStratulat> the same duration
[01:19] <OanaStratulat> michaelni: ping
[01:23] <OanaStratulat> cbsrobot: can be a filed for the audio duration and one for the video and then compare 
[01:23] <OanaStratulat> and av_log if they are different but still decode the file ?
[01:23] <OanaStratulat> this seems to be a viable solution
[01:25] <cbsrobot> this sound more like "add a warning" then "fix a bug"
[01:26] <OanaStratulat> yes..
[01:27] <OanaStratulat> but suppose the video header is messed up in the file how can i find this out ?
[01:28] <OanaStratulat> ffplay shows the same duration
[01:31] <cbsrobot> ha - found it
[01:32] <cbsrobot> at the end of mov_read_stts
[01:32] <OanaStratulat> do not tell me what is, let me try to find it
[01:32] <cbsrobot> add
[01:32] <cbsrobot> st->duration = c->duration
[01:32] <OanaStratulat> ahh
[01:32] <OanaStratulat> :))
[01:32] <cbsrobot> but this is the "dirty" solution
[01:32] <OanaStratulat> why is that?
[01:33] <OanaStratulat> 1st what does mov_read_stts do ?
[01:33] <cbsrobot> well - I'm not the mainteiner ...
[01:33] <cbsrobot> bcoudurier: what do you think ?
[01:33] <bcoudurier> nope
[01:34] <bcoudurier> if anything AVFormatContext = c->duration
[01:35] <cbsrobot> bcoudurier: can you be a bit more verbose ? OanaStratulat tries to find a good solution for bug 599
[01:36] <OanaStratulat> bcoudurier: it`s for a Google Code In task
[01:36] <bcoudurier> sure
[01:36] <bcoudurier> setting AVFormatContext->duration to the global mov duration in mvhd is fine
[01:39] <OanaStratulat> so if i add st->duration = c->duration at the end of mov_read_stts is it good ?
[01:44] <OanaStratulat> bcoudurier: ^? 
[01:44] <bcoudurier> no
[01:45] <bcoudurier> not st->duration, AVFormatContext->duration
[01:46] <OanaStratulat> what is the var of AVFormatContext used ?
[01:46] <OanaStratulat> AVFormatContext->duration = c->duration; doing like this is wrong i presume
[01:46] <bcoudurier> ->duration
[01:47] <OanaStratulat> please be more explicit
[01:50] <OanaStratulat> bcoudurier: ^
[01:51] <bcoudurier> the var is probably named s but then again it depends on the function :)
[01:51] <OanaStratulat> in mov_read_stts there is no var of type AVFormatContext
[01:53] <bcoudurier> read_mvhd
[01:53] <bcoudurier> you should set it there
[01:54] <OanaStratulat> but again here no AVFormatContext variable
[01:54] <OanaStratulat> static int mov_read_mvhd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
[01:55] <cbsrobot> c->fc maybe
[01:56] <OanaStratulat> it messes up duration now, shows 17 secnds
[01:56] <OanaStratulat> http://pastebin.com/U0Y1wiYr
[01:56] <cbsrobot> read avformat.h:970
[01:56] <OanaStratulat> my diff http://pastebin.com/JGBc4Nap
[02:00] <OanaStratulat> cbsrobot: am i doing smth wrong here?
[02:08] <OanaStratulat> bcoudurier: ^
[02:13] <OanaStratulat> cbsrobot: it`s not good setting it there it will se the video duration the same as the audio one
[02:16] <cbsrobot> OanaStratulat: I'm not sure how to set the AVFormatContext duration correctly
[02:16] <OanaStratulat> but doing as you said the 1st time is not corect ?
[02:16] <OanaStratulat> correct *
[02:17] <cbsrobot> maybe someone else can shed some light in it
[02:17] <cbsrobot> nope
[02:17] <cbsrobot> it was just finding where the wrong values come from
[02:18] <cbsrobot> but the fix should be somewhere else
[02:18] <OanaStratulat> maybe bcoudurier can enlighten us 
[02:19] <cbsrobot> I thought the AVFormatContext duration = time_scale * duration
[02:19] <cbsrobot> but it's not 
[02:21] <bcoudurier> avformatcontext duration scale is different it's in AV_TIME_BASE
[02:23] <OanaStratulat> bcoudurier: AV_TIME_BASE how can be calculated ?
[02:23] <bcoudurier> you can use av_rescale
[02:23] <bcoudurier> AV_TIME_BASE is a constant
[02:24] <OanaStratulat> how exactly can i do that with c->duration ?
[02:25] <cbsrobot> bcoudurier: thanks
[02:25] <cbsrobot> in ...mvhd... add:
[02:25] <cbsrobot> c->fc->duration = av_rescale(c->duration, AV_TIME_BASE, c->time_scale);
[02:26] <OanaStratulat> cbsrobot: yes, it`s working now
[02:27] <OanaStratulat> bcoudurier: cbsrobot thx for the help
[02:32] <cbsrobot> OanaStratulat: patch ready ?
[02:32] <OanaStratulat> upload it on trac?
[02:33] <cbsrobot> or directly to the ml mentioning ticket599
[02:34] <OanaStratulat> cbsrobot: https://ffmpeg.org/trac/ffmpeg/attachment/ticket/599/0001-Fixes-wrong-duration-in-.mov-file.-Issue-599.patch
[02:36] <cbsrobot> hmm
[02:37] <cbsrobot> i'd put it directly after
[02:37] <cbsrobot> c->duration = (version == 1) ? avio_rb64(pb) : avio_rb32(pb); /* duration */
[02:37] <cbsrobot> so it's easier to read
[02:37] <OanaStratulat> so amend to patch ?
[02:39] <cbsrobot> and maybe a little comment above it would be nice
[02:40] <OanaStratulat> what should i say in the comment?
[02:40] <cbsrobot> I let you think about that
[02:41] <OanaStratulat> cbsrobot: //duration calculated from c->duration converted to AV_TIME_BASE sounds good?
[02:42] <cbsrobot> nah - sounds too much like me commenting something
[02:42] <cbsrobot> maybe
[02:43] <cbsrobot> Set the AVFormatContext duration because the track duration is not accurate
[02:43] <OanaStratulat> ok
[02:45] <OanaStratulat> resend on ML?
[02:45] <cbsrobot> and you can also mention the "Similar to what Quicktime shows" when you send the mail
[02:45] <cbsrobot> do you use git send-email ?
[02:46] <OanaStratulat> no
[02:46] <cbsrobot> a pitty
[02:46] <cbsrobot> so yes ML
[02:46] <OanaStratulat> ok
[02:51] <OanaStratulat> cbsrobot: sent
[02:52] <OanaStratulat> michaelni: http://google-melange.appspot.com/gci/task/view/google/gci2011/7179244 please accept the claim
[02:55] <cbsrobot> OanaStratulat: you forgot the patch ...
[02:55] <OanaStratulat> i have put it in the replay
[02:55] <cbsrobot> well I cant see it
[02:56] <cbsrobot> http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2012-January/118913.html
[02:56] <OanaStratulat> in Mail on osx it shows it`s there
[02:57] <OanaStratulat> it`s buggy i think my mail
[02:57] <CIA-46> ffmpeg: 03Laurentiu Ion 07master * rda2e774fd6 10ffmpeg/libavcodec/kmvc.c: 
[02:57] <CIA-46> ffmpeg: kmvc: Use bytestream2 functions to prevent buffer overreads.
[02:57] <CIA-46> ffmpeg: Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
[02:57] <CIA-46> ffmpeg: 03Luca Barbato 07master * rb8c310cb0a 10ffmpeg/libavdevice/v4l2.c: 
[02:57] <CIA-46> ffmpeg: v4l2: support compressed formats
[02:57] <CIA-46> ffmpeg: Let pass the codec name to -pixel_format and introduce -input_format.
[02:57] <CIA-46> ffmpeg: 03Luca Barbato 07master * rb6db385922 10ffmpeg/libavdevice/v4l2.c: 
[02:57] <CIA-46> ffmpeg: v4l2: use C99 struct initializer
[02:57] <CIA-46> ffmpeg: Remove some unneeded memsets.
[02:57] <CIA-46> ffmpeg: 03Luca Barbato 07master * r0c50edb789 10ffmpeg/doc/filters.texi: doc: fix stray reference to FFmpeg
[02:57] <CIA-46> ffmpeg: 03Paul B Mahol 07master * r0b8b3387a9 10ffmpeg/libswscale/swscale_unscaled.c: 
[02:57] <CIA-46> ffmpeg: rgb2rgb: allow conversion for <15 bpp
[02:57] <CIA-46> ffmpeg: Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
[02:57] <CIA-46> ffmpeg: 03Paul B Mahol 07master * r353a2d2164 10ffmpeg/libavcodec/bmp.c: 
[02:57] <CIA-46> ffmpeg: bmpdec: support for rgb444 with bitfields compression
[02:57] <CIA-46> ffmpeg: Do not display garbage for invalid/unsupported bitfields values.
[02:57] <CIA-46> ffmpeg: Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
[02:57] <CIA-46> ffmpeg: 03Martin Storsjö 07master * ra78dbada55 10ffmpeg/libavformat/movenc.c: 
[02:57] <CIA-46> ffmpeg: movenc: Don't store a nonzero creation time if nothing was set by the caller
[02:57] <CIA-46> ffmpeg: If the creation time is stored in the file as a zero, the
[02:57] <CIA-46> ffmpeg: mov demuxer skips exporting the creation time. Currently,
[02:57] <CIA-46> ffmpeg: files muxed without a creation time get demuxed with a
[02:57] <CIA-46> ffmpeg: Jan 1st 1970 creation timestamp.
[02:57] <CIA-46> ffmpeg: Signed-off-by: Martin Storsjö <martin at martin.st>
[02:57] <CIA-46> ffmpeg: 03Anton Khirnov 07master * r7b9373db89 10ffmpeg/avconv.c: 
[02:57] <CIA-46> ffmpeg: avconv: fix -copyinkf.
[02:57] <CIA-46> ffmpeg: This option only applies to streamcopy, but is currently processed only
[02:57] <CIA-46> ffmpeg: when encoding.
[02:57] <CIA-46> ffmpeg: 03Anton Khirnov 07master * r5d25140f71 10ffmpeg/libavfilter/vsrc_buffer.c: vsrc_buffer: error on changing frame parameters.
[02:57] <CIA-46> ffmpeg: 03Anton Khirnov 07master * rac64607682 10ffmpeg/avconv.c: 
[02:57] <CIA-46> ffmpeg: avconv: reinitialize the filtergraph on resolution change.
[02:57] <CIA-46> (61 lines omitted)
[02:58] <OanaStratulat> something it`s buggy
[02:58] <OanaStratulat> sent it again
[02:58] <OanaStratulat> and the same
[02:58] <cbsrobot> lol
[02:59] <OanaStratulat> cannot figure out what`s happening 
[02:59] <OanaStratulat> https://ffmpeg.org/trac/ffmpeg/attachment/ticket/599/0001-Fixes-wrong-duration-in-.mov-file.-Issue-599.patch
[02:59] <OanaStratulat> here is the link
[03:00] <cbsrobot> well lgtm, but let's see what others say
[03:01] <cbsrobot> and set up git send-email ...
[03:01] <OanaStratulat> i think michaelni has the final word, he is the mentor for the task i`ve took
[03:01] <cbsrobot> it's quite easy
[03:02] <cbsrobot> see http://wiki.videolan.org/Git
[03:02] <cbsrobot> search for gmail
[03:03] <cbsrobot> I need to sleep
[03:03] <cbsrobot> gn
[03:04] <OanaStratulat> good night and thx for the help
[03:04] <OanaStratulat> michaelni: http://google-melange.appspot.com/gci/task/view/google/gci2011/7179244 marked as completed
[03:20] <OanaStratulat> michaelni: have some time to review my patch ?
[04:16] <OanaStratulat> michaelni: ping
[05:36] <CIA-46> ffmpeg: 03Michael Niedermayer 07master * r6fe7b57280 10ffmpeg/doc/filters.texi: 
[05:36] <CIA-46> ffmpeg: doc: Fix stray references to libva
[05:36] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[05:36] <CIA-46> ffmpeg: 03Michael Niedermayer 07master * rac7efd3364 10ffmpeg/libswscale/swscale_unscaled.c: 
[05:36] <CIA-46> ffmpeg: sws: fix unscaled LE<->BE rgb<->bgr
[05:36] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[05:37] <CIA-46> ffmpeg: 03Oana Stratulat 07master * r550f7c43ec 10ffmpeg/libavformat/mov.c: 
[05:37] <CIA-46> ffmpeg: Fixes wrong duration in .mov file. Issue 599
[05:37] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[08:38] <Compn> anyone here want a free 50gb box.net account? basically its free space on cloud server. 100mb per file limit
[08:38] <Compn> remind me later
[08:38] Action: Compn sleeps
[08:41] <ohsix> can you rsync to it?
[08:41] <ohsix> and why is it free and for how long will it remain that way
[08:45] <av500> 100mb per file?
[08:45] <av500> I haz to put split rars for warez?
[08:50] <Compn> i guess
[08:50] <Compn> ohsix : no clue, only that you can give people direct urls to files
[09:00] <Compn> oh nevermind, looks like i cant use gmail to send the invites anyways ;\
[09:00] <Compn> dumb website
[09:37] <ubitux> is there anyone to unsubscribe John Mucha from ffmpeg-user?
[09:38] <ubitux> he doesn't stop top posting "Stop sent mi messages" on every message
[10:56] <CIA-46> ffmpeg: 03Carl Eugen Hoyos 07master * rc3ff0713ef 10ffmpeg/libavutil/pixdesc.c: Fix step_minus1 pixel descirption for RGB64.
[11:06] <ubitux> mmh it seems the inlink->channel_layout is not defined in the query_formats of the current filter
[11:06] <ubitux> and thus i see no neat way of doing some sanity checks
[11:07] <ubitux> should i look into the inlink->out_chlayouts?
[11:11] <ubitux> that sounds pretty weird and not easy
[11:21] <CIA-46> ffmpeg: 03Paul B Mahol 07master * r98dfdfdd8e 10ffmpeg/libavcodec/ (tiff.c tiff.h): 
[11:21] <CIA-46> ffmpeg: tiffdec: notify user that tile support is missing
[11:21] <CIA-46> ffmpeg: Signed-off-by: Stefano Sabatini <stefasab at gmail.com>
[11:22] <ubitux> mmh maybe config_props
[11:35] <Tjoppen> cbsrobot: new patch on ML. sample still plays fine
[11:36] <cbsrobot> Tjoppen: thanks - I'll check it later - need to run
[14:04] <OanaStratulat> ubitux: ping
[14:04] <ubitux> OanaStratulat: yup
[14:04] <OanaStratulat> busy right now?
[14:05] <ubitux> as usual yes, but what's your question?
[14:05] <OanaStratulat> have some questions about a bug in vorbis.c http://bugzilla.libav.org/attachment.cgi?id=271 this file makes it crash. it`s a FPE
[14:06] <cbsrobot> OanaStratulat: You didn't send the email to the list yesterday ... :(
[14:06] <cbsrobot> michaelni already applied it
[14:06] <OanaStratulat> cbsrobot: i cannot attach the patch, i will configure my git mail 
[14:08] <ubitux> OanaStratulat: what questions?
[14:08] <OanaStratulat> regarding this file, the adx var gets 0. it always should be > 0 but i cannot figure out why it gets like this
[14:08] <ubitux> hi saste 
[14:08] <ubitux> saste: i'm testing your audio -show_frames patch, but i have a crash
[14:09] <saste> ubitux: sample/bt?
[14:10] <ubitux> all the mp3 i test, and the backtrace:
[14:10] <ubitux> #7  0x081eaa51 in av_destruct_packet (pkt=0xbffff508) at libavcodec/avpacket.c:37
[14:10] <ubitux> #8  0x08093371 in show_packets (w=0x8f86b00, fmt_ctx=0x8f86b80) at ffprobe.c:1385
[14:11] <ubitux> i have one which should trigger the decoderet<0 case, which make it crash just like the others normal mp3
[14:11] <ubitux> i'll upload in a moment, i need to check some stuff
[14:12] <ubitux> iirc i had this issue because the pkt.data is shifted
[14:12] <ubitux> and thus the destroy packet try to do invalid free
[14:12] <ubitux> (in another context of lav* use)
[14:17] <ubitux> saste: do you need a sample or you are able to reproduce?
[14:18] <OanaStratulat> ubitux: some thought regarding the file i`ve pointed out ?
[14:19] <ubitux> OanaStratulat: i'm waiting for your observations and specific questions before looking at the code :P
[14:20] <OanaStratulat> from the bt i see that the adx var is 0. adx is calculated from a difference of x1-x0 but i do not understand why those are equal at some point.
[14:20] <saste> ubitux: no need, my MP3s crash it, thanks for spotting
[14:22] <ubitux> ok :)
[14:23] <ubitux> OanaStratulat: not sure i'll be of much help but i'll have a quick look in a moment
[14:23] <ubitux> saste: btw, i think the we might want to limit the packet/frames to audio or video only
[14:26] <OanaStratulat> ubitux: ok thx
[14:27] <ubitux> OanaStratulat: is it a zzuf file?
[14:28] <OanaStratulat> ubitux: BBB from libav uploaded the file
[14:28] <cbsrobot> I get http://pastebin.com/3W4ETVfU when compiling - any ideas ?
[14:34] <ubitux> OanaStratulat: you need to understand how the codec works to fix this one
[14:35] <ubitux> i can't help much without taking the time to read some doc, and i don't have that time unfortunately
[14:35] <OanaStratulat> where can i find the documentation for the codec ?
[14:35] <OanaStratulat> on multimedia wiki ?
[14:36] <ubitux> vorbis mmh, i guess xiph.org?
[14:36] <ubitux> http://www.xiph.org/vorbis/doc/
[14:37] <ubitux> http://www.xiph.org/vorbis/doc/Vorbis_I_spec.html
[14:37] <ubitux> you'll need to take some time to understand what is the function doing and supposed to do
[14:45] <OanaStratulat> ubitux: that functions draws the line described in page 45 of http://www.xiph.org/vorbis/doc/Vorbis_I_spec.pdf
[14:45] <OanaStratulat> and the problem is that a line cannot be drawn within a point, the line from x0 x1 is 0
[14:46] <ubitux> ok well spotted
[14:47] <av500> so find out why x0 and x1 are equal
[14:47] <ubitux> it shouldn't be hard to deal with a simple point
[14:47] <ubitux> av500: i guess the function should be able to deal with a line which is actually a single point
[14:47] <ubitux> but i don't know the codec at all
[14:48] <av500> OanaStratulat: didnt we have the same discussion in #libav?
[14:48] <OanaStratulat> av500: yes, the bug is here too
[14:49] <OanaStratulat> av500: void ff_vorbis_floor1_render_list what is the meaning of var lx in this function, i cannot figure this out
[14:50] <av500> i'd say its an index variable
[14:50] <av500> increasing x
[14:50] <OanaStratulat> ff_vorbis_floor1_render_list this functions goes through the array and calculates the lines between every x[i] and y[i].
[14:50] <OanaStratulat> right ?
[14:50] <av500> did you find out what FFMIN(x1,samples) was?
[14:50] <OanaStratulat> yes
[14:50] <av500> OanaStratulat: right
[14:50] <OanaStratulat> calculates the min of those 2 vars
[14:50] <av500> OanaStratulat: and?
[14:51] <av500> and, what is the result in the failing case?
[14:51] <OanaStratulat> x1 is 3 and samples are 1024 in the failing case
[14:51] <av500> and lx?
[14:51] <av500> also 3?
[14:52] <av500> did you print the contents of list[].x;?
[14:53] <OanaStratulat> no doing it now
[14:53] <OanaStratulat> how can i find how many elements does it has?
[14:53] <av500> for (i = 1; i < values; i++) {
[14:53] <OanaStratulat> ok
[14:56] <OanaStratulat> i have the values 3 is in 2 cases
[14:56] <av500> does the spec allow that?
[14:57] <OanaStratulat> is the problem that those lines intersect each other at one point?
[14:58] <OanaStratulat> or i`m thinking it wrong
[14:58] <av500> does the spec allow 2 times the same x value?
[14:58] <av500> if yes, the vorbis decoder is wrong
[14:59] <av500> if not, the decoder should complain
[14:59] <OanaStratulat> i do not know that, i do not see any comments of the same value of x in the spec
[15:04] <OanaStratulat> av500: do you know something about this ?
[15:06] -OanaStratulat:#ffmpeg-devel-  All vector [floor1_x_list] element values must be unique within the vector; a non-unique value renders the stream undecodable
[15:06] <OanaStratulat> av500: ^
[15:06] <OanaStratulat> found ti
[15:06] <OanaStratulat> it
[15:06] <spaam> omg
[15:08] <CIA-46> ffmpeg: 03Paul B Mahol 07master * r7c4b397508 10ffmpeg/libavcodec/bmp.c: 
[15:08] <CIA-46> ffmpeg: bmpdec: support various bitfields for 32 bit depth
[15:08] <CIA-46> ffmpeg: Fixes #740
[15:08] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[15:08] <CIA-46> ffmpeg: 03Michael Niedermayer 07master * r106f714d30 10ffmpeg/libavdevice/v4l2.c: (log message trimmed)
[15:08] <CIA-46> ffmpeg: Revert "v4l2: poll the file descriptor"
[15:08] <CIA-46> ffmpeg: This reverts commit 0efd48dfd15273a5ac85f2fd42f19d419fafe90d.
[15:08] <CIA-46> ffmpeg: Reason for the revert is that the code seems based on some
[15:08] <CIA-46> ffmpeg: misunderstanding on how the code works.
[15:08] <CIA-46> ffmpeg: Conflicts:
[15:08] <CIA-46> ffmpeg:  libavdevice/v4l2.c
[15:08] <CIA-46> ffmpeg: 03Michael Niedermayer 07master * r0644cabd7a 10ffmpeg/libswscale/ (swscale.c swscale_internal.h yuv2rgb.c): 
[15:08] <CIA-46> ffmpeg: sws: Move yuv2rgb clipping into the tables.
[15:08] <CIA-46> ffmpeg: This fixes some cases where the clipping was entirely missing.
[15:08] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[15:08] <CIA-46> ffmpeg: Thanks (for the comments and review) -to: Reimar, beastd, Ronald
[15:09] <OanaStratulat> av500: in that case i should av_log and return an error no ?
[15:09] <av500> see what other codecs do in such a case
[15:10] <OanaStratulat> what codec should i study ? similar to vorbis i presume
[15:10] <av500> any codec
[15:12] <OanaStratulat> can you help me here, i cannot see where to look 
[15:13] <av500> look at aacdec
[15:14] <av500> it has a few places that av_log and error out
[15:16] <OanaStratulat> invalid data i see that it return in most of cases
[15:16] <OanaStratulat> if there are errors in the input file
[15:22] <OanaStratulat> av500: ^
[15:22] <ubitux> oh it seems Diego just did the same i did for make tests
[15:23] <ubitux> hopefully it will reduce some diff
[15:23] <ubitux> but pff, so much wasted time in duplicating efforts :(
[15:23] <OanaStratulat> ubitux: any idea how i should end the program if i have duplicate values of x in the array ?
[15:24] <ubitux> just like any other decoder failure?
[15:24] <OanaStratulat> av_log the message and return invalid data?
[15:24] <ubitux> also i'm not sure you should end the program if it can still continue
[15:24] <ubitux> better raise a warning and deal with it
[15:25] <OanaStratulat> ubitux: All vector [floor1_x_list] element values must be unique within the vector; a non-unique value renders the stream undecodable
[15:25] <OanaStratulat> this is in the documentation of vorbis
[15:25] <ubitux> yes, but some ppl might want to play the video anyway
[15:26] <ubitux> so if there is some duplicated element values, maybe it's a transmit error or any other random reason
[15:26] <OanaStratulat> the file is not playable even in vlc
[15:26] <ubitux> ignore the element, or ignore the frame, and just play the rest
[15:26] <OanaStratulat> how can i do that?
[15:26] <ubitux> isn't vlc using the libavcodec codec?
[15:27] <OanaStratulat> don`t know that
[15:27] <av500> ubitux: maybe they use libvorbis
[15:27] <ubitux> can't you just skip the duplicated element?
[15:28] <OanaStratulat> that function makes lines between every x and the computed y, and they are dependable with the previous one
[15:28] <OanaStratulat> is one value is wrong and i use the previous one i make the stream fuzzed
[15:29] <av500> OanaStratulat: see vorbisdec.c: 
[15:29] <av500>             av_log(vc->avccontext, AV_LOG_ERROR, "Invalid floor type!\n");
[15:29] <av500>             return AVERROR_INVALIDDATA;
[15:29] <ubitux> OanaStratulat: can you do some interpolation and raise a warning? ;)
[15:30] <OanaStratulat> what is interpolation?
[15:30] <ubitux> guessing the value
[15:30] <ubitux> basically.
[15:30] <ubitux> :p
[15:30] <av500> just stop decoding that frame and return an error
[15:30] <ubitux> yes should do the trick too :)
[15:31] <OanaStratulat> the x value are given with the file
[15:31] <av500> dont interpolate anything
[15:31] <ubitux> can't you just raise a warning and return just like av500 proposed a few times already?
[15:31] <av500> av_log and return an error
[15:32] <OanaStratulat> it`s a void function how can i end it ?
[15:32] <ubitux> "return;"
[15:33] <av500> OanaStratulat: its not cast in stone to be void
[15:33] <av500> not part of the 10 commandments
[15:34] <av500> in other words, it's called *soft*ware for a reason :)
[15:34] <ubitux> that's true in that case, but in a lot of case it might break api & abi
[15:34] <ubitux> so it's as frustrating as hardware
[15:34] <ubitux> :(
[15:35] <av500> I dont think codec internal functions are part of any ABI/API
[15:35] <av500> at least not in lavc
[15:35] <ubitux> yes as i said, it doesn't apply here
[15:35] <ubitux> that was just a generic unjustified complain
[15:36] <ubitux> life is hard
[15:36] <OanaStratulat> av500: if i  exit_program(1); ?
[15:36] <OanaStratulat> av log and  exit_program(1); ?
[15:36] <av500> no
[15:36] <av500> of course not
[15:37] <av500> OanaStratulat: have a look at the call chain that leads to the error
[15:37] <OanaStratulat> in ff_vorbis_floor1_render_list i must put the check there it computes everything
[15:37] <av500> in fact, you dont even need to add the av_log
[15:37] <av500> its already there
[15:40] <OanaStratulat> av500: is it good like this http://pastebin.com/W9eDdTpn ?
[15:40] <av500> looks like overkill
[15:42] <OanaStratulat> how to check for the same value in another manner ?
[15:42] <ubitux> juste change the prototype of the /0 function and returns a negative value when it happens
[15:42] <ubitux> then you raise the error
[15:42] <OanaStratulat> ubitux: please be more explicit
[15:42] <ubitux> make render line return a value
[15:43] <ubitux> return 0 in normal case, return -1 if adx is 0
[15:43] <ubitux> in floor1_render_list, you check the return value of render_line
[15:43] <ubitux> and raise it in case it's not zero
[15:43] <ubitux> or sth like that
[15:43] <OanaStratulat> ok
[15:44] <av500> OanaStratulat: we are not after writing a vorbis verifier
[15:44] <av500> we want the thing not to crash and be robust
[15:44] <OanaStratulat> so how must i do it correctly ?
[15:45] <av500> well, as you found out, you divide by adx = 0
[15:45] <OanaStratulat> i found out the bug, but now how is the best way to repair it
[15:45] <OanaStratulat> this is lead by having the same x valye 
[15:45] <OanaStratulat> value
[15:46] <OanaStratulat> av500: http://pastebin.com/BLzisMU7 doing like this it does not crash anymore
[15:47] <av500> yes, but why return a value then at all?
[15:47] <av500> since the return value is not checked
[15:47] <av500> and usually return 0 is used for success
[15:52] <OanaStratulat> av500: http://pastebin.com/NYNLSMkM
[15:52] <OanaStratulat> av500: opinion about this ?
[15:53] <av500> again the error is not propagated
[15:54] <ubitux> or not enough :P
[15:54] <av500> [15:37:13] <av500> OanaStratulat: have a look at the call chain that leads to the error
[15:54] <OanaStratulat> and check for the error in another place ?
[15:54] <ubitux> (indent is wrong too btw)
[15:55] <ubitux> OanaStratulat: int ret = render_line(...); if (ret < 0) return ret;
[15:55] <ubitux> if floor1_... fails, you need to raise the error too.
[15:55] <OanaStratulat> ok ubitux, i must go now. i`ll look into this problem later. thx for the advice
[15:56] <ubitux> heh, i never know how much we are supposed to explain
[15:58] <Compn> ubitux : which email addy ?
[15:58] <Compn> needs to be unsubscribed
[15:58] <ubitux> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2012-January/004207.html
[15:58] <ubitux> john.mucha.jm at googlemail.com 
[15:59] <ubitux> also here: http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2012-January/004206.html
[15:59] <ubitux> here: http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2012-January/004213.html
[15:59] <ubitux> and all of them actually
[16:00] <ubitux> ~10 mails like this
[16:00] <Compn> k
[16:00] <Compn> lol
[16:00] <ubitux> a bit annoying :)
[16:03] <Compn> oh i think lou unsubscribed him
[16:03] <ubitux> ok :)
[16:04] <ubitux> do you think he replied "stop sent mi message" to the unsubscribe notification mail? ;)
[16:05] <av500> that should resubscribe him
[16:05] <av500> I'd leave him subscribed, just drop all his emails
[16:05] <av500> win-win
[16:35] <gnafu> Someone's not too bright, methinks.
[16:36] <gnafu> I've never accidentally subscribed to a mailing list, so it's near impossible for me to imagine how someone could be subscribed and yet not know how to unsubscribe...
[16:36] <av500> maybe a trojan?
[16:42] <gnafu> av500: If I had to have a trojan that subscribed me to a mailing list, I can think of worse lists to be subscribed to :-P.
[16:53] <ubitux> bcoudurier: any comment on the timecode documentation in general.texi?
[17:31] <ubitux> speaking of the timecode documentation i might need to update the mxf entry soon too 
[17:32] <ubitux> Tjoppen: maybe you could have a look to that patch? (mxf timecode metadata exporting)
[17:32] <ubitux> cbsrobot: are you still trying to add timecode writing in mov?
[17:32] <cbsrobot> I have some patche yes
[17:33] <cbsrobot> but it's more like reading, storing and writing timecode
[17:34] <Tjoppen> ubitux: ah, yes. I saw
[18:18] <CIA-46> ffmpeg: 03Clément BSsch 07master * r98aafc5bbf 10ffmpeg/ (3 files in 2 dirs): timecode: set a fixed buffer size of 16B for tc string.
[18:18] <CIA-46> ffmpeg: 03Clément BSsch 07master * rf1db99166b 10ffmpeg/libavcodec/ (timecode.c timecode.h): 
[18:18] <CIA-46> ffmpeg: timecode: string representation can be negative.
[18:18] <CIA-46> ffmpeg: Timecode can be specified with a negative value in MOV...
[18:18] <CIA-46> ffmpeg: 03Clément BSsch 07master * rca1bae3983 10ffmpeg/libavcodec/ (timecode.c timecode.h): timecode: support >24h timecode.
[20:13] <durandal_1707> michaelni: compare ffplay -fs -vf format=rgb444le,format=bgr444be ~/git/fate-suite/dxtory/dxtory_mic.avi
[20:13] <durandal_1707> with ffplay -fs -vf format=rgb444le,format=bgr444 ~/git/fate-suite/dxtory/dxtory_mic.avi
[20:15] <durandal_1707> something is buggy, rgb555 doesn't have this issue
[20:24] <michaelni> durandal_1707, might be due to double application of dither
[20:26] <durandal_1707> so 555/565 have different dithering which does not have such issue
[20:30] <durandal_1707> it looks similar to rgb8 to bgr8 which is pallete
[20:32] <durandal_1707> but rgb444le - bgr444be should be lossless
[20:33] <michaelni> yes, but theres no code that handles this case
[20:33] <michaelni> so it goes through the generic case which applies dither
[20:33] <durandal_1707> ah
[21:08] <pasteeater> looks like the Arch maintainer (ioni) is having issues in #ffmpeg
[22:06] <CIA-46> ffmpeg: 03Paul B Mahol 07master * r8b87fd9825 10ffmpeg/libavcodec/bmpenc.c: 
[22:06] <CIA-46> ffmpeg: bmpenc: support for BGRA
[22:06] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[22:07] <CIA-46> ffmpeg: 03Michael Niedermayer 07master * r84d0fcf268 10ffmpeg/libavcodec/libmp3lame.c: 
[22:07] <CIA-46> ffmpeg: libmp3lame: It appears the buffer used is a bit too small.
[22:07] <CIA-46> ffmpeg: Increase it by an arbitrary amount.
[22:07] <CIA-46> ffmpeg: Fixes part of Ticket676
[22:07] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[22:07] <CIA-46> ffmpeg: 03Michael Niedermayer 07master * rbc11580007 10ffmpeg/libswscale/swscale.c: 
[22:07] <CIA-46> ffmpeg: sws: Remove unneeded YUV cliping from yuv2rgb_X_c_template()
[22:07] <CIA-46> ffmpeg: This should slightly improve speed.
[22:07] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[22:07] <CIA-46> ffmpeg: 03Michael Niedermayer 07master * rba6e36f906 10ffmpeg/libswscale/utils.c: 
[22:07] <CIA-46> ffmpeg: swscale: Force full horizontal chroma internally when the output has a odd size.
[22:08] <CIA-46> ffmpeg: This fixes a gray line on the right side due to 1 column of pixels being skiped.
[22:08] <CIA-46> ffmpeg: Fixes Ticket891
[22:08] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[22:44] <CIA-46> ffmpeg: 03Michael Niedermayer 07master * r5387f9917f 10ffmpeg/libavcodec/x86/cabac.h: 
[22:44] <CIA-46> ffmpeg: cabac: Try to disable problematic ASM for gcc-llvm 4.2.1
[22:44] <CIA-46> ffmpeg: This should fix compilation with gcc-llvm (see darwin fate box)
[22:44] <CIA-46> ffmpeg: Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
[22:48] <pasteeater> michaelni: lol @ "Invitation to the Unity in Diversity MJ & Bob Marley Classic Karaoke Show" spam
[23:02] <mbradshaw> Hi, I'm the maintainer for the libopenjpeg encoder, and I'm rather new to git.  Last time I tried to apply a patch submitted by someone I apparently didn't do it right because it put me as the author of the patch rather than the one who submitted it when I committed the changes.  Another patch has been submitted to me, and it's close to being accepted, but I'd like to do it right this time when I apply it.
[23:02] <mbradshaw> is there anyone who would be willing to walk me through this?
[23:04] <Compn> i would, but i dont know git stuff that much :)
[23:04] <Compn> someone here will help, but you may also find help in the #git channel
[23:04] <durandal_1707> git commit --author="John Doe <john at doe.com>"
[23:06] <mbradshaw> Ah, I see durandal, thanks.  Last time I just did git apply somepatch.patch and then git commit.  I'll add the author next time like that!
[23:06] <durandal_1707> michaelni: if patch is from git format-patch you can use "git ammend"
[23:06] <durandal_1707> ooops
[23:06] <durandal_1707> i mean mbradshaw 
[23:07] <durandal_1707> actually correct command is "git am"
[23:08] <durandal_1707> i have some hany aliases in my ~/.gitconfig
[23:08] <durandal_1707> s/hany/handy
[23:09] <mbradshaw> durandal_1707: thanks.  So it would be git am somepatch.patch followed by git commit --author="Name <email at address.com>", correct?
[23:09] <durandal_1707> mbradshaw: no
[23:09] <iive> mbradshaw: is the patch git formatted, or just regular unified diff?
[23:09] <durandal_1707> if patch is made with git format-patch you do not need to do anything, just to git am
[23:10] <durandal_1707> assuming submitter have git configured correctly (real name and no root at hostname)
[23:11] <durandal_1707> i you did something wrong you can rebase and edit/reword/fix commit
[23:11] <mbradshaw> @iive: the patch is sometimes formatted with git format-patch, and sometimes it's just a diff.  Last time it was a git formatted patch
[23:14] <durandal_1707> michaelni: is it possible/allowed to add metadata from codec? codec in question is tiff.
[23:16] <mbradshaw> Thanks everyone.  I'll probably be back with more questions in the near future.
[23:29] <michaelni> durandal_1707, this isnt supported yet, justin wanted to add metadata support to AVFrames though
[23:34] <durandal_1707> michaelni: is #902 going to be closed and patch commited or this needs more work?
[23:36] <michaelni> durandal_1707, i had a more generic fix for this
[23:36] <michaelni> i mean detecting in reget_buffer()
[23:59] <CIA-46> ffmpeg: 03Carl Eugen Hoyos 07master * r4093d130d1 10ffmpeg/libavcodec/libopenjpegenc.c: 
[23:59] <CIA-46> ffmpeg: Support encoding RGB48 with libopenjpeg.
[23:59] <CIA-46> ffmpeg: Reviewed-by: Michael Bradshaw
[00:00] --- Thu Jan 12 2012

More information about the Ffmpeg-devel-irc mailing list