marlam / bino Goto Github PK
View Code? Open in Web Editor NEW3D video player with support for 180°/360° video and Virtual Reality
Home Page: https://bino3d.org
License: GNU General Public License v3.0
3D video player with support for 180°/360° video and Virtual Reality
Home Page: https://bino3d.org
License: GNU General Public License v3.0
2.2 fail to build under Debian unstable amd64 QT6 6.6.2
/build/bino-dmo-2.2/src/commandinterpreter.cpp:235:38: error: ‘QGuiApplication’ has not been declared
235 | screenInputDevices = QGuiApplication::screens();
| ^~~~~~~~~~~~~~~```
This simple patch fix this issue
```--- a/src/commandinterpreter.hpp
+++ b/src/commandinterpreter.hpp
@@ -23,6 +23,7 @@
#include <QFile>
#include <QList>
#include <QTimer>
+#include <QGuiApplication>```
Hi, I've been trying to install this on a Raspberry Pi running Raspbian (version Buster), but run into a lot of issues with missing dependencies. I think I managed to get most of them, and am finally able to get some results when running ./configure; make; make install
, but now get a lot of new errors that I don't understand.
Below is the end of the error report, I can't copy all of them in here, as the errors fill my entire terminal window (I can't even scroll up to the top). All errors are similar to this:
In file included from video_output_qt.h:26,
from dispatch.cpp:43:
/usr/include/GL/glew.h:20880:41: note: previous declaration ‘void (* __glewTexBufferRange)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr)’
GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange;
^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/arm-linux-gnueabihf/qt5/QtGui/qopengl.h:105,
from /usr/include/arm-linux-gnueabihf/qt5/QtOpenGL/qgl.h:45,
from /usr/include/arm-linux-gnueabihf/qt5/QtOpenGL/QGLWidget:1,
from video_output_qt.h:29,
from dispatch.cpp:43:
/usr/include/GLES3/gl32.h:1821:187: error: ‘void __glewTexStorage3DMultisample(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean)’ redeclared as different kind of symbol
num internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
^
In file included from video_output_qt.h:26,
from dispatch.cpp:43:
/usr/include/GL/glew.h:20901:50: note: previous declaration ‘void (* __glewTexStorage3DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean)’
GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:808: dispatch.o] Error 1
make[3]: Leaving directory '/home/pi/bino/src'
make[2]: *** [Makefile:954: install-recursive] Error 1
make[2]: Leaving directory '/home/pi/bino/src'
make[1]: *** [Makefile:1114: install] Error 2
make[1]: Leaving directory '/home/pi/bino/src'
make: *** [Makefile:456: install-recursive] Error 1
Does anyone have any idea what I can do to solve this?
Would be appreciated!
Hi!
I know that macOS Big Sur is still under development, but I wanted to try to see if Bino could work. It's working fine under the latest public beta of Catalina (using the precompiled binary from Frédéric Devernay)
Under macOS Big Sur, both the version of Frédéric and the one I compiled myself(more info of my config below) from git have the same critical bug. On opening, we can see quickly the main window but disappear right after with an error code 11 (Segmentation fault). Here is the log I get:
If I try using the terminal to run the app with no GUI and no video to play, everything is fine.
If I try to play a video with no GUI by using the following command in the terminal ./Bino.app/Contents/MacOS/Bino -n --log-file=LOG --log-level=debug /Volumes/macOS/Films/Frozen.II.2019.3D.1080p.BluRay.x264-GUACAMOLE\[rarbg\]/gua-frozen2.3d-1080p.mkv
, then the app get a different log file. As you can see, the app seems to be able to parse the movie, but fails to show the movie (the movie is show for half a second and then it crashes).
Here is the log I get when try to play the movie:
Log
Here is the configuration I had when building the app from source:
I had a few minor bug to fix before it could compile (fix a gettext problem with mismatching macros and two lines of code in media_object.cpp
so it would be working with the latest version of FFmpeg).
If you want someone to test your builds, it would be a pleasure to help!
EDIT: I put my logs on Pastebin because they would take quite a lot of space here.
There appear to be multiple issues with subtitle rendering in Bino.
This was tested on Bino commit ddf9854 (tag: bino-1.6.8). Sample files, logs, debug patches and screenshots can be found in the attached archive: bino_i13_samples.zip. For a comparison to a correct reference there are also a few correct_*
screenshots obtained from a recent mpv+libass, but they don't cover everything.
Most notably, some subtitle events go missing, i.e. they aren't rendered at all.
So for the test_108p.{mkv,ass}
sample Bino only displays this
but it should actually render the following (for both sides, the anamorphic sample is similar see archive):
. And in the aegisub-formattest.{mkv,ass}
sample several overlapping events go missing leaving only one; among other this happens e.g. with those two events:
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0000,0000,0000,,Now going to test conflict resolution. {By the way, this is a common abuse, "inline-comments" in override tag groups. They should not be rendered and not generate errors, just be i
gnored.}
Dialogue: 0,0:00:07.50,0:00:09.00,Default,,0000,0000,0000,,This line should be above the previous.
At first I suspected the bitmaps were dropped somewhere during blending and afaict this could also happen if a zero-area bitmap is mixed into the results. At some places only max_x < 0
was checked; just in case I also added checks for max_y
but I'm not sure if that can actually cause problems. Either way, I applied the following patch:
diff --git a/src/subtitle_renderer.cpp b/src/subtitle_renderer.cpp
index efc3cc5..05d5e38 100644
--- a/src/subtitle_renderer.cpp
+++ b/src/subtitle_renderer.cpp
@@ -459,8 +459,10 @@ bool subtitle_renderer::prerender_ass(const subtitle_box &box, int64_t timestamp
int min_y = height;
int max_y = -1;
ASS_Image *img = _ass_img;
- while (img && img->w > 0 && img->h > 0)
+ while (img)
{
+ if(img->w == 0 && img->h == 0)
+ continue;
if (img->dst_x < min_x)
min_x = img->dst_x;
if (img->dst_x + img->w - 1 > max_x)
@@ -471,7 +473,7 @@ bool subtitle_renderer::prerender_ass(const subtitle_box &box, int64_t timestamp
max_y = img->dst_y + img->h - 1;
img = img->next;
}
- if (max_x < 0)
+ if (max_x < 0 || max_y < 0)
{
_bb_x = 0;
_bb_y = 0;
@@ -494,10 +496,12 @@ void subtitle_renderer::render_ass(uint32_t *bgra32_buffer)
{
std::memset(bgra32_buffer, 0, _bb_w * _bb_h * sizeof(uint32_t));
ASS_Image *img = _ass_img;
- while (img && img->w > 0 && img->h > 0)
+ while (img)
{
- blend_ass_image(img, bgra32_buffer);
+ if (img->w > 0 && img->h > 0)
+ blend_ass_image(img, bgra32_buffer);
img = img->next;
+ printf(" ------ R_A: Blend Image %2d\n", i++);
}
}
}
@@ -522,7 +526,7 @@ bool subtitle_renderer::prerender_img(const subtitle_box &box)
if (img.y + img.h - 1 > max_y)
max_y = img.y + img.h - 1;
}
- if (max_x < 0)
+ if (max_x < 0 || max_y < 0)
{
_bb_x = 0;
_bb_y = 0;
But this didn't resolve the issue, and adding more debugging messages (see archive) revealed that the events weren't even showing up in the data fed to libass. Unfortunately I couldn't quite follow the function calls to determine where the file is read and was thus unable to look further into why this happens.
In particular, the output from the aegisub-formattest.{mkv,ass}
sample suggests Bino is continuously flushing or recreating the track and trying to only adding the currently active events; I suspect this is where things go wrong. Note that ASS events in a file are not required to be in chronological order. Unless expecting to work with very large subtitle streams, whose complete content does not fit into memory, it may be more robust to just feed the entire file to libass or in case of muxed packets, pass the packets to ass_process_chunk
without flushing or recreating the track.
.
Furthermore, I also noticed Bino is not calling ass_set_storage_size
, which means that even if the events are passed to libass the rendering may be incorrect, notably for the 1080p
and anamorphic
samples since 3D-transforms and other tags unfortunately depend on the videos storage resolution in ASS.
To fix this, Bino should call ass_set_storage_size
telling libass the video’s nominal size before anamorphic de-squeezing, i.e. the size the video is encoded in with codec-level crop applied. Just using the size the decoder reports will most-likely already match this; compare to the correct_*
screenshots from the attached archive to empirically validate it matches.
.
As a final note, the ASS header used for converted subs could also be improved.
Omitting the Style
field entirely in the event’s Format
will iinm result in “the default ASS fallback style” being used instead of the Default
style specified in the [V4+ Styles]
section; adding the Style
field and setting it to Default
for all events will resolve this.
In general to get reasonable results across different video sizes, ScaledBorderAndShadow: yes\n
should be added to the [Script Info]
section (however due to using a custom Format line this is already the default). Specifying PlayResX
and PlayResY
such that they match the video’s aspect ratio might also be a good idea.
For your information: using custom Format lines is a libass-specific extension which doesn't work in other ASS renderers — however since it’s only used for temporary internal conversions and not written into an actual file this shouldn't be a problem here.
/home/chris/.var/app/org.bino3d.bino/config/
This folder does not exist when the Flatpak is installed, so there's no path registry. Building/installing QVR and then Bino on Arch Linux from AUR might give VR functionality with my Index - I'm not sure as testing that has other issues, such as:
Hardware does not support image size 4320x2160 (constraints: width 0-4096 height 0-4096)
The native resolution of the Index display(s) shouldn't matter, should it? Isn't it a virtual screen?
Build Bino with QVR support: YES
-D QVR_FOUND=OFF
)target_link_libraries(bino PRIVATE Qt6::OpenGLWidgets Qt6::Multimedia ${QVR_LIBRARIES})
3D video players are very rare, so bino3d is a very nice software ...
Are there chances to get it work on a raspberry pi 5? Compilation did not work, ore is there a step-by-step instruction for doing this. Are there binaries or repos?
Thank you
bino2.1 compiled with libQVR and VRPN on linux. Run ok. I'm exploring VR modes for a CAVE.
when a movie is played with the following QVR config, 2 windows open, but the right one is a little larger. I'd expect them to be the same size. There's 2 x 4K screens. The '2nd screen' is on the left, so the primary screen starts at (3840,0) instead of (0,0).
The 2 windows pop-up on the primary screen (wrong). To get the size right I might have to make the screen dpi's the same (the screens are not actually the same physical size: it's a laptop screen, with an external monitor on the left). However, both 200x200 windows are on the same (wrong) screen, so i'd still expect them the same size.
Config file is based on an example config file from the libQVR examples.
observer o0
navigation wasdqe
tracking custom
process main
## ipc tcp-socket
ipc local-socket
## ipc shared-memory
window 0
observer o0
position 1500 100
size 200 200
screen_is_fixed_to_observer false
screen_is_given_by_center false
screen_wall 0 -1 -10 2 -1 -10 0 +1 -10
process child
launcher ssh localhost env LD_LIBRARY_PATH=/opt/bino/lib
display :0.0
window 1
observer o0
position 1700 100
size 200 200
screen_is_fixed_to_observer false
screen_is_given_by_center false
screen_wall -2 -1 -10 0 -1 -10 -2 +1 -10
Command with firehose debug output shows:
$ bino --vr --qvr-config=/home/ben/da/dev/qvr/configs/2-process-ssh.localhost.qvr --qvr-log-level=firehose ~/Movies/myMovie.mp4
QVR[0]: starting IPC server
QVR[0]: launching child process child (index 1) ...
QVR[0]: waiting for child processes to connect to main ...
QVR[1]: child process child (index 1) connecting to main ...
QVR[1]: connected to local server /tmp/qvr-91a9c67f-465e-4d85-b683-2623f4a984b0
QVR[1]: ... done
QVR[1]: child process child (index 1) waiting for init command from main ...
QVR[0]: client with process index 1 connected
QVR[0]: ... all clients connected
QVR[0]: initializing child processes with 204 bytes of static application data
QVR[0]: process main (index 0) uses default display which has 2 screens, default screen is 0
QVR[0]: screen 0: size 0.382x0.215 meters, geometry x=3840 y=0 w=2194 h=1234
QVR[0]: screen 1: size 0.597x0.336 meters, geometry x=0 y=0 w=2194 h=1234
QVR[0]: process main (index 0) creating 1 windows
QVR[0]: main window...
QVR[1]: ... done
QVR[1]: initializing child process child (index 1) ...
QVR[1]: ... done
QVR[1]: process child (index 1) uses display :0.0 which has 2 screens, default screen is 0
QVR[1]: screen 0: size 0.382x0.215 meters, geometry x=3840 y=0 w=1993 h=1121
QVR[1]: screen 1: size 0.597x0.336 meters, geometry x=0 y=0 w=1993 h=1121
QVR[1]: process child (index 1) creating 1 windows
QVR[1]: main window...
QVR[1]: context is OpenGL 3.3 core profile
QVR[0]: context is OpenGL 3.3 core profile
QVR[1]: OpenGL version: 3.3.0 NVIDIA 470.239.06
QVR[1]: OpenGL SL version: 3.30 NVIDIA via Cg compiler
QVR[1]: OpenGL vendor: NVIDIA Corporation
QVR[1]: OpenGL renderer: NVIDIA GeForce GTX 1080/PCIe/SSE2
QVR[0]: OpenGL version: 3.3.0 NVIDIA 470.239.06
QVR[0]: OpenGL SL version: 3.30 NVIDIA via Cg compiler
QVR[0]: OpenGL vendor: NVIDIA Corporation
QVR[0]: OpenGL renderer: NVIDIA GeForce GTX 1080/PCIe/SSE2
QVR[1]: window 0...
QVR[0]: window 0...
QVR[1]: context is OpenGL 3.3 core profile
QVR[0]: context is OpenGL 3.3 core profile
QVR[1]: OpenGL version: 3.3.0 NVIDIA 470.239.06
QVR[1]: OpenGL SL version: 3.30 NVIDIA via Cg compiler
QVR[1]: OpenGL vendor: NVIDIA Corporation
QVR[1]: OpenGL renderer: NVIDIA GeForce GTX 1080/PCIe/SSE2
QVR[0]: OpenGL version: 3.3.0 NVIDIA 470.239.06
QVR[0]: OpenGL SL version: 3.30 NVIDIA via Cg compiler
QVR[0]: OpenGL vendor: NVIDIA Corporation
QVR[0]: OpenGL renderer: NVIDIA GeForce GTX 1080/PCIe/SSE2
QVR[1]: creating window 1...
QVR[1]: screen: 0
QVR[1]: position 1700,100 size 200x200
QVR[1]: ... done
QVR[0]: creating window 0...
QVR[0]: screen: 0
QVR[0]: position 1500,100 size 200x200
QVR[0]: ... done
QVR[0]: mainLoop() ...
QVR[0]: ... updating observer 0
QVR[0]: ... sending wasdqe state (9 bytes) to child processes
QVR[0]: ... sending observer 0 (228 bytes) to child processes
QVR[0]: ... sending dynamic application data (2 bytes) to child processes
QVR[0]: ... rendering commands are on their way
QVR[0]: render() ...
QVR[0]: ... preRenderProcess()
QVR[0]: ... preRenderWindow(0)
QVR[0]: ... render(0)
QVR[0]: ... view 0 frustum: l=-0 r=0.01 b=-0.01305 t=-0.00305 n=0.05 f=100
QVR[0]: ... view 0 viewmatrix: [1 0 0 0] [0 1 0 -1.61] [0 0 1 0] [0 0 0 1]
QVR[1]: ... got command 'wasdqestate' from main
QVR[1]: ... got command 'observer' from main
QVR[1]: ... got command 'render' from main
QVR[1]: render() ...
QVR[1]: ... preRenderProcess()
QVR[1]: ... preRenderWindow(0)
QVR[1]: ... render(0)
QVR[1]: ... view 0 frustum: l=-0.01 r=0 b=-0.01305 t=-0.00305 n=0.05 f=100
QVR[1]: ... view 0 viewmatrix: [1 0 0 0] [0 1 0 -1.61] [0 0 1 0] [0 0 0 1]
QVR[0]: ... postRenderWindow(0)
QVR[0]: ... postRenderProcess()
QVR[0]: ... renderToScreen(0)
QVR[0]: ... asyncSwapBuffers(0)
QVR[0]: ... event processing
QVR[0]: ... app update
QVR[0]: ... waiting for buffer swap 0...
QVR[0]: ... buffer swap 0 done.
QVR[0]: ... waiting for children to sync
QVR[1]: ... postRenderWindow(0)
QVR[1]: ... postRenderProcess()
QVR[1]: ... renderToScreen(0)
QVR[1]: ... asyncSwapBuffers(0)
QVR[1]: ... waiting for buffer swap 0...
QVR[1]: ... buffer swap 0 done.
QVR[1]: ... sending command 'sync' with 0 events in 0 bytes to main
:
I love this feature though I use it a bit differently 😉 :
Opening multiple files should not only work with using Menu > File > Open but also when opening multiple files via double click in Finder which are associated to open with Bino or via drag-n-drop onto Bino.app icon.
--> From now on sync is broken.
Bino fails to install error manjaro xfce
20.2.1
config.status: create src / base / Makefile
config.status: Create src / Makefile
config.status: create document / Makefile
config.status: Create pkg / macosx / Info.plist
config.status: create config.h
config.status: config.h hasn't changed
config.status: Execute file delete commands
config.status: executing po directory commands
config.status: create po / POTFILES
config.status: create po / Makefile
Configuration:
NLS: yes
Equalizer: no
NVIDIA Quadro SDI Output: No
lirc: yes
make recursive
make [1]: enter directory "/ home / anton / bino"
Doing everything in software
make [2]: enter directory "/ home / anton / bino / po"
*** error: gettext infrastructure mismatch: Makefile.in.in from gettext version 0.19 is used, but autoconf macros are from gettext version 0.20
make [2]: *** [Makefile: 201: stamp-po] Error 1
make [2]: exit the directory "/ home / anton / bino / po"
make [1]: *** [Makefile: 458: fully recursive] Error 1
make [1]: exit "/ home / anton / bino" directory
make: *** [Makefile: 397: all] Error 2
Installing in po
make [1]: enter directory "/ home / anton / bino / po"
*** error: gettext infrastructure mismatch: Makefile.in.in from gettext version 0.19 is used, but autoconf macros are from gettext version 0.20
make [1]: *** [Makefile: 201: stamp-po] Error 1
make [1]: exit the directory "/ home / anton / bino / po"
make: *** [Makefile: 458: recursive install] Error 1
Compilation of the latest dev version on Arch Linux terminates with error due to FFMPEG changes:
make[4]: Leaving directory '/home/jose/tmp/bino-git/src/bino-git/src/base'
make[4]: Entering directory '/home/jose/tmp/bino-git/src/bino-git/src'
CXX media_data.o
CXX media_object.o
media_object.cpp: In constructor ‘media_object::media_object(bool)’:
media_object.cpp:348:21: warning: ‘void av_register_all()’ is deprecated [-Wdeprecated-declarations]
348 | av_register_all();
| ^
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:2050:6: note: declared here
2050 | void av_register_all(void);
| ^~~~~~~~~~~~~~~
media_object.cpp: In member function ‘void media_object::open(const string&, const device_request&)’:
media_object.cpp:886:70: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
886 | AVCodecContext *codec_ctx = _ffmpeg->format_ctx->streams[i]->codec;
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:886:70: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
886 | AVCodecContext *codec_ctx = _ffmpeg->format_ctx->streams[i]->codec;
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:886:70: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
886 | AVCodecContext *codec_ctx = _ffmpeg->format_ctx->streams[i]->codec;
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:908:60: error: ‘CODEC_CAP_DR1’ was not declared in this scope; did you mean ‘AV_CODEC_CAP_DR1’?
908 | if (lowres || (codec && (codec->capabilities & CODEC_CAP_DR1)))
| ^~~~~~~~~~~~~
| AV_CODEC_CAP_DR1
media_object.cpp:909:37: error: ‘CODEC_FLAG_EMU_EDGE’ was not declared in this scope
909 | codec_ctx->flags |= CODEC_FLAG_EMU_EDGE;
| ^~~~~~~~~~~~~~~~~~~
media_object.cpp:950:98: warning: ‘int avpicture_get_size(AVPixelFormat, int, int)’ is deprecated [-Wdeprecated-declarations]
950 | _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height));
| ^
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:3739:5: note: declared here
3739 | int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height);
| ^~~~~~~~~~~~~~~~~~
media_object.cpp:953:105: warning: ‘int avpicture_fill(AVPicture*, const uint8_t*, AVPixelFormat, int, int)’ is deprecated [-Wdeprecated-declarations]
953 | frame_fmt, _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height);
| ^
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:3724:5: note: declared here
3724 | int avpicture_fill(AVPicture *picture, const uint8_t *ptr,
| ^~~~~~~~~~~~~~
media_object.cpp:962:98: warning: ‘int avpicture_get_size(AVPixelFormat, int, int)’ is deprecated [-Wdeprecated-declarations]
962 | _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height);
| ^
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:3739:5: note: declared here
3739 | int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height);
| ^~~~~~~~~~~~~~~~~~
media_object.cpp:974:115: warning: ‘int avpicture_fill(AVPicture*, const uint8_t*, AVPixelFormat, int, int)’ is deprecated [-Wdeprecated-declarations]
974 | AV_PIX_FMT_BGRA, _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height);
| ^
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:3724:5: note: declared here
3724 | int avpicture_fill(AVPicture *picture, const uint8_t *ptr,
| ^~~~~~~~~~~~~~
media_object.cpp: In member function ‘virtual void read_thread::run()’:
media_object.cpp:1353:42: warning: ‘int av_dup_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1353 | if (av_dup_packet(&packet) < 0)
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:509:5: note: declared here
509 | int av_dup_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~
media_object.cpp:1382:46: warning: ‘int av_dup_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1382 | if (av_dup_packet(&packet) < 0)
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:509:5: note: declared here
509 | int av_dup_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~
media_object.cpp:1412:46: warning: ‘int av_dup_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1412 | if (av_dup_packet(&packet) < 0)
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:509:5: note: declared here
509 | int av_dup_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~
media_object.cpp:1428:35: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1428 | av_free_packet(&packet);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp: In member function ‘virtual void video_decode_thread::run()’:
media_object.cpp:1494:68: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1494 | av_free_packet(&(_ffmpeg->video_packets[_video_stream]));
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp:1502:61: warning: ‘int avcodec_decode_video2(AVCodecContext*, AVFrame*, int*, const AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1502 | &(_ffmpeg->video_packets[_video_stream]));
| ^
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:3073:5: note: declared here
3073 | int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
| ^~~~~~~~~~~~~~~~~~~~~
media_object.cpp:1534:73: warning: ‘void av_picture_copy(AVPicture*, const AVPicture*, AVPixelFormat, int, int)’ is deprecated [-Wdeprecated-declarations]
1534 | _ffmpeg->video_codec_ctxs[_video_stream]->height);
| ^
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:3745:6: note: declared here
3745 | void av_picture_copy(AVPicture *dst, const AVPicture *src,
| ^~~~~~~~~~~~~~~
media_object.cpp: In member function ‘virtual void audio_decode_thread::run()’:
media_object.cpp:1656:60: warning: ‘int avcodec_decode_audio4(AVCodecContext*, AVFrame*, int*, const AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1656 | &audioframe, &got_frame, &tmppacket);
| ^
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:3024:5: note: declared here
3024 | int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,
| ^~~~~~~~~~~~~~~~~~~~~
media_object.cpp:1716:35: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1716 | av_free_packet(&packet);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp: In member function ‘virtual void subtitle_decode_thread::run()’:
media_object.cpp:1806:39: warning: ‘AVPacket::convergence_duration’ is deprecated [-Wdeprecated-declarations]
1806 | int64_t duration = packet.convergence_duration * 1000000
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:384:13: note: declared here
384 | int64_t convergence_duration;
| ^~~~~~~~~~~~~~~~~~~~
media_object.cpp:1806:39: warning: ‘AVPacket::convergence_duration’ is deprecated [-Wdeprecated-declarations]
1806 | int64_t duration = packet.convergence_duration * 1000000
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:384:13: note: declared here
384 | int64_t convergence_duration;
| ^~~~~~~~~~~~~~~~~~~~
media_object.cpp:1806:39: warning: ‘AVPacket::convergence_duration’ is deprecated [-Wdeprecated-declarations]
1806 | int64_t duration = packet.convergence_duration * 1000000
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:384:13: note: declared here
384 | int64_t convergence_duration;
| ^~~~~~~~~~~~~~~~~~~~
media_object.cpp:1855:72: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1855 | std::memcpy(&(box.images.back().palette[0]), rect->pict.data[1],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1855:72: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1855 | std::memcpy(&(box.images.back().palette[0]), rect->pict.data[1],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1855:72: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1855 | std::memcpy(&(box.images.back().palette[0]), rect->pict.data[1],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1855:77: warning: ‘AVPicture::data’ is deprecated [-Wdeprecated-declarations]
1855 | std::memcpy(&(box.images.back().palette[0]), rect->pict.data[1],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2629:14: note: declared here
2629 | uint8_t *data[AV_NUM_DATA_POINTERS]; ///< pointers to the image data planes
| ^~~~
media_object.cpp:1855:77: warning: ‘AVPicture::data’ is deprecated [-Wdeprecated-declarations]
1855 | std::memcpy(&(box.images.back().palette[0]), rect->pict.data[1],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2629:14: note: declared here
2629 | uint8_t *data[AV_NUM_DATA_POINTERS]; ///< pointers to the image data planes
| ^~~~
media_object.cpp:1855:77: warning: ‘AVPicture::data’ is deprecated [-Wdeprecated-declarations]
1855 | std::memcpy(&(box.images.back().palette[0]), rect->pict.data[1],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2629:14: note: declared here
2629 | uint8_t *data[AV_NUM_DATA_POINTERS]; ///< pointers to the image data planes
| ^~~~
media_object.cpp:1857:56: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1857 | box.images.back().linesize = rect->pict.linesize[0];
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1857:56: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1857 | box.images.back().linesize = rect->pict.linesize[0];
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1857:56: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1857 | box.images.back().linesize = rect->pict.linesize[0];
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1857:61: warning: ‘AVPicture::linesize’ is deprecated [-Wdeprecated-declarations]
1857 | box.images.back().linesize = rect->pict.linesize[0];
| ^~~~~~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2631:9: note: declared here
2631 | int linesize[AV_NUM_DATA_POINTERS]; ///< number of bytes per line
| ^~~~~~~~
media_object.cpp:1857:61: warning: ‘AVPicture::linesize’ is deprecated [-Wdeprecated-declarations]
1857 | box.images.back().linesize = rect->pict.linesize[0];
| ^~~~~~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2631:9: note: declared here
2631 | int linesize[AV_NUM_DATA_POINTERS]; ///< number of bytes per line
| ^~~~~~~~
media_object.cpp:1857:61: warning: ‘AVPicture::linesize’ is deprecated [-Wdeprecated-declarations]
1857 | box.images.back().linesize = rect->pict.linesize[0];
| ^~~~~~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2631:9: note: declared here
2631 | int linesize[AV_NUM_DATA_POINTERS]; ///< number of bytes per line
| ^~~~~~~~
media_object.cpp:1859:69: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1859 | std::memcpy(&(box.images.back().data[0]), rect->pict.data[0],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1859:69: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1859 | std::memcpy(&(box.images.back().data[0]), rect->pict.data[0],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1859:69: warning: ‘AVSubtitleRect::pict’ is deprecated [-Wdeprecated-declarations]
1859 | std::memcpy(&(box.images.back().data[0]), rect->pict.data[0],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2671:15: note: declared here
2671 | AVPicture pict;
| ^~~~
media_object.cpp:1859:74: warning: ‘AVPicture::data’ is deprecated [-Wdeprecated-declarations]
1859 | std::memcpy(&(box.images.back().data[0]), rect->pict.data[0],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2629:14: note: declared here
2629 | uint8_t *data[AV_NUM_DATA_POINTERS]; ///< pointers to the image data planes
| ^~~~
media_object.cpp:1859:74: warning: ‘AVPicture::data’ is deprecated [-Wdeprecated-declarations]
1859 | std::memcpy(&(box.images.back().data[0]), rect->pict.data[0],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2629:14: note: declared here
2629 | uint8_t *data[AV_NUM_DATA_POINTERS]; ///< pointers to the image data planes
| ^~~~
media_object.cpp:1859:74: warning: ‘AVPicture::data’ is deprecated [-Wdeprecated-declarations]
1859 | std::memcpy(&(box.images.back().data[0]), rect->pict.data[0],
| ^~~~
In file included from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/avcodec.h:2629:14: note: declared here
2629 | uint8_t *data[AV_NUM_DATA_POINTERS]; ///< pointers to the image data planes
| ^~~~
media_object.cpp:1892:31: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1892 | av_free_packet(&packet);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp: In member function ‘void media_object::seek(int64_t)’:
media_object.cpp:1945:88: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1945 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->video_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1945:88: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1945 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->video_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1945:88: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1945 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->video_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1948:63: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1948 | av_free_packet(&_ffmpeg->video_packet_queues[i][j]);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp:1954:88: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1954 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->audio_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1954:88: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1954 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->audio_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1954:88: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1954 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->audio_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1958:63: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1958 | av_free_packet(&_ffmpeg->audio_packet_queues[i][j]);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp:1964:73: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1964 | if (_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec->codec_id != AV_CODEC_ID_TEXT)
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1964:73: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1964 | if (_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec->codec_id != AV_CODEC_ID_TEXT)
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1964:73: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1964 | if (_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec->codec_id != AV_CODEC_ID_TEXT)
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1967:95: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1967 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1967:95: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1967 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1967:95: warning: ‘AVStream::codec’ is deprecated [-Wdeprecated-declarations]
1967 | avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec);
| ^~~~~
In file included from media_object.cpp:30:
/usr/include/libavformat/avformat.h:880:21: note: declared here
880 | AVCodecContext *codec;
| ^~~~~
media_object.cpp:1972:66: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
1972 | av_free_packet(&_ffmpeg->subtitle_packet_queues[i][j]);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp: In member function ‘void media_object::close()’:
media_object.cpp:2070:71: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
2070 | av_free_packet(&_ffmpeg->video_packet_queues[i][j]);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp:2075:60: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
2075 | av_free_packet(&(_ffmpeg->video_packets[i]));
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp:2093:71: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
2093 | av_free_packet(&_ffmpeg->audio_packet_queues[i][j]);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
media_object.cpp:2116:74: warning: ‘void av_free_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
2116 | av_free_packet(&_ffmpeg->subtitle_packet_queues[i][j]);
| ^
In file included from /usr/include/libavcodec/bsf.h:30,
from /usr/include/libavcodec/avcodec.h:44,
from /usr/include/libavformat/avformat.h:312,
from media_object.cpp:30:
/usr/include/libavcodec/packet.h:538:6: note: declared here
538 | void av_free_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
make[4]: *** [Makefile:807: media_object.o] Error 1
make[4]: Leaving directory '/home/jose/tmp/bino-git/src/bino-git/src'
Environment:
Arch Linux, x86_64, ffmpeg 2:4.3.2-5
Hi!
On XUbuntu 20.10, I got this error message at compilation time, strangely coming from standard QT lib:
In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:45,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmainwindow.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QMainWindow:1,
from mainwindow.h:31,
from gui.h:33,
from dispatch.cpp:41:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h: In member function ‘bool QObject::isWindowType() const’:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:154:54: error: ‘class QObjectData’ has no member named ‘ksWindow’; did you mean ‘isWindow’?
154 | inline bool isWindowType() const { return d_ptr->ksWindow; }
| ^~~~~~~~
| isWindow
Any idea?
Best regards,
Etienne
PS: Windows EXE version works nicely using Wine. I just had to play a bit with the sound delay.
:)
First, I wanted to thank you for making such a useful program and keeping it updated even when 3D technology is not being produced much anymore, while also keeping it open source. I have used it over the past 7 years. I recently upgraded from an older system from 2015 that was able to do opengl stereo output mode which allowed my gpu to output a frame packed HDMI signal which always worked perfectly with my 3D projector. My new system is an RTX 3080 which has no support for the opengl quad buffering. I found that my projector supports another mode which I had never used before called frame sequential and was happy that I may continue watching 3D movies but I had an issue.
Since the movie I tried is in 23.97 FPS, as most are, I decided to set my display to 47.95 FPS using a custom display mode and then use the frame alternating mode both in the projector and in Bino to send the 3D data to the projector at full 1080p23.97 resolution. This works which I am happy about, but the video stutters randomly (both in linux and windows). The sources I tried are a Full Top over Bottom mkv so 1920x2160 resolution and a Half Side by Side MKV 1920x1080.
Along with stutters sometimes the parallax jumps back and forth randomly only within the frame alternating output mode. Both of these issues ruin the 3D effect and may cause you to get sick sadly. I tried many settings such as forcing VSync, triple buffering, & more through the NVIDIA control panel for Bino and also other display refresh rates (60Hz and 24Hz) but my projector does not support 1080p at anything higher than 60fps it seems.
Another thing I noticed which I suspect may be related to the stuttering noted above is that the speed of the movie (in any output mode in Bino) depends on the refresh rate of the monitor! I got a 165 Hz monitor recently with my new PC and on that monitor, the speed of the video is VERY fast both in Windows Bino v1.6.8 and Linux Bino v2.0. Pausing and resuming seems to change the speed to a more normal rate but changing focus to another window on my computer messes up the speed again sometimes.
Please tell me if you need any more details or have suggestions for me to try.
I’m interested in discussing the possibility of developing an emitter module for active 3D glasses in Bino 3D, to support any 120Hz display, similar to Nvidia 3D Vision.
Given the unavailability of 3D displays and Nvidia 3D Vision, this could be a great solution for those of us who still have 120Hz TVs/Monitors and want to enjoy 3D content.
The proposed solution involves:
Here are some references that back up this idea:
Looking forward to hearing your thoughts on this.
For all the samples from here (all have 6 audio channels) bino loses audio when go to fullscreen
https://www.demolandia.net/3d-video/brands/lg/page-3.html
The work around is to exit fullscreen, move the playback progress back a bit until sound is restored and then go to fullscreen again and then there is audio in fullscreen.
It is kind of annoying.
Same with both bino-1.6.6 from repository and bino-1.6.7 compiled from source.
OS is Ubuntu 20.04, graphic NVIDIA GTX1070
Any chance that you will update this application as their hasn't been any activity for a year. Its just that when opening a youtube url fails.
Hi there,
I found bino and wanted to give it a try on my VR Setup (SteamVR + ALVR + PhoneVR). I added bino to the Steam library and added the --vr option but it does only start a black screen, with no user interface elements. Now I do not know, how I am supposed to open a 3D video or image. I consulted the manual, but it has no detailed information on how to start bino in VR mode, other then the command line option. Anything I can do here?
Hi ! First of all, thank you a LOT for this wonderful piece of software ! I'm using it a lot and really love it !
Those days I'm re-compressing 3D videos I made and I use Bino to check outputs of different Handbrake compression settings. So I'm using Bino a lot to check 30 second videos. But Bino doesn't actually remember my last 3D settings: everytime I check a test clip I've to set:
This is a quite time-consuming process to set all of those settings each time.
I'd like to:
Thanks !
Bino 2.1 / flatpak / Ubuntu 22.04
➜ Downloads git clone https://git.marlam.de/git/bino.git
Cloning into 'bino'...
remote: Enumerating objects: 7294, done.
remote: Counting objects: 100% (7294/7294), done.
remote: Compressing objects: 100% (2316/2316), done.
remote: Total 7294 (delta 5482), reused 6473 (delta 4933), pack-reused 0
Receiving objects: 100% (7294/7294), 2.52 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (5482/5482), done.
➜ Downloads cd bino
➜ bino git:(main) ✗ mkdir build
➜ bino git:(main) ✗ cd build
➜ build git:(main) ✗ cmake ..
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:19 (find_package):
By not providing "FindQt6.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Qt6", but
CMake did not find one.
Could not find a package configuration file provided by "Qt6" (requested
version 6.6.0) with any of the following names:
Qt6Config.cmake
qt6-config.cmake
Add the installation prefix of "Qt6" to CMAKE_PREFIX_PATH or set "Qt6_DIR"
to a directory containing one of the above files. If "Qt6" provides a
separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!
The VR file Singer 3D Mp4 plays (failing as if no 3D ) in VLC visually incorrect but then only plays the audio in Bino3D
The installed OS is a Ubuntu multimedia variation called Ubuntu Studio and is version 22.10
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.10"
NAME="Ubuntu"
VERSION_ID="22.10"
VERSION="22.10 (Kinetic Kudu)"
VERSION_CODENAME=kinetic
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=kinetic
LOGO=ubuntu-logo
The system is an HP Sprout version 1
$ uname -a
Linux sprout 5.19.0-1018-lowlatency #19-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 7 18:03:52 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
$ flatpak run org.bino3d.bino -v
Gtk-Message: 09:56:39.365: Failed to load module "canberra-gtk-module"
Gtk-Message: 09:56:39.365: Failed to load module "canberra-gtk-module"
Bino 2.1
I assume the canberra module is here
$ ls -al /usr/lib/x86_64-linux-gnu/gtk-3.0/modules
total 104
drwxr-xr-x 2 root root 4096 Oct 25 18:54 .
drwxr-xr-x 4 root root 4096 Apr 19 2022 ..
-rw-r--r-- 1 root root 30792 Apr 8 2022 libcanberra-gtk3-module.so
lrwxrwxrwx 1 root root 26 Apr 29 2022 libcanberra-gtk-module.so -> libcanberra-gtk3-module.so
-rw-r--r-- 1 root root 14336 Sep 6 2022 libcolorreload-gtk-module.so
-rw-r--r-- 1 root root 31552 Mar 9 2022 libunity-gtk-module.so
-rw-r--r-- 1 root root 14496 Sep 6 2022 libwindow-decorations-gtk-module.so
Also I have an error about the missing codec even though VLC can view the contents incorrectly
$ flatpak run org.bino3d.bino --list-tracks Singer\ 3D.mp4
Gtk-Message: 09:53:28.109: Failed to load module "canberra-gtk-module"
Gtk-Message: 09:53:28.109: Failed to load module "canberra-gtk-module"
(bino:2): GStreamer-CRITICAL **: 09:53:28.349: gst_caps_append: assertion 'GST_IS_CAPS (caps2)' failed
MESA-INTEL: warning: Haswell Vulkan support is incomplete
Bino: Qt warning: Warning: "No decoder available for type 'video/x-h265, stream-format=(string)hvc1, alignment=(string)au, level=(string)5, tier=(string)main, profile=(string)main, codec_data=(buffer)01016000000090000000000096f000fcfdf8f800000f03200001001840010c01ffff016000000300900000030000030096959809210001002e420101016000000300900000030000030096a001e020021c596566924cafff00ba00af0100000303e9000075300822000100074401c172b46240, width=(int)3840, height=(int)2160, framerate=(fraction)30000/1001, pixel-aspect-ratio=(fraction)186/175, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true'."
Bino: file:///.../3D_Videos/Singer 3D.mp4
Bino: Duration: 00:00:00
Bino: Container Format: MPEG-4
Bino: Audio codec: AAC
Bino: Url: file:///.../3D_Videos/Singer 3D.mp4
Bino: Resolution: 3840 x 2160
Bino: Video frame rate: 29.970029830932617
Bino: Video codec: H265
Bino: no video tracks
Bino: audio track 0
Bino: Audio bit rate: 247660
Bino: Audio codec: MP3
Bino: Language: Default
Bino: no subtitle tracks
bino doesn't compile with the recently released ffmpeg 5.0.
Some changes are trivial (remove av_register_all(), additional const-ness, ...), but some are problematic (removal of AVPicture).
media_object.cpp:348:5: error: use of undeclared identifier 'av_register_all'
av_register_all();
^
media_object.cpp:796:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
iformat = av_find_input_format("libdc1394");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
media_object.cpp:799:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
iformat = av_find_input_format("x11grab");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
media_object.cpp:807:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
iformat = av_find_input_format("video4linux2");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
media_object.cpp:824:27: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
iformat = av_find_input_format("mjpeg");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
media_object.cpp:886:70: error: no member named 'codec' in 'AVStream'
AVCodecContext *codec_ctx = _ffmpeg->format_ctx->streams[i]->codec;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
media_object.cpp:887:18: error: cannot initialize a variable of type 'AVCodec *' with an rvalue of type 'const AVCodec *'
AVCodec *codec = (codec_ctx->codec_id == AV_CODEC_ID_TEXT
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
media_object.cpp:940:13: warning: 'av_init_packet' is deprecated [-Wdeprecated-declarations]
av_init_packet(&(_ffmpeg->video_packets[j]));
^
/usr/include/libavcodec/packet.h:505:1: note: 'av_init_packet' has been explicitly marked deprecated here
attribute_deprecated
^
/usr/include/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
# define attribute_deprecated __attribute__((deprecated))
^
media_object.cpp:951:34: error: use of undeclared identifier 'avpicture_get_size'
int frame_bufsize = (avpicture_get_size(frame_fmt,
^
media_object.cpp:954:45: error: unknown type name 'AVPicture'
avpicture_fill(reinterpret_cast<AVPicture *>(_ffmpeg->video_buffered_frames[j]), _ffmpeg->video_buffers[j],
^
media_object.cpp:954:13: error: use of undeclared identifier 'avpicture_fill'
avpicture_fill(reinterpret_cast<AVPicture *>(_ffmpeg->video_buffered_frames[j]), _ffmpeg->video_buffers[j],
^
media_object.cpp:963:35: error: use of undeclared identifier 'avpicture_get_size'
int sws_bufsize = avpicture_get_size(AV_PIX_FMT_BGRA,
^
media_object.cpp:975:49: error: unknown type name 'AVPicture'
avpicture_fill(reinterpret_cast<AVPicture *>(_ffmpeg->video_sws_frames[j]), _ffmpeg->video_sws_buffers[j],
^
media_object.cpp:975:17: error: use of undeclared identifier 'avpicture_fill'
avpicture_fill(reinterpret_cast<AVPicture *>(_ffmpeg->video_sws_frames[j]), _ffmpeg->video_sws_buffers[j],
^
media_object.cpp:1355:21: error: use of undeclared identifier 'av_dup_packet'; did you mean 'av_init_packet'?
if (av_dup_packet(&packet) < 0)
^~~~~~~~~~~~~
av_init_packet
/usr/include/libavcodec/packet.h:506:6: note: 'av_init_packet' declared here
void av_init_packet(AVPacket *pkt);
^
media_object.cpp:1355:21: warning: 'av_init_packet' is deprecated [-Wdeprecated-declarations]
if (av_dup_packet(&packet) < 0)
^
/usr/include/libavcodec/packet.h:505:1: note: 'av_init_packet' has been explicitly marked deprecated here
attribute_deprecated
^
/usr/include/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
# define attribute_deprecated __attribute__((deprecated))
^
media_object.cpp:1355:44: error: invalid operands to binary expression ('void' and 'int')
if (av_dup_packet(&packet) < 0)
~~~~~~~~~~~~~~~~~~~~~~ ^ ~
media_object.cpp:1384:25: error: use of undeclared identifier 'av_dup_packet'; did you mean 'av_init_packet'?
if (av_dup_packet(&packet) < 0)
^~~~~~~~~~~~~
av_init_packet
/usr/include/libavcodec/packet.h:506:6: note: 'av_init_packet' declared here
void av_init_packet(AVPacket *pkt);
^
media_object.cpp:1384:25: warning: 'av_init_packet' is deprecated [-Wdeprecated-declarations]
if (av_dup_packet(&packet) < 0)
^
/usr/include/libavcodec/packet.h:505:1: note: 'av_init_packet' has been explicitly marked deprecated here
attribute_deprecated
^
/usr/include/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
# define attribute_deprecated __attribute__((deprecated))
^
media_object.cpp:1384:48: error: invalid operands to binary expression ('void' and 'int')
if (av_dup_packet(&packet) < 0)
~~~~~~~~~~~~~~~~~~~~~~ ^ ~
media_object.cpp:1414:25: error: use of undeclared identifier 'av_dup_packet'; did you mean 'av_init_packet'?
if (av_dup_packet(&packet) < 0)
^~~~~~~~~~~~~
av_init_packet
/usr/include/libavcodec/packet.h:506:6: note: 'av_init_packet' declared here
void av_init_packet(AVPacket *pkt);
^
media_object.cpp:1414:25: warning: 'av_init_packet' is deprecated [-Wdeprecated-declarations]
if (av_dup_packet(&packet) < 0)
^
/usr/include/libavcodec/packet.h:505:1: note: 'av_init_packet' has been explicitly marked deprecated here
attribute_deprecated
^
/usr/include/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
# define attribute_deprecated __attribute__((deprecated))
^
media_object.cpp:1414:48: error: invalid operands to binary expression ('void' and 'int')
if (av_dup_packet(&packet) < 0)
~~~~~~~~~~~~~~~~~~~~~~ ^ ~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
4 warnings and 20 errors generated.
make[4]: Entering directory '/builddir/build/BUILD/bino-1.6.7/src/base'
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src -pthread -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -c -o dbg.o dbg.cpp
dbg.cpp: In function 'void dbg::init_crashhandler()':
dbg.cpp:77:14: error: 'set_unexpected' is not a member of 'std'
77 | std::set_unexpected(exception_crash);
| ^~~~~~~~~~~~~~
dbg.cpp:78:14: error: 'set_terminate' is not a member of 'std'
78 | std::set_terminate(exception_crash);
| ^~~~~~~~~~~~~
make[4]: *** [Makefile:442: dbg.o] Error 1
you can see all build.log where https://koji.rpmfusion.org/kojifiles/work/tasks/4/460004/build.log , https://koji.rpmfusion.org/koji/taskinfo?taskID=460004
Thank you very much for the program distributed under a free open license! Added a program to a Russian-language site about free software, here is the link.
Please do not drop the project, this is a very interesting program!
UNSUPPORTED (log once): POSSIBLE ISSUE: unit 0 GLD_TEXTURE_INDEX_2D is unloadable and bound to sampler type (Float) - using zero texture because texture unloadable
I think this breaks some stereo modes like the interlaced mode (even/odd lines). The right eye gets a messed up texture.
Anyone else getting this error ?
Hi, i'm running Fedora 37 (KDE Wayland + Pipewire + mesa with RX 6700) with Bino 2.0 manually compiled (thanks for this great 3D video software).
I'm playing an MKV file (3D Half Side By Side) of 13GB :
When using multiple times the Right arrow to move forward (or page up), the sound is desynchronising and then totally mute.
Then, if I try to change Audio track Bino completely freeze.
Also the sound briefly spikes at the start of the video (really spikes).
Thanks.
Compiled successfully on XUbuntu 20.10 (see #4).
The final binary is starting properly. But, when trying to open a media with "File/OpenFile(s)", I get a problem:
Console output is showing this:
bino: [wrn] Cannot initialize LIRC.
bino: [wrn] LibASS: Shaper: FriBidi 0.19.7 (SIMPLE) HarfBuzz-ng 2.6.4 (COMPLEX)
bino: [wrn] LibASS: Using font provider fontconfig
bino: [wrn] QXcbConnection: XCB error: 3 (BadWindow), sequence: 784, resource id: 13163934, major code: 40 (TranslateCoords), minor code: 0
The last line may be repeated when I'm trying to open a file, but not all the time. Here is a new example:
bino: [wrn] QXcbConnection: XCB error: 3 (BadWindow), sequence: 1046, resource id: 13174010, major code: 40 (TranslateCoords), minor code: 0
Any idea?
PS: "Open device(s)" is working properly. I can see my WebCam playing.
Hello.
Sound does not work properly when playing video in Windows. Only the first fragment is played and then silence. Tried on different videos.
I think the problem is with audio tracks encoded in ac3. All the videos I've tried have multiple audio tracks.
Thanks for your gread job.
I am trying to use you code to make my project
I am new to write code.The version 1.6.8 seem developped under linux which is not system I am working,so I have difficulty to build the version 1.6.8.
So I bulid version 2.1 by Qt in Windows.But find that open seperate Left/Right 3D file and output 3D Dual Screen function is not find in version 2.X . Will it be added in furture?
source code version:2.1
OS version: MACOS 12.6.3
QT version:6.4.2
I have successfully compiled the binary file with cmake, but when I run it, it always prompts “Insufficient OpenGL capabilities.”. Any body can give me some help?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.