View Issue Details

IDProjectCategoryView StatusLast Update
0025382Open CASCADEOCCT:Visualizationpublic2021-01-28 12:26
Reportersan Assigned Tokgv  
PriorityhighSeverityfeature 
Status closedResolutionfixed 
Target Version7.2.0Fixed in Version7.2.0 
Summary0025382: Visualization, TKOpenGl - improved video recording capability
DescriptionOpenGl_AVIWriter relies on Video for Windows (VFW) API which is obsolete and platform-specific.
Testing shows that only few video codecs can be used currently under Windows 7 (e.g. msvc, i420) and they produce unacceptable results (extremely low video quality or extremely large output file).

It is proposed to redesign this feature using some cross-platform video processing library (e.g. FFmpeg - http://www.ffmpeg.org).
Video recording should remain an optional feature (to be enabled/disabled at build environment level), as well as dependency on FFmpeg.

And it makes sense to provide high-level API to video recording (e.g. at V3d package level) and hide low-level implementation details.
Steps To Reproduce
test v3d anim propeller 1
vraytrace -1
vrenderparams -msaa 8
vrenderparams -fsaa 1
XProgress +g
vanimation anim -play -record propeller.mkv 1920 1080 -vcodec ffv1 -fps 30 -speed 0.1
TagsNo tags attached.
Test case numberv3d anim videorecorder

Relationships

parent of 0027961 closedapn Visualization - remove unused and no more working OpenGl_AVIWriter 
parent of 0029112 closedbugmaster Configuration, Image_VideoRecorder - compilation fails on Ubuntu with libavutil 54.x (FFmpeg 2.7.6) 
parent of 0032092 closedsmoskvin Visualization, TKService - Image_VideoRecorder writes garbage from Grayscale image 
related to 0025383 closedbugmaster Draw Harness - broken vrecord command 
related to 0025514 closedbugmaster TKernel, OSD_Timer - do not accumulate error in timer within queries in running state 
related to 0023028 closedbugmaster Visualization, TKOpenGl - eliminate global static variables 
related to 0027764 closedapn Visualization - add functionality for animation of 3D camera and interactive objects 
related to 0028312 closedapn Configuration, genproj.tcl - support CSF_ZLIB and CSF_LIBLZMA within project generator 

Activities

git

2014-10-28 09:36

administrator   ~0033753

Branch CR25382 has been created by kgv.

SHA-1: b32737ef00c9cb8d66dde815390d9bc47b53671c


Detailed log of new commits:

Author: kgv
Date: Tue Oct 28 09:35:22 2014 +0300

    0025382: Visualization, TKOpenGl - improved video recording capability
    
    OSD_Timer::ElapsedTime() - fix accumulation of the error.
    Provide new command vanimation for animation playline definition.

git

2014-11-03 15:37

administrator   ~0034008

Branch CR25382 has been updated forcibly by kgv.

SHA-1: b6b8990a69dfaa469ea259a36c51b6e227074b3c

git

2014-11-05 16:45

administrator   ~0034054

Branch CR25382 has been updated by kgv.

SHA-1: bece41e925f0d6848f5a21d67341f2a87845da93


Detailed log of new commits:

Author: kgv
Date: Wed Nov 5 16:28:50 2014 +0300

    add command vlogo

kgv

2015-01-13 12:24

developer   ~0036001

Dear Denis,

could you please propagate your local fixes for FFmpeg wrapper and animation commands to the branch CR25382?

git

2016-02-17 15:40

administrator   ~0050885

Branch CR25382_1 has been created by aba.

SHA-1: c8edf6b6678873c166365a1e5be9bf1d120bb54d


Detailed log of new commits:

Author: aba
Date: Mon Feb 15 15:15:01 2016 +0300

    Ported on current master.
    
    Removed vlogo command and logo layer item as unused.

Author: kgv
Date: Tue Oct 28 09:35:22 2014 +0300

    0025382: Visualization, TKOpenGl - improved video recording capability
    
    OSD_Timer::ElapsedTime() - fix accumulation of the error.
    Provide new command vanimation for animation playline definition.
    
    Extend vanimation command with video recorder
    
    * * *
    pload MODELING VISUALIZATION
    box b1 1 2 3
    vinit View1
    vclear
    vaxo
    vsetdispmode 1
    vdisplay b1
    vfit
    vsetlocation b1 0 1 0
    
    proc anim1 {thePts thePtsLoc theName} { vsetlocation b1 [expr sin($thePtsLoc)] cos($thePtsLoc)] 0 }
    vanim anim1 -reset -onRedraw anim1
    vanim anim -reset -addSlice 0.0 30.0 anim1
    vanim -play anim -playFps 30 -record test.mkv -recWidth 1920 -recHeight 1080
    
    Added command vlogo

git

2016-05-16 19:15

administrator   ~0054072

Branch CR25382_1 has been updated by aba.

SHA-1: c42dc8d83766c53d7698167ef55cf04512e612fa


Detailed log of new commits:

Author: aba
Date: Mon May 16 19:15:12 2016 +0300

    0025382: Visualization, TKOpenGl - improved video recording capability
    
    -Added TKMotion toolkit - it allows to perform animated elements
    -Added test case

git

2016-08-08 19:18

administrator   ~0056564

Branch CR25382_1 has been updated forcibly by aba.

SHA-1: 770cdb772b925fd2e18c52e9176cb482ea4484ec

git

2016-08-08 19:23

administrator   ~0056566

Branch CR25382_1 has been updated forcibly by aba.

SHA-1: a4fe47514b10b5120e397f78288fc1136aba0a73

git

2016-08-08 19:26

administrator   ~0056567

Branch CR25382_1 has been updated forcibly by aba.

SHA-1: 965827482659fbc2eb4589c51a14db5bd2ba5ed8

git

2016-08-08 20:26

administrator   ~0056571

Branch CR25382_1 has been updated by kgv.

SHA-1: a0fc698a74a87f88edef2994f926def61c0729de


Detailed log of new commits:

Author: kgv
Date: Mon Aug 8 20:25:54 2016 +0300

    fix building errors

git

2016-08-08 21:16

administrator   ~0056572

Branch CR25382_1 has been updated by kgv.

SHA-1: 06245798bdea4060b79d084e5668cbe7b46b9c27


Detailed log of new commits:

Author: kgv
Date: Mon Aug 8 21:15:55 2016 +0300

    cosmetics
    
    - Add empty line at end of file.
    - Use NCollection_Sequence::Iterator instead of indices.
    - Remove redundant includes.
    - Removed cyrillic symbols.

git

2016-08-08 21:23

administrator   ~0056574

Branch CR25382_1 has been updated forcibly by kgv.

SHA-1: b401297667ed1b43dedc3fb74a9c46b7a432a561

git

2016-08-08 21:27

administrator   ~0056575

Branch CR25382_1 has been updated by kgv.

SHA-1: ec6c3f6beb5c54bd4aa2de5aea9b4816b7b91606


Detailed log of new commits:

Author: kgv
Date: Mon Aug 8 21:26:54 2016 +0300

    vamination - fix double view update within SetCamera()

git

2016-08-08 21:42

administrator   ~0056576

Branch CR25382_1 has been updated by kgv.

SHA-1: 5ec0566a8eff10a487125513e2f40253d385d49e


Detailed log of new commits:

Author: kgv
Date: Mon Aug 8 21:42:23 2016 +0300

    adjust test cases

kgv

2016-08-08 21:53

developer   ~0056577

class Motion_BaseContainer : public Standard_Transient
NCollection_Handle<Motion_BaseContainer> myContainer;

Why NCollection_Handle is used here?

vanimation anAnim1 -play

Animation without FPS makes small sense.

Motion_AnimationTimeline::Start() does not suggest how this API can be used in real application. Start() is expected to draw a single frame and to start the timer, so that application will "Update()" when required to redraw the frame (by timer in GUI or by handling user input).

kgv

2016-08-08 21:54

developer   ~0056578

Documentation of critical functionality in the patch is just missing.

git

2016-08-09 18:29

administrator   ~0056598

Branch CR25382_1 has been updated by aba.

SHA-1: 6c78710208fc29d47fe4f0b4d8e183e5f3f35cdf


Detailed log of new commits:

Author: aba
Date: Tue Aug 9 18:30:54 2016 +0300

    1) Added documentation to all Motion classes
    
    2) Remarks

git

2016-08-09 21:32

administrator   ~0056599

Branch CR25382_1 has been updated by aba.

SHA-1: 120a486ff56d80b292a0b376af3efe9b90126af8


Detailed log of new commits:

Author: aba
Date: Tue Aug 9 21:34:10 2016 +0300

    1) Added fps option to vanimation command
    
    2) Motion_AnimationTimeline: added Update method to update one frame; Start methods evaluate timer and Update the first frame now

git

2016-08-10 09:10

administrator   ~0056600

Branch CR25382_1 has been updated by aba.

SHA-1: 7aff4c80500131ba37616670b34ce5e9ac19de35


Detailed log of new commits:

Author: aba
Date: Wed Aug 10 09:10:47 2016 +0300

    Moved graphic camera parameter and interpolator to separate files;
    
    corrected v3d motion scale testcase

git

2016-08-10 17:40

administrator   ~0056620

Branch CR25382_1 has been updated by aba.

SHA-1: 015224d8c88113bc7fd355618a9222e1b9b29060


Detailed log of new commits:

Author: aba
Date: Wed Aug 10 17:41:43 2016 +0300

    Remarks:
    
    1) Added Motion_AnimationState
    2) Corrected v3d/motion/fps test case
    3) Corrected Motion_AnimationTimeline::Update
    4) Updates vanimation test

git

2016-08-10 18:26

administrator   ~0056623

Branch CR25382_2 has been created by aba.

SHA-1: 12134a79e4c70edef8f0a5383fb1803a38a674c9


Detailed log of new commits:

Author: aba
Date: Mon Aug 8 19:28:05 2016 +0300

    0025382: Visualization, TKOpenGl - improved video recording capability
    
    -Added TKMotion toolkit - it allows to perform animated elements
    -Added vanimation test command and test cases into tests/v3d/motion.

git

2016-08-11 09:58

administrator   ~0056629

Branch CR25382_3 has been created by aba.

SHA-1: ec69140abcadd7f44072f0c55b96a46c6fd3b725


Detailed log of new commits:

Author: aba
Date: Thu Aug 11 09:58:34 2016 +0300

    0025382: Visualization, TKOpenGl - improved video recording capability:
    
    1) Added Motion_VideoRecorder class
    2) Added record option to vanimation command
    3) Added motion/record testcase

git

2016-08-11 11:31

administrator   ~0056636

Branch CR25382_3 has been updated forcibly by aba.

SHA-1: 3b4639d89ed2257ec00cee01fdecab8dc014119e

git

2016-08-12 16:15

administrator   ~0056687

Branch CR25382_3 has been updated forcibly by aba.

SHA-1: e1a8ab026882f88abb05fbb7728a1f1a9dfc7434

git

2016-10-15 17:10

administrator   ~0058759

Branch CR25382_3 has been updated forcibly by kgv.

SHA-1: acd90877e405fe0d056812c77b5181d2d57a6b7d

git

2016-10-29 19:13

administrator   ~0059621

Branch CR25382_4 has been created by kgv.

SHA-1: db0808175326f9faa7b99a3b32712e41dd3ce0dd


Detailed log of new commits:

Author: aba
Date: Sat Oct 29 19:12:19 2016 +0300

    0025382: Visualization, TKOpenGl - improved video recording capability
    
    Image_VideoRecorder - added new class for video recording using FFmpeg framework.
    Draw Harness command vanimation has been extended with new options for video recording.
    New optional dependency has been introduced - CSF_FFmpeg.

kgv

2016-10-29 19:15

developer   ~0059622

Patch is ready for review.

git

2016-10-31 12:16

administrator   ~0059626

Branch CR25382_4 has been updated forcibly by kgv.

SHA-1: 7055bf281a8e050ea1f4060af117c8ff425a7e98

git

2016-10-31 12:18

administrator   ~0059627

Branch CR25382_4 has been updated forcibly by kgv.

SHA-1: 6f9d30411e620ccbec4d088a47d148e047fff8d9

san

2016-10-31 12:51

developer   ~0059634

Branch CR25382_4 reviewed without remarks, ready for testing.

git

2016-10-31 14:02

administrator   ~0059635

Branch CR25382_4 has been updated forcibly by kgv.

SHA-1: 90a1a09a14c75d8a90b09f1c6097aaea0aa9f619

kgv

2016-10-31 14:03

developer   ~0059636

Last edited: 2016-10-31 14:04

The following pre-built FFmpeg libraries can be used for testing:
http://download.sview.ru/win/dependencies/ffmpeg-3.1-i686-w64-mingw32-4.9.2-lgpl.7z
http://download.sview.ru/win/dependencies/ffmpeg-3.1-x86_64-w64-mingw32-4.9.2-lgpl.7z
http://download.sview.ru/mac/dependencies/ffmpeg-3.1-osx-lgpl.tar.gz
http://download.sview.ru/apk/dependencies/ffmpeg-3.1-aarch64-linux-android-4.9.x-lgpl.7z
http://download.sview.ru/apk/dependencies/ffmpeg-3.1-arm-linux-androideabi-4.9.x-lgpl.7z

Builds by MinGW can be used for Visual Studio.
Test case is not needed.

git

2016-10-31 14:37

administrator   ~0059637

Branch CR25382_4 has been updated forcibly by kgv.

SHA-1: 1dec4bae32cca80eee5562052148183eda9c9ff7

kgv

2016-11-07 09:55

developer   ~0059911

Note, that new dependency is not expected to be enabled in official OCCT builds within nearest release.

git

2016-11-19 09:50

administrator   ~0060569

Branch CR25382_4 has been updated forcibly by kgv.

SHA-1: 6043937cf13429822f80517e29f3098803e29cc3

san

2016-12-01 19:34

developer   ~0060997

Now that 7.1.0 has been released, can you please proceed to testing and integration of this feature?

san

2017-02-02 15:51

developer   ~0063370

What is the status of this issue? The patch was ready more than 2 months ago...

git

2017-02-03 15:40

administrator   ~0063407

Branch CR25382_4 has been updated by apn.

SHA-1: 850616ae9b392c5ba316a24df015dd1f4ae4586d


Detailed log of new commits:

Author: apn
Date: Fri Feb 3 15:40:35 2017 +0300

    Corrections in CMake procedure

git

2017-02-07 19:23

administrator   ~0063508

Branch CR25382_4 has been updated forcibly by apn.

SHA-1: 23fcbbfa038829b31df9699bad91801ba8275dc8

git

2017-02-08 15:05

administrator   ~0063698

Branch CR25382_4 has been updated forcibly by apn.

SHA-1: dbbb0e9fe2828975c7aeddfefdb890d395c4e20b

git

2017-02-08 20:23

administrator   ~0063717

Branch CR25382_4 has been updated by apn.

SHA-1: 74fbcdd177b1f1366a3ceeff178c6fba53cc008b


Detailed log of new commits:

Author: apn
Date: Wed Feb 8 20:23:19 2017 +0300

    Modify ffmpeg.cmake for MacOS

apn

2017-02-09 11:33

administrator   ~0063723

There are following compilation errors:
win32 vc10/vc11/vc12/vc14
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_4/view/OCCT%20compile/job/CR25382_4_master-OCCT-Windows-32-VC14-opt-compile/1/parsed_console/
avutil.lib(dbqvbs00201.o) : error LNK2026: module unsafe for SAFESEH image.
\CR25382_4_master\Windows-32-VC14-opt\OCCT\build\win32\vc14\bin\TKService.dll : fatal error LNK1281: Unable to generate SAFESEH image.

win64 vc10/vc11
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_4/view/OCCT%20compile/job/CR25382_4_master-OCCT-Windows-64-VC10-opt-compile/1/parsed_console/
\occt-3rdparty\windows-64-vc10\ffmpeg-3.1-lgpl-64\include\libavutil\common.h(34): fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory

Linux (Debian70-64. Debian60-64, CentoOS60-64, etc)
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_4/view/OCCT%20compile/job/CR25382_4_master-OCCT-Debian70-64-opt-compile/1/parsed_console/
Building CXX object src/TKService/CMakeFiles/TKService.dir/__/Image/Image_VideoRecorder.cxx.o
In file included from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/avutil.h:288:0,
                 from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/samplefmt.h:24,
                 from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavcodec/avcodec.h:31,
                 from /dn54/builds/CR25382_4_master/Debian70-64-opt/OCCT/src/Image/Image_VideoRecorder.cxx:30:
/dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/common.h:30:2: error: #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

In file included from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/avutil.h:288:0,
                 from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/samplefmt.h:24,
                 from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavcodec/avcodec.h:31,
                 from /dn54/builds/CR25382_4_master/Debian70-64-opt/OCCT/src/Image/Image_VideoRecorder.cxx:30:
/dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/common.h: In function 'int32_t av_clipl_int32_c(int64_t)':
/dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/common.h:205:47: error: 'UINT64_C' was not declared in this scope

3rd-party used:
\\master\projects\occt-3rdparty\occt700products\ffmpeg-3.1-lgpl-32
\\master\projects\occt-3rdparty\occt700products\ffmpeg-3.1-lgpl-64
\\virtex\dn29\PRODUCTS\maintenance\opencascade-6.7.1\Debian70-64\ffmpeg-3.1
...
\\virtex\dn29\PRODUCTS\maintenance\opencascade-6.7.1\Debian60-64\ffmpeg-3.1

git

2017-04-17 12:34

administrator   ~0065255

Branch CR25382_5 has been created by kgv.

SHA-1: 6abbbf997d6227624698ca9c48807923966a6b31


Detailed log of new commits:

Author: aba
Date: Tue Feb 7 18:38:28 2017 +0300

    0025382: Visualization, TKOpenGl - improved video recording capability
    
    Image_VideoRecorder - added new class for video recording using FFmpeg framework.
    Draw Harness command vanimation has been extended with new options for video recording.
    New optional dependency has been introduced - CSF_FFmpeg.

git

2017-04-17 14:11

administrator   ~0065258

Branch CR25382_5 has been updated forcibly by kgv.

SHA-1: 556636941a38f7253ca9563180aeed3230bdedf0

git

2017-04-17 14:53

administrator   ~0065260

Branch CR25382_5 has been updated forcibly by kgv.

SHA-1: c70f569d7075f90bc43f3d05fdb4022257a85b9d

git

2017-04-17 15:00

administrator   ~0065261

Branch CR25382_5 has been updated forcibly by kgv.

SHA-1: 165f4c7e8acc173611af9f5268342443cf46f04f

git

2017-04-17 15:27

administrator   ~0065263

Branch CR25382_5 has been updated forcibly by kgv.

SHA-1: 32494b4dae7bb8a40d323792099bc1934322ea29

kgv

2017-04-17 19:30

developer   ~0065272

Please check updated patch.
Note the patch might require updates in CMake procedures since 0028335 (Configuration, Cmake - 3rdparty library names present in two places and aren't sync with each other).

\occt-3rdparty\windows-64-vc10\ffmpeg-3.1-lgpl-64\include\libavutil\common.h(34): fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory

This is a problem of msvc10, not OCCT - versions before msvc11 have not "inttypes.h" header file.
I have uploaded a fresh build ffmpeg-3.3-lgpl-32/ffmpeg-3.3-lgpl-64 with workaround applied in FFmpeg headers (just comment #include <inttypes.h>).

 /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/common.h:30:2: error: #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

Should be fixed now.

git

2017-04-26 20:08

administrator   ~0065583

Branch CR25382_5 has been updated forcibly by apn.

SHA-1: e353250577102da3860eaa99ecebeaf1fd445bbd

git

2017-05-16 16:52

administrator   ~0066155

Branch CR25382_5 has been updated forcibly by kgv.

SHA-1: 6a6331a6b2c4661e533a56b66d89ed8830f3bfb4

git

2017-05-16 18:01

administrator   ~0066157

Branch CR25382_5 has been updated forcibly by kgv.

SHA-1: 411ae1b4428e6530d7737e5dd972220a0a4ac5a2

kgv

2017-05-16 18:26

developer   ~0066161

CMake compilation has been checked and updated.
Please test the patch.

git

2017-07-03 08:51

administrator   ~0067920

Branch CR25382_5 has been updated forcibly by kgv.

SHA-1: 1b96c9ce904bed53eef46b726a04333871c6cdf4

git

2017-07-24 19:01

administrator   ~0068649

Branch CR25382_5 has been updated forcibly by apn.

SHA-1: 537e8abb0cf076d5bfd814aa9b9029824b2efb4c

git

2017-07-24 20:43

administrator   ~0068653

Branch CR25382_5 has been updated by apn.

SHA-1: 90eec065dd0f2f0699b8674dbe0c69368e5d1afc


Detailed log of new commits:

Author: apn
Date: Mon Jul 24 20:43:25 2017 +0300

    Add environment variables for ffmpeg (cmake configuration)

apn

2017-07-25 12:46

administrator   ~0068664

There are following compile errors:

CentOS64-64, Debian60-64, Debian70-64,:
In file included from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/avutil.h:288:0,
                 from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/samplefmt.h:24,
                 from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavcodec/avcodec.h:31,
                 from /dn54/builds/CR25382_5_master/Debian70-64-opt/OCCT/build/src/TKService/cotire/TKService_CXX_prefix.cxx:33,
                 from /dn54/builds/CR25382_5_master/Debian70-64-opt/OCCT/build/src/TKService/cotire/TKService_CXX_prefix.hxx:4:
/dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/common.h:30:2: error: #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

In file included from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/avutil.h:288:0,
                 from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/samplefmt.h:24,
                 from /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavcodec/avcodec.h:31,
                 from /dn54/builds/CR25382_5_master/Debian70-64-opt/OCCT/build/src/TKService/cotire/TKService_CXX_prefix.cxx:33,
                 from /dn54/builds/CR25382_5_master/Debian70-64-opt/OCCT/build/src/TKService/cotire/TKService_CXX_prefix.hxx:4:
/dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/common.h: In function 'int32_t av_clipl_int32_c(int64_t)':
/dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/common.h:205:47: error: 'UINT64_C' was not declared in this scope

Debian80-64, CentOS73-64, Fedora22-64, Fedora24-64, Ubuntu1604-64, MacOS:
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_dict_free(AVDictionary**)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_strerror(int, char*, unsigned long)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_image_alloc(unsigned char**, int*, int, int, AVPixelFormat, int)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avcodec_find_encoder_by_name(char const*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_frame_free(AVFrame**)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_interleaved_write_frame(AVFormatContext*, AVPacket*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `sws_scale(SwsContext*, unsigned char const* const*, int const*, int, int, unsigned char* const*, int const*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `sws_getContext(int, int, AVPixelFormat, int, int, AVPixelFormat, int, SwsFilter*, SwsFilter*, double const*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_init_packet(AVPacket*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avio_close(AVIOContext*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_register_all()'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_rescale_q_rnd(long, AVRational, AVRational, AVRounding)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_frame_alloc()'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avio_open(AVIOContext**, char const*, int)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avcodec_find_encoder(AVCodecID)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_rescale_q(long, AVRational, AVRational)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `sws_freeContext(SwsContext*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avformat_alloc_output_context2(AVFormatContext**, AVOutputFormat*, char const*, char const*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avformat_new_stream(AVFormatContext*, AVCodec const*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avcodec_close(AVCodecContext*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avformat_write_header(AVFormatContext*, AVDictionary**)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avcodec_get_name(AVCodecID)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_dict_set(AVDictionary**, char const*, char const*, int)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avformat_free_context(AVFormatContext*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avcodec_encode_video2(AVCodecContext*, AVPacket*, AVFrame const*, int*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `avcodec_open2(AVCodecContext*, AVCodec const*, AVDictionary**)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_free(void*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_write_trailer(AVFormatContext*)'
../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_get_pix_fmt(char const*)'
collect2: error: ld returned 1 exit status

Windows64-vc11, Windows32-vc11:
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-Windows-64-VC11-opt-compile/3/parsed_console/
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-Windows-32-VC11-opt-compile/3/parsed_console/

git

2017-07-25 15:57

administrator   ~0068680

Branch CR25382_5 has been updated by kgv.

SHA-1: c30198da715ced7e1175d6d777503af07752670a


Detailed log of new commits:

Author: kgv
Date: Tue Jul 25 15:57:34 2017 +0300

    # occt_toolit.cmake - define also __STDC_CONSTANT_MACROS for PCH when using gcc

kgv

2017-07-25 16:03

developer   ~0068681

> CentOS64-64, Debian60-64, Debian70-64,:
> /dn29/PRODUCTS/maintenance/opencascade-6.7.1/Debian70-64/ffmpeg-3.1/include/libavutil/common.h:30:2: error: #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
This is PCH-specific issue. I have pushed commit that should fix it.

> Debian80-64, CentOS73-64, Fedora22-64, Fedora24-64, Ubuntu1604-64, MacOS:
> ../../lin64/gcc/lib/libTKService.so.7.1.1: undefined reference to `av_dict_free(AVDictionary**)'
Please check why CMake does not add FFmpeg libraries to dependency list
defined by adm/cmake/occt_csf.cmake:
+if (USE_FFMPEG)
+  set (CSF_FFmpeg "avcodec avformat swscale avutil")


It seems that FFmpeg should be also added to OpenCASCADEConfig.cmake.in.

> Windows64-vc11, Windows32-vc11:
> http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-Windows-64-VC11-opt-compile/3/parsed_console/
> http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-Windows-32-VC11-opt-compile/3/parsed_console/
I have no idea what is wrong with vc11 - there is nothing in log pointing onto modified code.
Please check if it occurs only on this branch and if FFmpeg enabling/disabling affects the issue.

git

2017-07-26 16:22

administrator   ~0068733

Branch CR25382_5 has been updated by apn.

SHA-1: 47c2486e611b0f4551178005229d5bbcf0e06d08


Detailed log of new commits:

Author: apn
Date: Wed Jul 26 16:22:05 2017 +0300

    USE_FFMPEG was added to OpenCASCADEConfig.cmake.in.

apn

2017-07-26 16:24

administrator   ~0068734

Previous errors on Windows64/32-vc11 and with ffmpeg dependency were fixed after restart build (i dont know why).

There are new warnings on Linux:
CentOS64-64 (18 warnings):
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-CentOS64-64-opt-compile/5/warnings21Result/package.501966793/

CentOS73-64, Debian70-64, Debian80-64, Fedora22-64, etc (11 warnings):
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-CentOS73-64-opt-compile/5/warnings21Result/
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-Debian70-64-opt-compile/7/warnings21Result/

MacOS (1 warning):
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-MacOS-opt-compile/5/warnings9Result/

git

2017-07-26 16:42

administrator   ~0068741

Branch CR25382_5 has been updated by kgv.

SHA-1: 890c3e1dcb5e271916763488743d6c889a5f2854


Detailed log of new commits:

Author: kgv
Date: Wed Jul 26 16:42:36 2017 +0300

    # Fix structure NULLifying.

kgv

2017-07-26 16:43

developer   ~0068742

Please try compilation of updated patch (re-testing is not needed).

apn

2017-07-26 18:04

administrator   ~0068746

Warnings remained on following platforms:
CentOS64-64
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-CentOS64-64-opt-compile/6/warnings21Result/new/
CentOS73-64
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-CentOS73-64-opt-compile/6/warnings21Result/new/
Debian70-64
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-Debian70-64-deb-compile/6/warnings21Result/new/
Debian80-64
http://jenkins-test-08.nnov.opencascade.com/view/CR25382_5_master/view/OCCT%20compile/job/CR25382_5_master-OCCT-Debian80-64-opt-compile/7/warnings21Result/new/

git

2017-07-26 18:13

administrator   ~0068747

Branch CR25382_5 has been updated by kgv.

SHA-1: 749994f94c65dd8c9945eec9a02cede151efbb09


Detailed log of new commits:

Author: kgv
Date: Wed Jul 26 18:13:51 2017 +0300

    # shut up gcc

kgv

2017-07-26 18:14

developer   ~0068748

Please try updated patch.

git

2017-07-27 12:53

administrator   ~0068784

Branch CR25382_5 has been updated by apn.

SHA-1: 32cdb09de1dc64fc9a935a96afc76f7d7f58bb07


Detailed log of new commits:

Author: apn
Date: Thu Jul 27 12:53:00 2017 +0300

    # Added test case v3d/anim/videorecorder

apn

2017-07-27 13:03

administrator   ~0068785

Dear BugMaster,

Branch CR25382_5 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 749994f94c65dd8c9945eec9a02cede151efbb09

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)

Regressions/Differences:
Not detected

Testing cases:
v3d anim videorecorder - OK
http://occt-tests/CR25382_wnt_occt_test/v3d/anim/videorecorder.html

Testing on Linux:
Total MEMORY difference: 93197467 / 92052017 [+1.24%]
Total CPU difference: 19280.95000000041 / 19421.550000000127 [-0.72%]

Testing on Windows:
Total MEMORY difference: 59117245 / 59120758 [-0.01%]
Total CPU difference: 18057.958155398846 / 17810.05696629893 [+1.39%]

git

2017-07-28 17:03

administrator   ~0068847

Branch CR25382_5 has been updated forcibly by apn.

SHA-1: 07e8524e4707a0dae7f029a42734889e8af60579

git

2017-07-31 17:37

administrator   ~0068923

Branch CR25382_6 has been created by kgv.

SHA-1: 08f8a1854d7bafc7b758d4ae0394fc3ef2b9fb46


Detailed log of new commits:

Author: kgv
Date: Mon Apr 17 15:27:45 2017 +0300

    0025382: Visualization, TKOpenGl - improved video recording capability
    
    Image_VideoRecorder - added new class for video recording using FFmpeg framework.
    Draw Harness command vanimation has been extended with new options for video recording.
    New optional dependency has been introduced - CSF_FFmpeg.

git

2017-08-18 17:00

administrator   ~0069599

Branch CR25382 has been deleted by kgv.

SHA-1: bece41e925f0d6848f5a21d67341f2a87845da93

git

2017-08-18 17:00

administrator   ~0069600

Branch CR25382_1 has been deleted by kgv.

SHA-1: 015224d8c88113bc7fd355618a9222e1b9b29060

git

2017-08-18 17:00

administrator   ~0069601

Branch CR25382_2 has been deleted by kgv.

SHA-1: 12134a79e4c70edef8f0a5383fb1803a38a674c9

git

2017-08-18 17:00

administrator   ~0069602

Branch CR25382_3 has been deleted by kgv.

SHA-1: acd90877e405fe0d056812c77b5181d2d57a6b7d

git

2017-08-18 17:00

administrator   ~0069603

Branch CR25382_4 has been deleted by kgv.

SHA-1: 74fbcdd177b1f1366a3ceeff178c6fba53cc008b

git

2017-08-18 17:00

administrator   ~0069604

Branch CR25382_5 has been deleted by kgv.

SHA-1: 07e8524e4707a0dae7f029a42734889e8af60579

git

2017-08-18 17:00

administrator   ~0069605

Branch CR25382_6 has been deleted by kgv.

SHA-1: 08f8a1854d7bafc7b758d4ae0394fc3ef2b9fb46

Related Changesets

occt: master 08f8a185

2017-04-17 12:27:45

kgv

Details Diff
0025382: Visualization, TKOpenGl - improved video recording capability

Image_VideoRecorder - added new class for video recording using FFmpeg framework.
Draw Harness command vanimation has been extended with new options for video recording.
New optional dependency has been introduced - CSF_FFmpeg.
Affected Issues
0025382
add - adm/cmake/ffmpeg.cmake Diff File
mod - adm/cmake/occt_csf.cmake Diff File
mod - adm/cmake/occt_toolkit.cmake Diff File
mod - adm/cmake/vardescr.cmake Diff File
mod - adm/genconfdeps.tcl Diff File
mod - adm/templates/custom.build.bat.in Diff File
mod - adm/templates/custom.build.sh.in Diff File
mod - adm/templates/custom.install.bat.in Diff File
mod - adm/templates/custom.install.sh.in Diff File
mod - adm/templates/env.bat.in Diff File
mod - adm/templates/env.sh.in Diff File
mod - adm/templates/OpenCASCADEConfig.cmake.in Diff File
mod - CMakeLists.txt Diff File
mod - dox/overview/overview.md Diff File
mod - genconf Diff File
mod - src/Draw/Draw_BasicCommands.cxx Diff File
mod - src/Image/FILES Diff File
add - src/Image/Image_VideoRecorder.cxx Diff File
add - src/Image/Image_VideoRecorder.hxx Diff File
mod - src/TKService/EXTERNLIB Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
add - tests/v3d/anim/videorecorder Diff File

Issue History

Date Modified Username Field Change
2014-10-15 17:09 san New Issue
2014-10-15 17:09 san Assigned To => kgv
2014-10-15 17:10 san Priority normal => low
2014-10-15 17:26 san Relationship added related to 0025383
2014-10-28 09:36 git Note Added: 0033753
2014-11-03 15:37 git Note Added: 0034008
2014-11-05 16:45 git Note Added: 0034054
2014-11-24 22:37 kgv Relationship added related to 0025514
2015-01-13 12:24 kgv Note Added: 0036001
2015-01-13 12:24 kgv Assigned To kgv => dbp
2015-01-13 12:24 kgv Status new => feedback
2015-03-31 14:53 kgv Relationship added related to 0023028
2015-12-01 10:06 kgv Assigned To dbp => kgv
2015-12-01 10:06 kgv Status feedback => assigned
2016-02-15 12:11 kgv Assigned To kgv => aba
2016-02-17 15:40 git Note Added: 0050885
2016-05-16 19:15 git Note Added: 0054072
2016-08-08 19:18 git Note Added: 0056564
2016-08-08 19:23 git Note Added: 0056566
2016-08-08 19:26 git Note Added: 0056567
2016-08-08 20:26 git Note Added: 0056571
2016-08-08 21:16 git Note Added: 0056572
2016-08-08 21:23 git Note Added: 0056574
2016-08-08 21:27 git Note Added: 0056575
2016-08-08 21:42 git Note Added: 0056576
2016-08-08 21:53 kgv Note Added: 0056577
2016-08-08 21:54 kgv Note Added: 0056578
2016-08-09 18:29 git Note Added: 0056598
2016-08-09 21:32 git Note Added: 0056599
2016-08-10 09:10 git Note Added: 0056600
2016-08-10 17:40 git Note Added: 0056620
2016-08-10 18:26 git Note Added: 0056623
2016-08-11 08:11 aba Relationship added related to 0027764
2016-08-11 09:58 git Note Added: 0056629
2016-08-11 11:31 git Note Added: 0056636
2016-08-12 16:15 git Note Added: 0056687
2016-10-13 16:31 kgv Relationship added parent of 0027961
2016-10-15 17:10 git Note Added: 0058759
2016-10-29 19:13 git Note Added: 0059621
2016-10-29 19:15 kgv Steps to Reproduce Updated
2016-10-29 19:15 kgv Note Added: 0059622
2016-10-29 19:15 kgv Assigned To aba => san
2016-10-29 19:15 kgv Status assigned => resolved
2016-10-31 12:16 git Note Added: 0059626
2016-10-31 12:18 git Note Added: 0059627
2016-10-31 12:51 san Note Added: 0059634
2016-10-31 12:51 san Assigned To san => bugmaster
2016-10-31 12:51 san Status resolved => reviewed
2016-10-31 14:02 git Note Added: 0059635
2016-10-31 14:03 kgv Note Added: 0059636
2016-10-31 14:04 kgv Note Edited: 0059636
2016-10-31 14:37 git Note Added: 0059637
2016-11-07 09:55 kgv Note Added: 0059911
2016-11-07 09:55 kgv Priority low => normal
2016-11-07 12:52 kgv Target Version 7.1.0 => 7.2.0
2016-11-19 09:50 git Note Added: 0060569
2016-12-01 19:34 san Note Added: 0060997
2016-12-01 19:34 san Status reviewed => feedback
2016-12-14 10:58 apn Assigned To bugmaster => apn
2016-12-28 19:12 kgv Relationship added related to 0028312
2017-02-02 15:51 san Note Added: 0063370
2017-02-03 15:40 git Note Added: 0063407
2017-02-03 15:41 apn Status feedback => reviewed
2017-02-07 19:23 git Note Added: 0063508
2017-02-08 15:05 git Note Added: 0063698
2017-02-08 20:23 git Note Added: 0063717
2017-02-09 11:33 apn Note Added: 0063723
2017-02-09 11:34 apn Assigned To apn => kgv
2017-02-09 11:34 apn Status reviewed => assigned
2017-04-17 12:34 git Note Added: 0065255
2017-04-17 14:11 git Note Added: 0065258
2017-04-17 14:53 git Note Added: 0065260
2017-04-17 15:00 git Note Added: 0065261
2017-04-17 15:27 git Note Added: 0065263
2017-04-17 19:30 kgv Note Added: 0065272
2017-04-17 19:31 kgv Assigned To kgv => bugmaster
2017-04-17 19:31 kgv Status assigned => resolved
2017-04-17 19:31 kgv Status resolved => reviewed
2017-04-18 13:58 apv Assigned To bugmaster => apn
2017-04-26 14:05 kgv Priority normal => high
2017-04-26 20:08 git Note Added: 0065583
2017-05-16 16:52 git Note Added: 0066155
2017-05-16 18:01 git Note Added: 0066157
2017-05-16 18:26 kgv Note Added: 0066161
2017-05-16 18:26 kgv Assigned To apn => bugmaster
2017-06-08 14:32 bugmaster Assigned To bugmaster => apn
2017-07-03 08:51 git Note Added: 0067920
2017-07-24 19:01 git Note Added: 0068649
2017-07-24 20:43 git Note Added: 0068653
2017-07-25 12:46 apn Note Added: 0068664
2017-07-25 12:48 apn Assigned To apn => kgv
2017-07-25 12:48 apn Status reviewed => feedback
2017-07-25 15:57 git Note Added: 0068680
2017-07-25 16:03 kgv Note Added: 0068681
2017-07-25 16:04 kgv Assigned To kgv => apn
2017-07-26 16:22 git Note Added: 0068733
2017-07-26 16:24 apn Note Added: 0068734
2017-07-26 16:25 apn Assigned To apn => kgv
2017-07-26 16:42 git Note Added: 0068741
2017-07-26 16:43 kgv Note Added: 0068742
2017-07-26 16:43 kgv Assigned To kgv => apn
2017-07-26 18:04 apn Note Added: 0068746
2017-07-26 18:04 apn Assigned To apn => kgv
2017-07-26 18:13 git Note Added: 0068747
2017-07-26 18:14 kgv Note Added: 0068748
2017-07-26 18:14 kgv Assigned To kgv => apn
2017-07-27 12:53 git Note Added: 0068784
2017-07-27 13:03 apn Note Added: 0068785
2017-07-27 13:44 apn Test case number => v3d anim videorecorder
2017-07-27 13:44 apn Assigned To apn => bugmaster
2017-07-27 13:44 apn Status feedback => tested
2017-07-28 17:03 git Note Added: 0068847
2017-07-31 17:37 git Note Added: 0068923
2017-08-03 17:31 kgv Changeset attached => occt master 08f8a185
2017-08-03 17:31 kgv Assigned To bugmaster => kgv
2017-08-03 17:31 kgv Status tested => verified
2017-08-03 17:31 kgv Resolution open => fixed
2017-08-18 17:00 git Note Added: 0069599
2017-08-18 17:00 git Note Added: 0069600
2017-08-18 17:00 git Note Added: 0069601
2017-08-18 17:00 git Note Added: 0069602
2017-08-18 17:00 git Note Added: 0069603
2017-08-18 17:00 git Note Added: 0069604
2017-08-18 17:00 git Note Added: 0069605
2017-09-15 09:14 kgv Relationship added parent of 0029112
2017-09-29 16:17 aiv Fixed in Version => 7.2.0
2017-09-29 16:23 aiv Status verified => closed
2021-01-28 12:26 kgv Relationship added parent of 0032092