Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when using make #389

Open
maxf266 opened this issue Nov 30, 2022 · 9 comments
Open

Error when using make #389

maxf266 opened this issue Nov 30, 2022 · 9 comments

Comments

@maxf266
Copy link

maxf266 commented Nov 30, 2022

building shows following error:

error

@i-rinat
Copy link
Owner

i-rinat commented Dec 3, 2022

While this is technically fixable issue, I think there is no much sense in doing that.

To fix it, I'd need to either add a lot of compatibility macros to accommodate all changes to FFmpeg APIs through years up until now, which is highly error-prone and will need a lot of testing. Or to implement dynamic loading for multiple FFmpeg major versions. Every path I see involves a lot of work. It's not hard, just cumbersome and time consuming.

And there is not much sense in even fixing something that cannot be used anymore. Flash browser plugin is essentially killed by Adobe. Major browsers removed plugin code. With two sides missing, what compatibility layer is for? Big sites moved away from Flash years before the plugin itself was EOLed.

If you use freshplayerplugin, you probably are using some older browser, which if uses FFmpeg libraries, expects some older versions. You best bet is to compile FreshPlayerPlugin against those older versions of FFmpeg and just keep those older FFmpeg binaries. I'd suggest going with the newest version of FFmpeg which a browser you'll be using will load. That way you'll have only one set of FFmpeg libraries loaded.

@i-rinat
Copy link
Owner

i-rinat commented Dec 3, 2022

Oh, by the way you may just turn hardware decoding support off during configure stage.
Add -DWITH_HWDEC=OFF to the cmake invocation line. (For example, cmake -DWITH_HWDEC=OFF ..)

@proxy-m
Copy link

proxy-m commented Dec 6, 2022

@i-rinat You can clone/fork preferred ffmpeg version as "public archive" and add it as dep to gitmodules. (But build process may be specific and slow.)

@i-rinat
Copy link
Owner

i-rinat commented Dec 7, 2022

You can clone/fork preferred ffmpeg version as "public archive" and add it as dep to gitmodules

Yeah, it's possible to even create a custom stripped-down version of FFmpeg libraries that only support selected features with modified ABI to avoid clashes with the distro-provided FFmpeg libraries. I just do not understand why even it's needed in the first place.

It's impossible to use Flash plugin with the current versions of Firefox or webkitgtk-based browsers, as they thrown away plugin support code. Most of popular enough sites even removed Flash versions completely. But let's assume there are some sites that still require Flash to work. Most probably, users will run some compartmentalized, older version of Firefox. Most probably that "container" will contain some older libraries that older browser builds required and which are no longer available in current distributions. For example, it you want to run Opera 12, you'll need already-removed-from-almost-all-distros Gstreamer 0.10. So... if users already carry older libraries, why not add older FFmpeg libraries to the container? And on top of that, older Firefox versions can't load FFmpeg 5.0 anyway, so why bother adding compatibility with FFmpeg 5.0 to the plugin?

@ROBERT-MCDOWELL
Copy link

personally I use the browser "MyPal"
https://www.mypal-browser.org/download.html
https://github.com/Feodor2/Mypal68/
or "Centaury" from the same author but didn't find the link anymore.

@proxy-m
Copy link

proxy-m commented Dec 8, 2022

So... Maybe just have to remind required version of FFmpeg in INSTALL / README ?

@i-rinat
Copy link
Owner

i-rinat commented Dec 30, 2022

have to remind required version of FFmpeg in INSTALL

This will require preliminary testing and validation, which is quite time-consuming and cumbersome. Although I understand that this is probably useful to somebody, I just can't bring myself to actually do it. I'm not using this code anymore, so there is no real incentive to actually fix the issue for me. And as such, it's highly unlikely I will ever fix anything here. There is a pull request that is more than two and a half years old now, and I still did not address that issue. So to be real, the FreshPlayerPlugin project is dead.

@proxy-m
Copy link

proxy-m commented Jan 2, 2023

@i-rinat We just need version. Can I test it instead of you?

@proxy-m
Copy link

proxy-m commented Jan 2, 2023

Custom ffmpeg build available on Xubuntu 16.04 (gcc 5.4) ...

FFmpeg 1.2.12 "Magic"

1.2.12 was released on 2015-02-12. It is the latest stable FFmpeg release from the 1.2 release branch, which was cut from master on 2013-03-07. Amongst lots of other changes, it includes all changes from ffmpeg-mt, libav master of 2013-03-07, libav 9 as of 2013-03-07.

It includes the following library versions:

libavutil      52. 18.100
libavcodec     54. 92.100
libavformat    54. 63.104
libavdevice    54.  3.103
libavfilter     3. 42.103
libavresample   1.  1.  0
libswscale      2.  2.100
libswresample   0. 17.102
libpostproc    52.  2.100
sudo apt-get remove ffmpeg libavcodec-dev libavcodec-ffmpeg56 libavutil-ffmpeg54 libswresample-ffmpeg1 libavdevice-ffmpeg56 libavutil-dev libswresample-dev gstreamer1.0-libav gstreamer1.0-plugins-bad libavfilter-ffmpeg5 libavformat-ffmpeg56 libpostproc-ffmpeg53

sudo apt-get install yasm libpulse-dev libasound2-dev

sudo apt-get install  ragel libssl-dev libglib2.0-dev libpango1.0-dev libgl1-mesa-dev libevent-dev libgtk2.0-dev libxrandr-dev libxrender-dev  libxcursor-dev libv4l-dev libgles2-mesa-dev  libva-dev libvdpau-dev libdrm-dev libicu-dev

mkdir -p ~/Solutions

cd ~/Solutions

wget https://ffmpeg.org/releases/ffmpeg-1.2.12.tar.bz2
... extract it
cd ffmpeg-1.2.12
./configure --enable-libpulse --enable-indev=alsa,pulse,oss,fbdev --enable-outdev=alsa,pulse,oss,fbdev 
make -j2
sudo make install

cd ~/Solutions

git clone https://github.com/proxy-m/freshplayerplugin.git
cd freshplayerplugin
mkdir build
cd build
cmake -DWITH_HWDEC=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make -j2
sudo make install

It builds firstly with some errors on headers... So fix it manually #define HAVE_AVVDPAUContext on vdpau.h before typedef struct AVVDPAUContext ...

geany ~/Solutions/freshplayerplugin/src/ppb_video_decoder.c:46 /usr/local/include/libavcodec/vdpau.h:71 &

stumbles added a commit to stumbles/moonbase-other that referenced this issue Mar 2, 2024
Per; i-rinat/freshplayerplugin#389, disabling
hardware decoding.

If and when this module breaks again I highly recommend it be sent
off to /dev/null, it doesn't deserve crater.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants