saloromer / ffmbc

Automatically exported from code.google.com/p/ffmbc
0 stars 0 forks source link

ffmbc 0.6rc1 -timecode and -timecode_frame_start in the same command ine #24

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
This command fails with the error:

[NULL @ 0x96517a0] [Eval @ 0xbfead87c] Undefined constant or missing '(' in 'F'
[NULL @ 0x96517a0] Unable to parse option value "F"

ffmbc \
 -y -loglevel debug \
 -shortest \
 -ar 48000 -ac 1 -f s16le -i /dev/zero \
 -i combined.mov \
 -aspect 16:9 -pix_fmt yuv422p -r 25 \
 -vf pad=720:608:0:32:black \
 -vcodec mpeg2video \
 -flags +ildct+low_delay -flags2 +ivlc+non_linear_q \
 -rc_min_vbv_use 1 -rc_max_vbv_use 1 \
 -qscale 1 -qmin 1 -ps 1 \
 -minrate 30000k -maxrate 30000k -b 30000k \
 -bufsize 1200000 -rc_init_occupancy 1200000 \
 -top 1 -dc 10 -intra \
 -acodec pcm_s16le -ar 48000 -ac 4 \
 -map_audio_channel 0:0:0:0:1:0 -map_audio_channel 0:0:0:0:1:1 \
 -map_audio_channel 0:0:0:0:1:2 -map_audio_channel 0:0:0:0:1:3 \
 -f mxf_d10 \
 -timecode 09:59:59:00 \
 -timecode_frame_start 899975 \
  combined.mxf

If I remove either -timecode OR -timecode_frame_start the command executes.

Original issue reported on code.google.com by mark.him...@gmail.com on 21 Feb 2011 at 12:27

GoogleCodeExporter commented 8 years ago
Still got the same error on 0.6-rc2.

Same results with both static and dynamic builds on Ubuntu 10.04 LTS, dynamic 
build on OS-X, and static build for Win32. Examples of all three below.

From some of the failures we're getting, it looks like command line parsing is 
very fragile in FFmbc 0.6.

$ ~/src/ffmbc/FFmbc-0.6-rc2/ffmbc \
-y -loglevel debug \
-i Clock10tone.mov \
-vf pad=720:608:0:32:black \
-target imx30 \
-timecode 09:59:59:00 \
-timecode_frame_start 899975 \
Clock10tone.mxf
FFmpeg version FFmbc-0.6-rc2, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar  1 2011 15:36:35 with gcc 4.4.3
  configuration: --cpu=i686 --enable-static --extra-cflags='--static -I$PREFIX/include' --extra-libs='-static -L$PREFIX/lib' --prefix= --enable-ffplay --enable-ffprobe --enable-ffserver --enable-gpl --enable-nonfree --enable-pthreads --enable-x11grab --enable-libxvid --enable-libvorbis --enable-libopenjpeg --enable-libspeex --enable-libtheora --enable-libfaac --enable-libgsm --enable-libdirac --enable-libmp3lame --enable-libx264 --enable-libschroedinger --enable-libvpx
  libavutil    50. 37. 0 / 50. 37. 0
  libavcore     0. 16. 1 /  0. 16. 1
  libavcodec   52.112. 1 / 52.112. 1
  libavformat  52. 99. 0 / 52. 99. 0
  libavdevice  52.  2. 3 / 52.  2. 3
  libavfilter   1. 76. 0 /  1. 76. 0
  libswscale    0. 12. 0 /  0. 12. 0
[NULL @ 0xa7108a0] Probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xa7108a0] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xa7108a0] All info found
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Clock10tone.mov':
  Metadata:
    major_brand: qt
    minor_version: 537199360
    compatible_brands: qt
    creation_time: 2009-07-16 17:23:31
  Duration: 00:00:10.00, start: 0.000000, bitrate: 30334 kb/s
    Stream #0.0(eng), 1, 1/25: Video: dvvideo, yuv420p, 720x576p [PAR 64:45 DAR 16:9], 28800 kb/s, tbc 1/25, tbr 25/1, 25.000 fps
    Stream #0.1(eng), 0, 1/48000: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Assuming PAL for target.
[NULL @ 0xa717620] [Eval @ 0xbf85fbfc] Undefined constant or missing '(' in ''
[NULL @ 0xa717620] Unable to parse option value ""

$ ~/Desktop/FFmbc-0.6-rc2/ffmbc -y -loglevel debug -i Clock10tone.mov -vf 
pad=720:608:0:32:black -target imx30 -timecode 09:59:59:00 
-timecode_frame_start 89975 Clock10tone.mxf
FFmpeg version FFmbc-0.6-rc2, Copyright (c) 2000-2011 the FFmpeg developers
  built on Feb 23 2011 22:50:32 with gcc 4.0.1 (Apple Inc. build 5490)
  configuration: --extra-cflags='-I$PREFIX/include -I/opt/local/include' --extra-libs='-L$PREFIX/lib -L/opt/local/lib -mmacosx-version-min=10.5' --prefix=/usr/local --enable-ffplay --enable-ffprobe --enable-ffserver --enable-shared --disable-indev=jack --cc=gcc-4.0 --enable-gpl --enable-nonfree --enable-pthreads --enable-libxvid --enable-libvorbis --enable-libspeex --enable-libtheora --enable-libfaac --enable-libdirac --enable-libmp3lame --enable-libx264 --enable-libschroedinger --enable-libvpx
  libavutil    50. 37. 0 / 50. 37. 0
  libavcore     0. 16. 1 /  0. 16. 1
  libavcodec   52.112. 1 / 52.112. 1
  libavformat  52. 99. 0 / 52. 99. 0
  libavdevice  52.  2. 3 / 52.  2. 3
  libavfilter   1. 76. 0 /  1. 76. 0
  libswscale    0. 12. 0 /  0. 12. 0
[NULL @ 0x2001000] Probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x2001000] ISO: File Type Major Brand: qt  
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x2001000] All info found
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Clock10tone.mov':
  Metadata:
    major_brand: qt  
    minor_version: 537199360
    compatible_brands: qt  
    creation_time: 2009-07-16 17:23:31
  Duration: 00:00:10.00, start: 0.000000, bitrate: 30334 kb/s
    Stream #0.0(eng), 1, 1/25: Video: dvvideo, yuv420p, 720x576p [PAR 64:45 DAR 16:9], 28800 kb/s, tbc 1/25, tbr 25/1, 25.000 fps
    Stream #0.1(eng), 0, 1/48000: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Assuming PAL for target.
[NULL @ 0x2002600] [Eval @ 0xbfffe158] Undefined constant or missing '(' in '='
[NULL @ 0x2002600] Unable to parse option value "="

D:\ffmbc -y -loglevel debug -i Clock10tone.mov -vf pad=720:608:0:32:black 
-target imx30 -timecode 09:59:59:00 -timecode_frame_start 899975 Clock10tone.mxf
FFmpeg version FFmbc-0.6-rc2, Copyright (c) 2000-2011 the FFmpeg developers
  built on Feb 23 2011 07:25:07 with gcc 4.2.1-sjlj (mingw32-2)
  configuration: --cpu=i686 --arch=i686 --prefix=/usr/local/i586-mingw32msvc --target-os=mingw32 --enable-memalign-hack --cross-pr
efix=i586-mingw32msvc- --extra-cflags='--static -I $PREFIX/include 
-D_WIN32_WINNT=0x0501' --extra-ldflags='-static -L $PREFIX/lib'
 --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-static --disable-shared --enable-libdirac --enable-lib
faac --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libspeex 
--enable-libtheora --enable-libvorbis --enable-lib
xvid --enable-libschroedinger --enable-libx264 --enable-libvpx
  libavutil    50. 37. 0 / 50. 37. 0
  libavcore     0. 16. 1 /  0. 16. 1
  libavcodec   52.112. 1 / 52.112. 1
  libavformat  52. 99. 0 / 52. 99. 0
  libavdevice  52.  2. 3 / 52.  2. 3
  libavfilter   1. 76. 0 /  1. 76. 0
  libswscale    0. 12. 0 /  0. 12. 0
[NULL @ 0x1d72a40] Probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1d72a40] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1d72a40] All info found
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Clock10tone.mov':
  Metadata:
    major_brand: qt
    minor_version: 537199360
    compatible_brands: qt
    creation_time: 2009-07-16 17:23:31
  Duration: 00:00:10.00, start: 0.000000, bitrate: 30334 kb/s
    Stream #0.0(eng), 1, 1/25: Video: dvvideo, yuv420p, 720x576p [PAR 64:45 DAR 16:9], 28800 kb/s, tbc 1/25, tbr 25/1, 25.000 fps
    Stream #0.1(eng), 0, 1/48000: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Assuming PAL for target.
[NULL @ 0x1d76300] [Eval @ 0x22e960] Undefined constant or missing '(' in 
't┬wÄ'
[NULL @ 0x1d76300] Unable to parse option value "tÃ┬wÄùÆ"

Original comment by mark.him...@gmail.com on 1 Mar 2011 at 4:04

GoogleCodeExporter commented 8 years ago
A colleague has run valgrind over that CLI a few times with running a dynamic 
build of ffmbc-0.6-rc2 with symbols.

He says "I did notice that you get slightly different output when run without 
redirecting and with, and this error, or round here, seems to be the point of 
inflection and also rather more serious looking than a lot of the others:

[NULL @ 0x4a46750] [Eval @ 0xbebe1dac] Undefined constant or missing '(' in '^N'
==17458== Conditional jump or move depends on uninitialised value(s)
==17458==    at 0x4027AE8: __strcpy_chk (mc_replace_strmem.c:757)
==17458==    by 0x85E1B7E: av_log (log.c:143)
==17458==    by 0x85E01AB: parse_primary (eval.c:218)
==17458==    by 0x85E05A2: parse_factor (eval.c:323)

I've also tried running the CLI without the -loglevel debug, and you get a 
similar sort of barf, but with a different stack:

[NULL @ 0x4a46750] Unable to parse option value "^L"
==17674== Conditional jump or move depends on uninitialised value(s)
==17674==    at 0x4027AE8: __strcpy_chk (mc_replace_strmem.c:757)
==17674==    by 0x85E1B7E: av_log (log.c:143)
==17674==    by 0x85E5BE4: av_set_string3 (opt.c:176)
==17674==    by 0x808DB63: set_context_opts (cmdutils.c:282)
==17674==    by 0x8083179: new_video_stream (ffmbc.c:3793)
==17674==    by 0x8084354: opt_output_file (ffmbc.c:4185)
==17674==    by 0x808E38C: parse_options (cmdutils.c:188)
==17674==    by 0x808B3E9: main (ffmbc.c:4857)

The second one looks a little more useful to me."

I have the complete outputs from the valgrind runs if that is more useful.

Original comment by mark.him...@gmail.com on 8 Mar 2011 at 1:00

GoogleCodeExporter commented 8 years ago
Fixed in 0.6-rc3

Original comment by baptiste...@gmail.com on 9 Mar 2011 at 2:53