On Mar 8, 2012, at 02:50 , Carl Eugen Hoyos wrote: > Kalileo <kalileo@...> writes: > >> I tested it now with >> >> ./configure --cc=clang >> and with >> ./configure --cc=clang --disable-optimizations --disable-asm >> --disable-yasm --enable-shared > > Please also test ./configure --cc=clang && make
I tried that, but then I cannot link the application, the linker reports errors referencing _kCVPixelBufferIOSurfacePropertiesKey and a lot of other stuff with is in libavcodec/vda.c. These linker errors do not occur when I add "--enable-shared". Thus, instead of ./configure --cc=clang && make I had to use ./configure --cc=clang --enable-shared && make recompiling and linking the application using the so created ffmpeg libraries shows the same errors when decoding aac or mp2/mp3 on OS X Lion. > and please > provide complete, uncut console output for the failing case. there are only the error messages form aac (if the file has aac audio) or mp2/mp3 (if the file has mp2/mp3 audio. > > If the problem is not reproducible with ffmpeg (the application) > it would be nice if you would mention that. in order to reproduce the problem with ffmpeg I tried playing the files with ffplay, which works perfectly, also on OS X Lion. In order to run the files though ffmpeg I had ffmpeg converting the files, which works, and the resulting files play fine in ffplay. Example with -v debug shows no errors. Here is the complete and uncut console output of one such conversions: $ /usr/local/bin/ffmpeg -v debug -f mpegts -i test-0.ts -vcodec copy -acodec aac -strict experimental test-0.mp4 ffmpeg version 0.9.1.git-1eabd71 Copyright (c) 2000-2012 the FFmpeg developers built on Mar 8 2012 01:05:54 with clang 2.1 (tags/Apple/clang-163.7.1) configuration: --cc=clang --disable-optimizations --disable-asm --disable-yasm --enable-shared libavutil 51. 42.100 / 51. 42.100 libavcodec 54. 10.100 / 54. 10.100 libavformat 54. 2.100 / 54. 2.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 63.100 / 2. 63.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 7.100 / 0. 7.100 [mpegts @ 0x7fd9c403d800] stream=0 stream_type=1b pid=100 prog_reg_desc= [mpegts @ 0x7fd9c403d800] stream=1 stream_type=3 pid=101 prog_reg_desc= [mpegts @ 0x7fd9c403d800] max_analyze_duration 5000000 reached at 5000000 Input #0, mpegts, from 'test-0.ts': Duration: 00:02:15.96, start: 9479.567267, bitrate: 1136 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100], 127, 1/90000: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 1/50, 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x101], 209, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, 2 channels, s16, 128 kb/s Incompatible sample format 's16' for codec 'aac', auto-selecting format 'flt' Output #0, mp4, to 'test-0.mp4': Metadata: encoder : Lavf54.2.100 Stream #0:0, 0, 1/90000: Video: h264 (![0][0][0] / 0x0021), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 1/90000, q=2-31, 25 fps, 90k tbn, 90k tbc Stream #0:1, 0, 1/48000: Audio: aac (@[0][0][0] / 0x0040), 48000 Hz, 2 channels, flt, 128 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (mp2 -> aac) Press [q] to stop, [?] for help frame= 3400 fps=431 q=-1.0 Lsize= 17030kB time=00:02:15.96 bitrate=1026.1kbits/s video:14938kB audio:2016kB global headers:0kB muxing overhead 0.449123% ======= After all this testing I think that the problem might be in the way I allocate the buffer for the audio decoding. I remember that that was always a big hassle with the memory alignment, but now with avcodec_decode_audio4() that is all done in avcodec_alloc_frame(). Here are some code snippets (as said, works perfectly under windows). … the frame pointer: AVFrame *decoded_frame = NULL; … and then in a loop: if (!decoded_frame) { if (!(decoded_frame = avcodec_alloc_frame())) return -1; } else { avcodec_get_frame_defaults(decoded_frame); // reuse the already allocated frame } len1 = avcodec_decode_audio4(pAudioCodecCtx, decoded_frame, &got_frame, &pkt1); … process decoded frame if (decoded_frame) av_free(decoded_frame); … end of loop Could there be something special to do under OS X Lion, or might avcodec_alloc_frame() behave differently due to the fact that wee have to use a different compiler with Lion (--cc=clang)? _______________________________________________ Libav-user mailing list Libav-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/libav-user