Git Product home page Git Product logo

360transformations's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

360transformations's Issues

pre_processing of dataset

hello ,
Thans for your dataset in advance . I want know weather you can provide the pre-procession dataset which meants using spherical linear interpolation . thanks a lot.

Compilation issue

I tried to install the project and I have the following error -

[100%] Linking CXX executable trans
/usr/bin/ld: /usr/local/lib/libavformat.a(http.o): undefined reference to symbol 'inflateInit2_'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
MainProject/CMakeFiles/trans.dir/build.make:433: recipe for target 'MainProject/trans' failed
make[2]: *** [MainProject/trans] Error 1
CMakeFiles/Makefile2:140: recipe for target 'MainProject/CMakeFiles/trans.dir/all' failed
make[1]: *** [MainProject/CMakeFiles/trans.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

After googling for the error, I was suggested to use -lz but I couldn't figure out where to add the flags to the makefile. Can anyone point me in the right direction to fix this?

Error while parsing in configuration file the CubeMap layout: No such node (CubeMap.width)

Scenario 1:
Run inside the example folder (or inside the /vagrant folder inside the VM):
trans -c Config_1.ini
This scenario reads the input.mp4 equirectangular video and transforms it into a 3x2 Cubemap video.
Outputs:
output1_1CubeMap.mp4 -> an HEVC 3x2 cubemap 360-degree video

The trans executable is created in the following path:
bitnami@ip-172-31-41-171:~/360Transformations/transformation/build/MainProject$ ls -l
total 6212
drwxrwxr-x 3 bitnami bitnami 4096 Feb 4 18:52 CMakeFiles
-rw-rw-r-- 1 bitnami bitnami 1021 Feb 4 17:59 cmake_install.cmake
-rw-rw-r-- 1 bitnami bitnami 29677 Feb 4 17:59 Makefile
-rwxrwxr-x 1 bitnami bitnami 6320040 Feb 4 18:54 trans

I get the following error upone executing the command in examples folder:
bitnami@ip-172-31-41-171:~/360Transformations/transformation/examples$ ../build/MainProject/trans -c Config_1.ini
Path to the ini file: Config_1.ini

Error while parsing in configuration file the CubeMap layout: No such node (CubeMap.width)
Uncatched exception: std::exception
Options:
-h [ --help ] arg Produce this help message. Giving layout id return
configuration parameters accepted by this layout.
-c [ --config ] arg Path to the configuration INI file

bitnami@ip-172-31-41-171:~/360Transformations/transformation/examples$

The examples folder listing is as follows:
bitnami@ip-172-31-41-171:/360Transformations/transformation/examples$ ls -l
total 1700
-rwxrwxr-x 1 bitnami bitnami 3394 Feb 5 09:35 Config_1.ini
-rwxrwxr-x 1 bitnami bitnami 3145 Feb 4 17:57 Config_2.ini
-rwxrwxr-x 1 bitnami bitnami 3119 Feb 4 17:57 Config_3.ini
-rwxrwxr-x 1 bitnami bitnami 15420 Feb 4 17:57 Config_4.ini
-rwxrwxr-x 1 bitnami bitnami 4125 Feb 4 17:57 Config_5.ini
-rwxrwxr-x 1 bitnami bitnami 3167 Feb 4 17:57 Config_6.ini
-rwxrwxr-x 1 bitnami bitnami 5450 Feb 4 17:57 Config_7.ini
-rwxrwxr-x 1 bitnami bitnami 4147 Feb 4 17:57 Config_8.ini
-rw-rw-r-- 1 bitnami bitnami 583327 Feb 4 17:57 input.mp4
-rw-rw-r-- 1 bitnami bitnami 5134 Feb 4 17:57 README.rst
-rw-rw-r-- 1 bitnami bitnami 1087877 Feb 4 17:57 Timelapse-CIw8R8thnm8_0.txt
bitnami@ip-172-31-41-171:
/360Transformations/transformation/examples$

can't run trans

when i run trans with command ./trans -c ../, always face this error:
Error while parsing the Global.layoutFlow: No such node (Global.layoutFlow)
i use the default config.ini, doesn't change the layout flow, and i also have a Equirectangular video named tOffCopy.mp4 the path.
what's wrong?

compilation issue

When I implement : conan install .. -s compiler=gcc -s compiler.libcxx=libstdc++11 --build=missing , I meet some problem:

CMake Error at 3rdparty/ippicv/downloader.cmake:77 (message):
ICV: Failed to download ICV package: ippicv_linux_20151201.tgz.
Status=1;"Unsupported protocol"

And after google, I guess that it may be due to the opencv installment's error, I just install opencv under the path: /360Transformations/transformation/build/ConanEnv , but it does'not work!!!

And my enviroment is :
ubuntu14.04
git version 2.15.0
gcc (Ubuntu 5.4.1-2ubuntu1~14.04) 5.4.1
python3.4
cmake 3.22

Would you help me to have a look at what's wrong?

Thanks!

Quaternion to equirectangular projection coordinates

Hello,
Thank you for the useful codes and dataset.
I would like to know if your code handles the conversion between the HMD head position (in Euler or Quaternion format) to its corresponding pixel coordinates on the equirectangular projection.
A simple use case for this is streaming based on the FoV: a client that reads the head movement data instead of a real HMD head orientation data, and then stream the FoV from a server using DASH SRD.

Thanks in advance

Pyramid Projection

Hi,
I have read your academic paper and I think it is an excellent work! But I have a few question about the pyramid projection. I think your implementation about this projection (which is shown in your code LayoutPyramidal.hpp and LayoutPyramidal2.hpp) is a little bit different compared with the one proposed by Facebook. Have you tried their approach?
Thanks!

Transformations’

Hi ,It's difficult for me to understand every transformation programs,so do you have a detail introduction of these transformations.such like code document,or some papers about the transformations.thank you

Compilation issue

Hi,

Thanks a lot for your work. I am trying to compile the code and test some videos. However, I end up with the error shows below. After spend hours on this error, I still cannot pass it. Could you please help me and take a look at this error?

I working at ubuntu 14.04 with gcc 5.4.1, opencv 3.1.0, boost 1.54.0.1, cmake 3.2.2

[ 6%] Building CXX object LibAvWrapper/CMakeFiles/LibAvWrapper.dir/src/VideoWriter.cpp.o In file included from /home/chao/VR/360Transformations/transformation/LibAvWrapper/src/VideoWriter.cpp:1:0: /home/chao/VR/360Transformations/transformation/LibAvWrapper/inc/VideoWriter.hpp: In member function ‘void IMT::LibAv::VideoWriter::Init(std::string, std::array<unsigned int, nbStreams>, std::array<unsigned int, nbStreams>, unsigned int, unsigned int, std::array<unsigned int, nbStreams>)’: /home/chao/VR/360Transformations/transformation/LibAvWrapper/inc/VideoWriter.hpp:59:96: error: there are no arguments to ‘avformat_alloc_output_context2’ that depend on a template parameter, so a declaration of ‘avformat_alloc_output_context2’ must be available [-fpermissive] avformat_alloc_output_context2(&m_fmt_ctx, NULL, NULL, m_outputFileName.c_str()); ^ /home/chao/VR/360Transformations/transformation/LibAvWrapper/inc/VideoWriter.hpp:59:96: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) /home/chao/VR/360Transformations/transformation/LibAvWrapper/src/VideoWriter.cpp: In member function ‘void IMT::LibAv::VideoWriter::PrivateWrite(std::shared_ptr<IMT::LibAv::Packet>, int)’: /home/chao/VR/360Transformations/transformation/LibAvWrapper/src/VideoWriter.cpp:77:105: error: ‘av_rescale_q’ was not declared in this scope pkt.pts = av_rescale_q(pkt.pts, m_codec_ctx[streamId]->time_base, m_vstream[streamId]->time_base); ^ /home/chao/VR/360Transformations/transformation/LibAvWrapper/src/VideoWriter.cpp:81:105: error: ‘av_rescale_q’ was not declared in this scope pkt.dts = av_rescale_q(pkt.dts, m_codec_ctx[streamId]->time_base, m_vstream[streamId]->time_base); ^ make[2]: *** [LibAvWrapper/CMakeFiles/LibAvWrapper.dir/src/VideoWriter.cpp.o] Error 1 make[1]: *** [LibAvWrapper/CMakeFiles/LibAvWrapper.dir/all] Error 2 make: *** [all] Error 2

Chao

Example Transformations result in corrupt video output

Hi All,
Tried running the examples using the dockerized module:
docker run --privileged --rm -v /live-streeaming/360T
ransformations/transformation/examples:/home/trans360 trans360 trans -c Config_1.ini

The output video i'm getting is corrupt.

Here is the console output:
Path to the ini file: Config_1.ini
duration 30272000
streams 2
vid stream 1
format name mov,mp4,m4a,3gp,3g2,mj2
bit_rate 1990107
long name QuickTime / MOV
Read image 0
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 458 milliseconds estimated remaining time = 9 seconds 834 milliseconds
Read image 1
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 278 milliseconds estimated remaining time = 7 seconds 105 milliseconds
Read image 2
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 242 milliseconds estimated remaining time = 4 seconds 652 milliseconds
Read image 3
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 270 milliseconds estimated remaining time = 2 seconds 312 milliseconds
Read image 4
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 396 milliseconds estimated remaining time =
PS C:\dev\live-streeaming\360Transformations\transformation> docker run --privileged --rm -v C:\dev\live-streeaming\360T
ransformations\transformation\examples:/home/trans360 trans360 trans -c Config_1.ini
Path to the ini file: Config_1.ini
duration 30272000
streams 2
vid stream 1
format name mov,mp4,m4a,3gp,3g2,mj2
bit_rate 1990107
long name QuickTime / MOV
Output video path for flow 1: input360_1_1CubeMap.mp4
x265 [info]: HEVC encoder version 2.7
x265 [info]: build info [Linux][GCC 7.3.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [info]: Main profile, Level-5 (Main tier)
x265 [warning]: No thread pool allocated, --wpp disabled
x265 [warning]: No thread pool allocated, --lookahead-slices disabled
x265 [info]: Slices : 1
x265 [info]: frame threads / pool features : 1 / none
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2
x265 [info]: Keyframe min / max / scenecut / bias: 24 / 250 / 40 / 5.00
x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0
x265 [info]: References / ref-limit cu / depth : 3 / on / on
x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress : CRF-28.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=2.00 rskip signhide tmvp strong-intra-smoothing
x265 [info]: tools: deblock sao
Read image 0
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 428 milliseconds estimated remaining time = 9 seconds 714 milliseconds
Read image 1
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 278 milliseconds estimated remaining time = 7 seconds 60 milliseconds
Read image 2
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 303 milliseconds estimated remaining time = 4 seconds 674 milliseconds
Read image 3
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 253 milliseconds estimated remaining time = 2 seconds 316 milliseconds
Read image 4
Flow 0: Equirectangular -> CubeMap
Elapsed time for this picture: 2 seconds 462 milliseconds estimated remaining time =
x265 [info]: frame I: 1, Avg QP:20.88 kb/s: 2569.54
x265 [info]: frame P: 1, Avg QP:33.37 kb/s: 42.82
x265 [info]: frame B: 3, Avg QP:35.33 kb/s: 39.04
x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0%
x265 [info]: consecutive B-frames: 50.0% 0.0% 0.0% 50.0% 0.0%

encoded 5 frames in 14.92s (0.34 fps), 545.89 kb/s, Avg QP:32.05

input and output videos are attached:
videos.zip

Thank you...

Segmentation fault (core dumped)

hi, use the generated software trans to transform the ERP to ERPtiled,the problem happens in the end,as following:
1 jpg
and i use the ini file like the bellowing shows:
[Global]
;The number of frame per second
fps=30
displayFinalPict=true
videoOutputName=./test.mp4
videoOutputCodec=libx265
videoOutputBitRate=0
qualityOutputName=
qualityToComputeList = ["MS-SSIM", "SSIM", "PSNR", "S-PSNR-NN", "S-PSNR-I", "WS-PSNR"]
startFrame=0
nbFrames= 50
layoutFlow= [["/usr/local/transformation/build/outputjumping.mp4", "Equirectangular", "EquirectangularTiledLower"]]
;layoutFlow= [["/usr/local/transformation/build/outputjumping.mp4", "Equirectangular", "EquirectangularTiledLower"], ["/usr/local/transformation/build/outputjumping.mp4", "Equirectangular", "CubeMapLower", "FlatFixed"]]

[Equirectangular]
type=equirectangular
;Width of the reference equirectangular video
refWidth=3840
;Width of the reference equirectangular video
refHeight=2048
yaw=0
pitch=0
roll=0
relativeResolution=false
width=1
height=1
bitrate=1

[FlatFixed]
type=flatFixed
relativeResolution=false
dynamicPositions=false
;The path to the position trace file. Used if dynamicPositions is set to true
positionTrace=pathToPositionTrace
yaw=0
pitch=0
roll=0
width=1920
height=1080
;Horizontal angle of the display device (in degree)
horizontalAngleOfVision=110
;Vertical angle of the display device (in degree)
verticalAngleOfVision=90

[CubeMapLower]
;type of the layout: cube map layout
type=cubeMap
;Size of the reference cube map video (ie if all faces have a size ratio of 1)
refWidth=3840
refHeight=2048
;use relative resolution for the face resolutions
relativeResolution=true
yaw=0
pitch=0
roll=0
cubeEdgeLengthFront=1
cubeEdgeLengthLeft=1
cubeEdgeLengthRight=1
cubeEdgeLengthTop=1
cubeEdgeLengthBottom=1
cubeEdgeLengthBack=1
;if useTile is set to true, each face will be encoded into an independent video with a target bitrate set by the bitrateFront, bitrateLeft, etc. parameters
;if useTile is set to false, the whole projection will be encoded into a unique video (all faces on the same frame) and a global bitrate target set by the bitrate parameter
useTile=false
;Relative bitrate of each face (if final layout encoded). A ratio r means rvideoOutputBitRate/6
bitrateFront=1
bitrateLeft=1
bitrateRight=1
bitrateTop=1
bitrateBottom=1
bitrateBack=1
;bitrate is used only if useTile=false. A ratio r means a bitrate of r
videoOutputBitRate
bitrate=1
;indicate the position and the orientation of each face in the packed picture. position 1 is top left, 2 top right, 3 bottom left and 5 bottom right. Rotation can be 0, 90, -90 or 180.
facesPosition={"face1":"right", "face1Rotation":0, "face2":"back", "face2Rotation":0, "face3":"left", "face3Rotation":0, "face4":"top", "face4Rotation":-90, "face5":"front", "face5Rotation":-90, "face6":"bottom", "face6Rotation":-90}

[EquirectangularTiledLower]
type=equirectangularTiled
;Size of the reference input equirectangular video
refWidth=3840
refHeight=2048
;use relative resolution for the face resolutions
relativeResolution=true
;The rotation used to get the center of the front face: type = "euler" or "quaternion" or "angleAxis".
; if type is "euler" you have to give the yaw, pitch and roll angle in degree
; if type is "quaternion" you have to give the w, x, y, z value of the quaternion that represente the rotation. A normalization is performed by the software.
; if type is "angleAxis" you have to give an "angle" in degree and a direction vector x, y, z that generates the rotation axis (this vector should not be (0, 0, 0)).
yaw=0
pitch=0
roll=0
;rotation= {"type":"euler", "yaw":0.0, "pitch":0.0, "roll":0.0}
;rotation= {"type":"quaternion", "w":1.0, "x":0.0, "y":0.0, "z":0.0}
;rotation= {"type":"angleAxis", "angle":90, "x":0, "y":0, "z":1}
;nbHTiles (resp. nbVTiles) indicate the number of horizontal (resp. vertical) tiles
;You have to compile the software with the RANGE_NB_H_TILES and RANGE_NB_V_TILES macro to be able to use this layout.
;For instance in this example the value 8 should be in the macro RANGE_NB_H_TILES and RANGE_NB_V_TILES otherwise a runtime error will be raised
nbHTiles=8
nbVTiles=8
;hTileRation_X and vTileRation_X indicate the relative horizontal and vertical ratio of the tile X. In this example each tile get 1/8 of the equirectangular picture
hTileRation_0=1
hTileRation_1=1
hTileRation_2=1
hTileRation_3=1
hTileRation_4=1
hTileRation_5=1
hTileRation_6=1
hTileRation_7=1
vTileRation_0=1
vTileRation_1=1
vTileRation_2=1
vTileRation_3=1
vTileRation_4=1
vTileRation_5=1
vTileRation_6=1
vTileRation_7=1
;if upscale is set to true, all the tiles will be upscaled to the original tile resolution
upscale=false
;if useTile is set to true, each face will be encoded into an independent video with a target bitrate set by the equirectangularTileBitrate_0_0, equirectangularTileBitrate_0_1, etc. parameters
;if useTile is set to false, the whole projection will be encoded into a unique video (all faces on the same frame) and a global bitrate target set by the bitrate parameter
useTile=true
;resolution of the tile (i,j)=(0,0)
equirectangularTile_0_0=1
; bitrate of the tile (i,j) = (0,0). Ratio of r means rvideoOutputBitRate/64
equirectangularTileBitrate_0_0=0.25
equirectangularTile_0_1=1
equirectangularTileBitrate_0_1=0.25
equirectangularTile_0_2=1
equirectangularTileBitrate_0_2=0.25
equirectangularTile_0_3=1
equirectangularTileBitrate_0_3=0.25
equirectangularTile_0_4=1
equirectangularTileBitrate_0_4=0.25
equirectangularTile_0_5=1
equirectangularTileBitrate_0_5=0.25
equirectangularTile_0_6=1
equirectangularTileBitrate_0_6=0.25
equirectangularTile_0_7=1
equirectangularTileBitrate_0_7=0.25
equirectangularTile_1_0=1
equirectangularTileBitrate_1_0=0.25
equirectangularTile_1_1=1
equirectangularTileBitrate_1_1=0.25
equirectangularTile_1_2=1
equirectangularTileBitrate_1_2=0.25
equirectangularTile_1_3=1
equirectangularTileBitrate_1_3=0.25
equirectangularTile_1_4=1
equirectangularTileBitrate_1_4=0.25
equirectangularTile_1_5=1
equirectangularTileBitrate_1_5=0.25
equirectangularTile_1_6=1
equirectangularTileBitrate_1_6=0.25
equirectangularTile_1_7=1
equirectangularTileBitrate_1_7=0.25
equirectangularTile_2_0=1
equirectangularTileBitrate_2_0=0.25
equirectangularTile_2_1=1
equirectangularTileBitrate_2_1=1
equirectangularTile_2_2=1
equirectangularTileBitrate_2_2=1
equirectangularTile_2_3=1
equirectangularTileBitrate_2_3=1
equirectangularTile_2_4=1
equirectangularTileBitrate_2_4=1
equirectangularTile_2_5=1
equirectangularTileBitrate_2_5=1
equirectangularTile_2_6=1
equirectangularTileBitrate_2_6=0.25
equirectangularTile_2_7=1
equirectangularTileBitrate_2_7=0.25
equirectangularTile_3_0=1
equirectangularTileBitrate_3_0=0.25
equirectangularTile_3_1=1
equirectangularTileBitrate_3_1=1
equirectangularTile_3_2=1
equirectangularTileBitrate_3_2=1
equirectangularTile_3_3=1
equirectangularTileBitrate_3_3=1
equirectangularTile_3_4=1
equirectangularTileBitrate_3_4=1
equirectangularTile_3_5=1
equirectangularTileBitrate_3_5=1
equirectangularTile_3_6=1
equirectangularTileBitrate_3_6=0.25
equirectangularTile_3_7=1
equirectangularTileBitrate_3_7=0.25
equirectangularTile_4_0=1
equirectangularTileBitrate_4_0=0.25
equirectangularTile_4_1=1
equirectangularTileBitrate_4_1=1
equirectangularTile_4_2=1
equirectangularTileBitrate_4_2=1
equirectangularTile_4_3=1
equirectangularTileBitrate_4_3=1
equirectangularTile_4_4=1
equirectangularTileBitrate_4_4=1
equirectangularTile_4_5=1
equirectangularTileBitrate_4_5=1
equirectangularTile_4_6=1
equirectangularTileBitrate_4_6=0.25
equirectangularTile_4_7=1
equirectangularTileBitrate_4_7=0.25
equirectangularTile_5_0=1
equirectangularTileBitrate_5_0=0.25
equirectangularTile_5_1=1
equirectangularTileBitrate_5_1=1
equirectangularTile_5_2=1
equirectangularTileBitrate_5_2=1
equirectangularTile_5_3=1
equirectangularTileBitrate_5_3=1
equirectangularTile_5_4=1
equirectangularTileBitrate_5_4=1
equirectangularTile_5_5=1
equirectangularTileBitrate_5_5=1
equirectangularTile_5_6=1
equirectangularTileBitrate_5_6=0.25
equirectangularTile_5_7=1
equirectangularTileBitrate_5_7=0.25
equirectangularTile_6_0=1
equirectangularTileBitrate_6_0=0.25
equirectangularTile_6_1=1
equirectangularTileBitrate_6_1=1
equirectangularTile_6_2=1
equirectangularTileBitrate_6_2=1
equirectangularTile_6_3=1
equirectangularTileBitrate_6_3=1
equirectangularTile_6_4=1
equirectangularTileBitrate_6_4=1
equirectangularTile_6_5=1
equirectangularTileBitrate_6_5=1
equirectangularTile_6_6=1
equirectangularTileBitrate_6_6=0.25
equirectangularTile_6_7=1
equirectangularTileBitrate_6_7=0.25
equirectangularTile_7_0=1
equirectangularTileBitrate_7_0=0.25
equirectangularTile_7_1=1
equirectangularTileBitrate_7_1=0.25
equirectangularTile_7_2=1
equirectangularTileBitrate_7_2=0.25
equirectangularTile_7_3=1
equirectangularTileBitrate_7_3=0.25
equirectangularTile_7_4=1
equirectangularTileBitrate_7_4=0.25
equirectangularTile_7_5=1
equirectangularTileBitrate_7_5=0.25
equirectangularTile_7_6=1
equirectangularTileBitrate_7_6=0.25
equirectangularTile_7_7=1
equirectangularTileBitrate_7_7=0.25
;bitrate is used only if useTile=false. A ratio r means a bitrate of r
videoOutputBitRate
bitrate=1
can you give me some suggestions, thank you

Viewport Extraction : How can I control Yaw Pitch and roll.

Dear all,

    Once I have the input file (any file .mp4), I have extracted the viewports from the projected sphere in the plane.
I have used the following command:

trans -c Config_7.ini

However, the yaw pitch and roll are fixed for all frames. I can not control these parameters in each frame.

I need to control the yaw, pitch and roll in each frame.

For exameple, imagine a have 5 frames

Frame 1
rotation= {"type":"euler", "yaw":0.0, "pitch":0.0, "roll":0.0}

Frame 2
rotation= {"type":"euler", "yaw":10.0, "pitch":0.0, "roll":0.0}

Frame 3
rotation= {"type":"euler", "yaw":20.0, "pitch":0.0, "roll":0.0}

Frame 4
rotation= {"type":"euler", "yaw":30.0, "pitch":0.0, "roll":0.0}

Frame 5
rotation= {"type":"euler", "yaw":40.0, "pitch":0.0, "roll":0.0}


Is it possible to do it in this library?

Regards,

Dario

Error: undefined reference to symbol 'inflateInit2_

Guys,

 Any ideas how to sort it out?
 Regards,

Dario

/usr/bin/ld: /usr/local/lib/libavformat.a(http.o): undefined reference to symbol 'inflateInit2_'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
MainProject/CMakeFiles/trans.dir/build.make:455: recipe for target 'MainProject/trans' failed
make[2]: *** [MainProject/trans] Error 1
CMakeFiles/Makefile2:140: recipe for target 'MainProject/CMakeFiles/trans.dir/all' failed
make[1]: *** [MainProject/CMakeFiles/trans.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

New Compilation issue

Hi Xavier,
when i update my gcc version, and run the "make" the problem happens, i tried to add the extern “C” in the writer and reader.cpp, but still does work? would you help me to have a look at what's wrong?

../LibAvWrapper/libLibAvWrapper.a(VideoWriter.cpp.o): In function IMT::LibAv::VideoWriter::EncodeAndWrite(AVFrame*, int)': VideoWriter.cpp:(.text+0x116): undefined reference to avcodec_send_frame'
VideoWriter.cpp:(.text+0x1b8): undefined reference to av_packet_unref' VideoWriter.cpp:(.text+0x1e5): undefined reference to avcodec_receive_packet'
VideoWriter.cpp:(.text+0x1f7): undefined reference to av_packet_unref' VideoWriter.cpp:(.text+0x206): undefined reference to av_frame_unref'
VideoWriter.cpp:(.text+0x21a): undefined reference to av_frame_free' ../LibAvWrapper/libLibAvWrapper.a(VideoWriter.cpp.o): In function IMT::LibAv::VideoWriter::EncodeAndWrite(cv::Mat const&, int)':
VideoWriter.cpp:(.text+0x2b9): undefined reference to av_frame_alloc' ../LibAvWrapper/libLibAvWrapper.a(VideoReader.cpp.o): In function ToMat(AVCodecContext*, AVFrame*)':
VideoReader.cpp:(.text+0x8de): undefined reference to av_frame_alloc' VideoReader.cpp:(.text+0xc8d): undefined reference to av_frame_unref'
VideoReader.cpp:(.text+0xc97): undefined reference to av_frame_free' ../LibAvWrapper/libLibAvWrapper.a(VideoReader.cpp.o): In function IMT::LibAv::VideoReader::DecodeNextStep()':
VideoReader.cpp:(.text+0x109b): undefined reference to av_frame_alloc' VideoReader.cpp:(.text+0x10c4): undefined reference to avcodec_send_packet'
VideoReader.cpp:(.text+0x10e1): undefined reference to avcodec_receive_frame' VideoReader.cpp:(.text+0x126d): undefined reference to av_frame_unref'
VideoReader.cpp:(.text+0x12d9): undefined reference to av_frame_free' VideoReader.cpp:(.text+0x12e3): undefined reference to av_packet_unref'
VideoReader.cpp:(.text+0x133f): undefined reference to avcodec_send_packet' VideoReader.cpp:(.text+0x135c): undefined reference to av_frame_alloc'
VideoReader.cpp:(.text+0x1418): undefined reference to avcodec_receive_frame' VideoReader.cpp:(.text+0x1479): undefined reference to av_frame_free'
VideoReader.cpp:(.text+0x153d): undefined reference to `av_frame_unref'
collect2: error: ld returned 1 exit status
make[2]: *** [MainProject/trans] Error 1
make[1]: *** [MainProject/CMakeFiles/trans.dir/all] Error 2
make: *** [all] Error 2

jesse

Why is the bit rate of the video with some high-quality areas and some low-quality areas higher than that of the original input video?

Dear all,
Try to running the examples using the dockerized module:
xiaoyu@xiaoyu-virtual-machine:~/Desktop/360Transformations-master/transformation$ docker run --privileged --rm -v /home/xiaoyu/Desktop/360Transformations-master/transformation/examples:/home/trans360 trans360 trans -c Config_14.2.ini

The input video I used is input.mp4 provided by the website:
https://user-images.githubusercontent.com/64078936/119604871-605ff900-be22-11eb-9069-752b90eadd44.mp4

The following is the configuration file information for generating a video with some high-quality areas and some low-quality areas:

Config_14.txt

`[Global]
;output fps
fps=24
;Names of the Section for the layout flow: [[Equirectangular, CubeMap, FlatFixed], [Equirectangular, FlatFixed]] means: from Equirectangular to CubeMap to FlatFixed AND from Equirectangular to FlatFixed
layoutFlow= [["input.mp4", "Equirectangular", "EquirectangularTiled"]]
;if displayFinalPict is set, it will display the final picture of each flow for each input picture of the original video
displayFinalPict=false
;if not empty, a video will be recorded for each flow using the path + the file name given here (the file name will be unique per flow).
videoOutputName=output14_.mp4
;bitrate goal of the output video in kbps
videoOutputBitRate=0
;videoOutputName=
qualityOutputName =
; qualityToComputeList = ["MS-SSIM", "SSIM", "PSNR", "S-PSNR-NN", "S-PSNR-I", "WS-PSNR"]
qualityToComputeList = []
;["S-PSNR-NN", "S-PSNR-I"]
nbFrames= 25
startFrame= 0

[Equirectangular]
;type of the layout: equirectangular is the state-of-the-art equirectangular layout
type=equirectangular
upscale=false
;Width of the reference equirectangular video
refWidth=3840
;Width of the reference equirectangular video
refHeight=2048
;yaw, pitch, roll of the center point of the equirectangular video (in degree)
rotation= {"type":"euler", "yaw":0.0, "pitch":0.0, "roll":0.0}
;if true, the resolution of the layout is compute based on the resolution of the previous layout (or on the resolution of the reference equirectangular video)
relativeResolution=true
;if relativeResolution=true ratio of the output layout width compare to the reference video; otherwise width size of the output video in pixel number
width=1
height=1
;bitrate ratio of the output video relative to the videoOutputBitRate (if it is the final layout and if the video is encoded).
bitrate=1

[EquirectangularTiled]
type=equirectangularTiled
;Size of the reference input equirectangular video
refWidth=3840
refHeight=2048
;use relative resolution for the face resolutions
relativeResolution=true
;The rotation used to get the center of the front face: type = "euler" or "quaternion" or "angleAxis".
; if type is "euler" you have to give the yaw, pitch and roll angle in degree
; if type is "quaternion" you have to give the w, x, y, z value of the quaternion that represente the rotation. A normalization is performed by the software.
; if type is "angleAxis" you have to give an "angle" in degree and a direction vector x, y, z that generates the rotation axis (this vector should not be (0, 0, 0)).
rotation= {"type":"euler", "yaw":0.0, "pitch":0.0, "roll":0.0}
;rotation= {"type":"quaternion", "w":1.0, "x":0.0, "y":0.0, "z":0.0}
;rotation= {"type":"angleAxis", "angle":90, "x":0, "y":0, "z":1}
;nbHTiles (resp. nbVTiles) indicate the number of horizontal (resp. vertical) tiles
;You have to compile the software with the RANGE_NB_H_TILES and RANGE_NB_V_TILES macro to be able to use this layout.
;For instance in this example the value 8 should be in the macro RANGE_NB_H_TILES and RANGE_NB_V_TILES otherwise a runtime error will be raised
nbHTiles=8
nbVTiles=4
;hTileRation_X and vTileRation_X indicate the relative horizontal and vertical ratio of the tile X. In this example each tile get 1/8 of the equirectangular picture
hTileRation_0=1
hTileRation_1=1
hTileRation_2=1
hTileRation_3=1
hTileRation_4=1
hTileRation_5=1
hTileRation_6=1
hTileRation_7=1
vTileRation_0=1
vTileRation_1=1
vTileRation_2=1
vTileRation_3=1
vTileRation_4=1
vTileRation_5=1
vTileRation_6=1
vTileRation_7=1
;if upscale is set to true, all the tiles will be upscaled to the original tile resolution
upscale=true
;if useTile is set to true, each face will be encoded into an independent video with a target bitrate set by the equirectangularTileBitrate_0_0, equirectangularTileBitrate_0_1, etc. parameters
;if useTile is set to false, the whole projection will be encoded into a unique video (all faces on the same frame) and a global bitrate target set by the bitrate parameter
useTile=false
;resolution of the tile (i,j)=(0,0)
equirectangularTile_0_0=0.25
; bitrate of the tile (i,j) = (0,0). Ratio of r means rvideoOutputBitRate/64
equirectangularTileBitrate_0_0=1
equirectangularTile_0_1=0.25
equirectangularTileBitrate_0_1=1
equirectangularTile_0_2=0.25
equirectangularTileBitrate_0_2=1
equirectangularTile_0_3=0.25
equirectangularTileBitrate_0_3=1
equirectangularTile_1_0=0.25
equirectangularTileBitrate_1_0=1
equirectangularTile_1_1=0.25
equirectangularTileBitrate_1_1=1
equirectangularTile_1_2=0.25
equirectangularTileBitrate_1_2=1
equirectangularTile_1_3=0.25
equirectangularTileBitrate_1_3=1
equirectangularTile_2_0=0.25
equirectangularTileBitrate_2_0=1
equirectangularTile_2_1=1
equirectangularTileBitrate_2_1=1
equirectangularTile_2_2=1
equirectangularTileBitrate_2_2=1
equirectangularTile_2_3=0.25
equirectangularTileBitrate_2_3=1
equirectangularTile_3_0=1
equirectangularTileBitrate_3_0=1
equirectangularTile_3_1=1
equirectangularTileBitrate_3_1=1
equirectangularTile_3_2=1
equirectangularTileBitrate_3_2=1
equirectangularTile_3_3=1
equirectangularTileBitrate_3_3=1
equirectangularTile_4_0=1
equirectangularTileBitrate_4_0=1
equirectangularTile_4_1=1
equirectangularTileBitrate_4_1=1
equirectangularTile_4_2=1
equirectangularTileBitrate_4_2=1
equirectangularTile_4_3=1
equirectangularTileBitrate_4_3=1
equirectangularTile_5_0=0.25
equirectangularTileBitrate_5_0=1
equirectangularTile_5_1=1
equirectangularTileBitrate_5_1=1
equirectangularTile_5_2=1
equirectangularTileBitrate_5_2=1
equirectangularTile_5_3=0.25
equirectangularTileBitrate_5_3=1
equirectangularTile_6_0=0.25
equirectangularTileBitrate_6_0=1
equirectangularTile_6_1=0.25
equirectangularTileBitrate_6_1=1
equirectangularTile_6_2=0.25
equirectangularTileBitrate_6_2=1
equirectangularTile_6_3=0.25
equirectangularTileBitrate_6_3=1
equirectangularTile_7_0=0.25
equirectangularTileBitrate_7_0=1
equirectangularTile_7_1=0.25
equirectangularTileBitrate_7_1=1
equirectangularTile_7_2=0.25
equirectangularTileBitrate_7_2=1
equirectangularTile_7_3=0.25
equirectangularTileBitrate_7_3=1
;bitrate is used only if useTile=false. A ratio r means a bitrate of r
videoOutputBitRate
bitrate=1`

The bit rate of the resulting video is 3945kb/s.
https://user-images.githubusercontent.com/64078936/119604825-48887500-be22-11eb-99fc-a8caada05150.mp4
1

The following is the configuration file information for obtaining a video with full quality in all areas:
Config_14.2.txt

`[Global]
;output fps
fps=24
;Names of the Section for the layout flow: [[Equirectangular, CubeMap, FlatFixed], [Equirectangular, FlatFixed]] means: from Equirectangular to CubeMap to FlatFixed AND from Equirectangular to FlatFixed
layoutFlow= [["input.mp4", "Equirectangular", "EquirectangularTiled"]]
;if displayFinalPict is set, it will display the final picture of each flow for each input picture of the original video
displayFinalPict=false
;if not empty, a video will be recorded for each flow using the path + the file name given here (the file name will be unique per flow).
videoOutputName=output14.2_.mp4
;bitrate goal of the output video in kbps
videoOutputBitRate=0
;videoOutputName=
qualityOutputName =
; qualityToComputeList = ["MS-SSIM", "SSIM", "PSNR", "S-PSNR-NN", "S-PSNR-I", "WS-PSNR"]
qualityToComputeList = []
;["S-PSNR-NN", "S-PSNR-I"]
nbFrames= 25
startFrame= 0

[Equirectangular]
;type of the layout: equirectangular is the state-of-the-art equirectangular layout
type=equirectangular
upscale=false
;Width of the reference equirectangular video
refWidth=3840
;Width of the reference equirectangular video
refHeight=2048
;yaw, pitch, roll of the center point of the equirectangular video (in degree)
rotation= {"type":"euler", "yaw":0.0, "pitch":0.0, "roll":0.0}
;if true, the resolution of the layout is compute based on the resolution of the previous layout (or on the resolution of the reference equirectangular video)
relativeResolution=true
;if relativeResolution=true ratio of the output layout width compare to the reference video; otherwise width size of the output video in pixel number
width=1
height=1
;bitrate ratio of the output video relative to the videoOutputBitRate (if it is the final layout and if the video is encoded).
bitrate=1

[EquirectangularTiled]
type=equirectangularTiled
;Size of the reference input equirectangular video
refWidth=3840
refHeight=2048
;use relative resolution for the face resolutions
relativeResolution=true
;The rotation used to get the center of the front face: type = "euler" or "quaternion" or "angleAxis".
; if type is "euler" you have to give the yaw, pitch and roll angle in degree
; if type is "quaternion" you have to give the w, x, y, z value of the quaternion that represente the rotation. A normalization is performed by the software.
; if type is "angleAxis" you have to give an "angle" in degree and a direction vector x, y, z that generates the rotation axis (this vector should not be (0, 0, 0)).
rotation= {"type":"euler", "yaw":0.0, "pitch":0.0, "roll":0.0}
;rotation= {"type":"quaternion", "w":1.0, "x":0.0, "y":0.0, "z":0.0}
;rotation= {"type":"angleAxis", "angle":90, "x":0, "y":0, "z":1}
;nbHTiles (resp. nbVTiles) indicate the number of horizontal (resp. vertical) tiles
;You have to compile the software with the RANGE_NB_H_TILES and RANGE_NB_V_TILES macro to be able to use this layout.
;For instance in this example the value 8 should be in the macro RANGE_NB_H_TILES and RANGE_NB_V_TILES otherwise a runtime error will be raised
nbHTiles=8
nbVTiles=4
;hTileRation_X and vTileRation_X indicate the relative horizontal and vertical ratio of the tile X. In this example each tile get 1/8 of the equirectangular picture
hTileRation_0=1
hTileRation_1=1
hTileRation_2=1
hTileRation_3=1
hTileRation_4=1
hTileRation_5=1
hTileRation_6=1
hTileRation_7=1
vTileRation_0=1
vTileRation_1=1
vTileRation_2=1
vTileRation_3=1
vTileRation_4=1
vTileRation_5=1
vTileRation_6=1
vTileRation_7=1
;if upscale is set to true, all the tiles will be upscaled to the original tile resolution
upscale=true
;if useTile is set to true, each face will be encoded into an independent video with a target bitrate set by the equirectangularTileBitrate_0_0, equirectangularTileBitrate_0_1, etc. parameters
;if useTile is set to false, the whole projection will be encoded into a unique video (all faces on the same frame) and a global bitrate target set by the bitrate parameter
useTile=false
;resolution of the tile (i,j)=(0,0)
equirectangularTile_0_0=1
; bitrate of the tile (i,j) = (0,0). Ratio of r means rvideoOutputBitRate/64
equirectangularTileBitrate_0_0=1
equirectangularTile_0_1=1
equirectangularTileBitrate_0_1=1
equirectangularTile_0_2=1
equirectangularTileBitrate_0_2=1
equirectangularTile_0_3=1
equirectangularTileBitrate_0_3=1
equirectangularTile_1_0=1
equirectangularTileBitrate_1_0=1
equirectangularTile_1_1=1
equirectangularTileBitrate_1_1=1
equirectangularTile_1_2=1
equirectangularTileBitrate_1_2=1
equirectangularTile_1_3=1
equirectangularTileBitrate_1_3=1
equirectangularTile_2_0=1
equirectangularTileBitrate_2_0=1
equirectangularTile_2_1=1
equirectangularTileBitrate_2_1=1
equirectangularTile_2_2=1
equirectangularTileBitrate_2_2=1
equirectangularTile_2_3=1
equirectangularTileBitrate_2_3=1
equirectangularTile_3_0=1
equirectangularTileBitrate_3_0=1
equirectangularTile_3_1=1
equirectangularTileBitrate_3_1=1
equirectangularTile_3_2=1
equirectangularTileBitrate_3_2=1
equirectangularTile_3_3=1
equirectangularTileBitrate_3_3=1
equirectangularTile_4_0=1
equirectangularTileBitrate_4_0=1
equirectangularTile_4_1=1
equirectangularTileBitrate_4_1=1
equirectangularTile_4_2=1
equirectangularTileBitrate_4_2=1
equirectangularTile_4_3=1
equirectangularTileBitrate_4_3=1
equirectangularTile_5_0=1
equirectangularTileBitrate_5_0=1
equirectangularTile_5_1=1
equirectangularTileBitrate_5_1=1
equirectangularTile_5_2=1
equirectangularTileBitrate_5_2=1
equirectangularTile_5_3=1
equirectangularTileBitrate_5_3=1
equirectangularTile_6_0=1
equirectangularTileBitrate_6_0=1
equirectangularTile_6_1=1
equirectangularTileBitrate_6_1=1
equirectangularTile_6_2=1
equirectangularTileBitrate_6_2=1
equirectangularTile_6_3=1
equirectangularTileBitrate_6_3=1
equirectangularTile_7_0=1
equirectangularTileBitrate_7_0=1
equirectangularTile_7_1=1
equirectangularTileBitrate_7_1=1
equirectangularTile_7_2=1
equirectangularTileBitrate_7_2=1
equirectangularTile_7_3=1
equirectangularTileBitrate_7_3=1
;bitrate is used only if useTile=false. A ratio r means a bitrate of r
videoOutputBitRate
bitrate=1`

The bit rate of the resulting video is 3903kb/s.
https://user-images.githubusercontent.com/64078936/119605246-03187780-be23-11eb-9f36-2a9e379a303e.mp4
2

It is easy to get that 3945 is greater than 3903, so why is the bit rate of the video with some high-quality areas and some low-quality areas higher than that of the original input video?

Could you help me solve my doubt?

Regards,
Cassie

General questions

Hi.

Thanks for putting this all together. This is extremely interesting. I've thought quite a bit about the problem, without implementing things directly. The two biggest questions I had and on which I was hoping to get your thoughts are:

  • Is it possible to switch between representations before the end of the current segment? When the user turns fast for instance, the already streamed current segment is not very relevant anymore and it's be great to switch to the representation that corresponds to the new orientation without waiting 2s, if possible not streaming from the beginning of the segment frames that correspond to past time. The idea I had (which is not in ligne with the DASH framework) was something like:

    • each representation has two set of segment sets:
      • one where all frames are normal frames, with no key frames that we can represent like
        ..... ..... ..... ..... .....
      • one where all segments start with a key frame:
        |.... |.... |.... |.... |.....
    • when a representation starts to stream, a segment from the second set is streamed
    • when the same representation continues to stream, we use segments from the first set.
    • The idea is that while we're on the same representation, we don't stream expensive keyframes, which in turn make is possible to have much shorter segments, which would make the direction-adaptive streaming more reactive.
  • Do you think there'd be issues with how the required storage and processing scale with the number of representations? For instance Facebook says they use 30 different viewports, which mean 30 times the storage and processing. So the complexity is Number of viewports * Number of available qualities What's your take on an approach that would be more similar to how google map loads data, where the space is split in regions and each is independently streamed, and represented in different quality settings. If we then need things to be more precise, this would only mean have smaller regions which would have smaller file size. So complexity would be Number of viewports * Number of available qualities / Number of viewports = Number of available qualities. That has the downside of having to stream from a number of sources and putting things together on the client, but would offer much more freedom on what is streamed and which part of the viewport should has it's quality changed.

It produces abnormal boundaries after transforming from RhombicDodeca to Equirectangular

Hi,

Thanks for your sharing.

I transform 360-degree video from Equirectangular to RhombicDodeca and it works.
However, it produces obvious and abnormal boundaries when I transform it back from RhombicDodeca to Equirectangular like the following screenshots.
distortion
distortion_zoom-in

the details of configuration:

[Global]
fps=30
displayFinalPict=false
videoOutputName=./test.mp4
videoOutputBitRate=6000
qualityOutputName=
startFrame=0
nbFrames=1800
layoutFlow = [["./CG_rhom_60s.mp4", "RhombicDodeca", "Equirectangular"]]

[Equirectangular]
type=equirectangular
refWidth=3840
refHeight=1920
yaw=0
pitch=0
roll=0
relativeResolution=false
width=3840
height=1920
bitrate=1

[RhombicDodeca]
type=rhombicDodeca
refWidth=3840
refHeight=1920
relativeResolution=true
yaw=0.0
pitch=0.0
roll=0.0
rhombEdgeLengthFace1=1.414
rhombEdgeLengthFace2=1.414
rhombEdgeLengthFace3=1.414
rhombEdgeLengthFace4=1.414
rhombEdgeLengthFace5=1.414
rhombEdgeLengthFace6=1.414
rhombEdgeLengthFace7=1.414
rhombEdgeLengthFace8=1.414
rhombEdgeLengthFace9=1.414
rhombEdgeLengthFace10=1.414
rhombEdgeLengthFace11=1.414
rhombEdgeLengthFace12=1.414
useTile=false
rhombFace1Bitrate=1
rhombFace5Bitrate=1
rhombFace2Bitrate=1
rhombFace3Bitrate=1
rhombFace4Bitrate=1
rhombFace6Bitrate=1
rhombFace7Bitrate=1
rhombFace8Bitrate=1
rhombFace10Bitrate=1
rhombFace11Bitrate=1
rhombFace9Bitrate=1
rhombFace12Bitrate=1
bitrate=1

Is it normal with the obvious boundaries? Or, Is my config file something wrong?
Any suggestions are highly appreciated.

Thank you,
ShunHuai.

Issue faced when building the docker image ('make' step) - 'AVStream::codec' is deprecated

docker build -t trans360 .

$ cat Dockerfile
FROM debian:buster as builder
RUN apt-get update && apt-get upgrade -y && apt-get install -y ffmpeg libopencv-dev libboost-all-dev
RUN apt-get install -y build-essential
RUN apt-get install -y cmake libgomp1
WORKDIR /tmp
COPY . /tmp
RUN rm -rf build && mkdir build
WORKDIR /tmp/build
RUN cmake ..
RUN make

Step 10/14 : RUN make
---> Running in 037444fbfed4
Scanning dependencies of target LibAvWrapper
[ 5%] Building CXX object LibAvWrapper/CMakeFiles/LibAvWrapper.dir/src/Packet.cpp.o
[ 10%] Building CXX object LibAvWrapper/CMakeFiles/LibAvWrapper.dir/src/VideoReader.cpp.o
/tmp/LibAvWrapper/src/VideoReader.cpp: In destructor 'virtual IMT::LibAv::VideoReader::~VideoReader()':
/tmp/LibAvWrapper/src/VideoReader.cpp:34:44: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
avcodec_close(m_fmt_ctx->streams[i]->codec);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:34:44: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
avcodec_close(m_fmt_ctx->streams[i]->codec);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:34:44: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
avcodec_close(m_fmt_ctx->streams[i]->codec);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp: In function 'void printA(AVFormatContext
)':
/tmp/LibAvWrapper/src/VideoReader.cpp:50:24: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if(_a->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:50:24: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if(_a->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:50:24: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if(_a->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp: In member function 'void IMT::LibAv::VideoReader::Init(unsigned int)':
/tmp/LibAvWrapper/src/VideoReader.cpp:65:21: warning: 'void av_register_all()' is deprecated [-Wdeprecated-declarations]
av_register_all();
^
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:2043:6: note: declared here
void av_register_all(void);
^~~~~~~~~~~~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:65:21: warning: 'void av_register_all()' is deprecated [-Wdeprecated-declarations]
av_register_all();
^
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:2043:6: note: declared here
void av_register_all(void);
^~~~~~~~~~~~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:107:35: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if(m_fmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:107:35: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if(m_fmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:107:35: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if(m_fmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:109:36: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
m_fmt_ctx->streams[i]->codec->refcounted_frames = 1;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:109:36: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
m_fmt_ctx->streams[i]->codec->refcounted_frames = 1;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:109:36: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
m_fmt_ctx->streams[i]->codec->refcounted_frames = 1;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:109:43: warning: 'AVCodecContext::refcounted_frames' is deprecated [-Wdeprecated-declarations]
m_fmt_ctx->streams[i]->codec->refcounted_frames = 1;
^~~~~~~~~~~~~~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:11,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2360:9: note: declared here
int refcounted_frames;
^~~~~~~~~~~~~~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:109:43: warning: 'AVCodecContext::refcounted_frames' is deprecated [-Wdeprecated-declarations]
m_fmt_ctx->streams[i]->codec->refcounted_frames = 1;
^~~~~~~~~~~~~~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:11,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2360:9: note: declared here
int refcounted_frames;
^~~~~~~~~~~~~~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:109:43: warning: 'AVCodecContext::refcounted_frames' is deprecated [-Wdeprecated-declarations]
m_fmt_ctx->streams[i]->codec->refcounted_frames = 1;
^~~~~~~~~~~~~~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:11,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2360:9: note: declared here
int refcounted_frames;
^~~~~~~~~~~~~~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:113:73: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
decoder = avcodec_find_decoder(m_fmt_ctx->streams[i]->codec->codec_id);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:113:73: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
decoder = avcodec_find_decoder(m_fmt_ctx->streams[i]->codec->codec_id);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:113:73: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
decoder = avcodec_find_decoder(m_fmt_ctx->streams[i]->codec->codec_id);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:119:61: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if ((ret = avcodec_open2(m_fmt_ctx->streams[i]->codec, decoder, nullptr)) < 0)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:119:61: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if ((ret = avcodec_open2(m_fmt_ctx->streams[i]->codec, decoder, nullptr)) < 0)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:119:61: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
if ((ret = avcodec_open2(m_fmt_ctx->streams[i]->codec, decoder, nullptr)) < 0)
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp: In member function 'void IMT::LibAv::VideoReader::DecodeNextStep()':
/tmp/LibAvWrapper/src/VideoReader.cpp:178:60: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
codecCtx = m_fmt_ctx->streams[streamId]->codec;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:178:60: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
codecCtx = m_fmt_ctx->streams[streamId]->codec;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:178:60: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
codecCtx = m_fmt_ctx->streams[streamId]->codec;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:216:72: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
avcodec_send_packet(m_fmt_ctx->streams[m_videoStreamIds[i]]->codec, nullptr);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:216:72: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
avcodec_send_packet(m_fmt_ctx->streams[m_videoStreamIds[i]]->codec, nullptr);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:216:72: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
avcodec_send_packet(m_fmt_ctx->streams[m_videoStreamIds[i]]->codec, nullptr);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:225:86: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
codecCtx = m_fmt_ctx->streams[m_videoStreamIds[streamVectId]]->codec;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:225:86: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
codecCtx = m_fmt_ctx->streams[m_videoStreamIds[streamVectId]]->codec;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:225:86: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
auto
codecCtx = m_fmt_ctx->streams[m_videoStreamIds[streamVectId]]->codec;
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:227:101: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
int ret = avcodec_receive_frame(m_fmt_ctx->streams[m_videoStreamIds[streamVectId]]->codec, frame_ptr);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:227:101: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
int ret = avcodec_receive_frame(m_fmt_ctx->streams[m_videoStreamIds[streamVectId]]->codec, frame_ptr);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
/tmp/LibAvWrapper/src/VideoReader.cpp:227:101: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
int ret = avcodec_receive_frame(m_fmt_ctx->streams[m_videoStreamIds[streamVectId]]->codec, frame_ptr);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoReader.hpp:12,
from /tmp/LibAvWrapper/src/VideoReader.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
[ 15%] Building CXX object LibAvWrapper/CMakeFiles/LibAvWrapper.dir/src/VideoWriter.cpp.o
In file included from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/tmp/LibAvWrapper/inc/VideoWriter.hpp: In member function 'void IMT::LibAv::VideoWriter::Init(std::__cxx11::string, std::array<unsigned int, nbStreams>, std::array<unsigned int, nbStreams>, unsigned int, unsigned int, std::array<int, nbStreams>)':
/tmp/LibAvWrapper/inc/VideoWriter.hpp:94:58: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
m_codec_ctx.push_back(m_vstream[id]->codec);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoWriter.hpp:9,
from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
In file included from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/tmp/LibAvWrapper/inc/VideoWriter.hpp:94:58: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
m_codec_ctx.push_back(m_vstream[id]->codec);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoWriter.hpp:9,
from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
In file included from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/tmp/LibAvWrapper/inc/VideoWriter.hpp:94:58: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
m_codec_ctx.push_back(m_vstream[id]->codec);
^~~~~
In file included from /tmp/LibAvWrapper/inc/VideoWriter.hpp:9,
from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:878:21: note: declared here
AVCodecContext *codec;
^~~~~
In file included from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/tmp/LibAvWrapper/inc/VideoWriter.hpp:134:38: warning: 'AVCodecContext::refcounted_frames' is deprecated [-Wdeprecated-declarations]
m_codec_ctx[id]->refcounted_frames = 1;
^~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:319,
from /tmp/LibAvWrapper/inc/VideoWriter.hpp:9,
from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2360:9: note: declared here
int refcounted_frames;
^~~~~~~~~~~~~~~~~
In file included from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/tmp/LibAvWrapper/inc/VideoWriter.hpp:134:38: warning: 'AVCodecContext::refcounted_frames' is deprecated [-Wdeprecated-declarations]
m_codec_ctx[id]->refcounted_frames = 1;
^~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:319,
from /tmp/LibAvWrapper/inc/VideoWriter.hpp:9,
from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2360:9: note: declared here
int refcounted_frames;
^~~~~~~~~~~~~~~~~
In file included from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/tmp/LibAvWrapper/inc/VideoWriter.hpp:134:38: warning: 'AVCodecContext::refcounted_frames' is deprecated [-Wdeprecated-declarations]
m_codec_ctx[id]->refcounted_frames = 1;
^~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:319,
from /tmp/LibAvWrapper/inc/VideoWriter.hpp:9,
from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2360:9: note: declared here
int refcounted_frames;
^~~~~~~~~~~~~~~~~
In file included from /tmp/LibAvWrapper/src/VideoWriter.cpp:1:
/tmp/LibAvWrapper/inc/VideoWriter.hpp:174:45: error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope
codec_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
^~~~~~~~~~~~~~~~~~~~~~~~
/tmp/LibAvWrapper/inc/VideoWriter.hpp:174:45: note: suggested alternative: 'AV_CODEC_FLAG_GLOBAL_HEADER'
codec_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
^~~~~~~~~~~~~~~~~~~~~~~~
AV_CODEC_FLAG_GLOBAL_HEADER
make[2]: *** [LibAvWrapper/CMakeFiles/LibAvWrapper.dir/build.make:89: LibAvWrapper/CMakeFiles/LibAvWrapper.dir/src/VideoWriter.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:91: LibAvWrapper/CMakeFiles/LibAvWrapper.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
The command '/bin/sh -c make' returned a non-zero code: 2

Vagrant Box failed to unpackage properly

bitnami@ip-172-31-41-171:~$ wget http://dash.ipv6.enstb.fr/headMovements/archives/360TransformationsDebianVagrant.box
--2019-02-05 11:54:12-- http://dash.ipv6.enstb.fr/headMovements/archives/360TransformationsDebianVagrant.box
Resolving dash.ipv6.enstb.fr (dash.ipv6.enstb.fr)... 192.108.119.146, 2001:660:7301:1:20c:29ff:fe27:664a
Connecting to dash.ipv6.enstb.fr (dash.ipv6.enstb.fr)|192.108.119.146|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3696476461 (3.4G)
Saving to: ‘360TransformationsDebianVagrant.box’
360TransformationsDebianVagrant.box 100%[=====================================================================================>] 3.44G 11.1MB/s in 6m 6s
2019-02-05 12:00:20 (9.63 MB/s) - ‘360TransformationsDebianVagrant.box’ saved [3696476461/3696476461]

bitnami@ip-172-31-41-171:$ vagrant -v
Vagrant 1.8.1
bitnami@ip-172-31-41-171:
$

bitnami@ip-172-31-41-171:~$ vagrant box add '360TransformationsDebianVagrant' '360TransformationsDebianVagrant.box'
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box '360TransformationsDebianVagrant' (v0) for provider:
box: Unpacking necessary files from: file:///home/bitnami/360TransformationsDebianVagrant.box
The box failed to unpackage properly. Please verify that the box
file you're trying to add is not corrupted and try again. The
output from attempting to unpackage (if any):

x ./box.ovf
x ./box-disk001.vmdk: Write failed
x ./vagrant_private_key: Write failed
x ./Vagrantfile: Write failed
bsdtar: Error exit delayed from previous errors.

I have performed the download twice just to be sure that the box did not download correctly on the first attempt.

Optimization

Each transformation takes too much time. Optimization seems needed

Target Bitrate does not work?

Like the question in the title, when I want transform equirectangular video to cubemap with target one bitrate. But the result video's bitrate is not same as I want in config file.

A syntax problem

In the common.hpp, it's a error "error C2065,'i' Undeclared identifier"
the program is: template constexpr double norm(const SpacePoint& sp) {return cv::norm(sp.d);}
and also in front of "double" missed a ";"

Viewport from 360 video frame.

Dear all,

I am working in a project that I need to extract a viewport from a 360 video frame and I have seen in the previous issues the LayoutFlatFixed class deals with this topic.
However, I have looked for in the folder of the project transformation/MainProject/src and I did not find any case that LayoutFlatFixed is used.
Could you please suggest anything to me?

Regards,

Dario

Issue with MS-SSIM function in your code

I think that there is a problem with your MS-SSIM function in file Picture.cpp (line 271)

//overall_mssim = prod(mcs_array(1:level-1).^weight(1:level-1))*mssim_array(level);
double msssim = mssim[m_nlevs-1];
for (int l=0; l<m_nlevs-1; l++)
{
msssim *= pow(mcs[l], m_mssimWeight[l]);
}
return msssim;

According to the paper "MULTI-SCALE STRUCTURAL SIMILARITY FOR IMAGE QUALITY ASSESSMENT" of Zhou Wang, the true formula of MS-SSIM is
image
So I think that in line 272 of your code, it should be

double msssim = mssim[m_nlevs-1] * m_mssimWeight[m_nlevs-1];

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.