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

FFMPEG dependency update #44

Closed
PapyKahan opened this issue Feb 8, 2022 · 9 comments · Fixed by #567
Closed

FFMPEG dependency update #44

PapyKahan opened this issue Feb 8, 2022 · 9 comments · Fixed by #567
Labels
fixed This issue has been fixed and will be available in the next release.

Comments

@PapyKahan
Copy link
Contributor

PapyKahan commented Feb 8, 2022

Describe the bug

Hi guys I would like to update ffmpeg library, but I'm facing this issues:

  • CBS is now included into ffmpeg.
  • cbs.h, cbs_h264.h and cbs_h265.h aren't copied into local64/include/libavcodec directory.
  • Sunshine compilation fails during linking as cbs.o, cbs_h264.o and cbs_h265.o has been statically linked with ffmpeg. It conflicts with Sunshine's cbs.

Replacing current CBS implementation by ffmpeg one is a solution, only if I can fix the first issue.

I don't know how to add parameters to media-autobuild_suite so it can pass it to ffmpeg autoconf. It seems that options are into ffmpeg's CONFIG_EXTRA variable, but we can't set them externaly. Plus I don't know if it will copy right headers file to include directory.

To Reproduce
Only for development purpose, then we must use Sunshine's Workflows.

  1. Execute media-autobuild_suite batch file
  2. Create a sunshine-prebuild.zip file (see SunshineStream/Sunshine-Windows-Prebuilt workflow to replicate the process localy)
  3. Comment CMakeList.txt sunshine-prebuild.zip
  4. Copy sunshine-prebuild.zip into Sunshine's build directory
  5. Execute Sunshine build.

Expected behavior
Sunshine build and run correctly.

@ReenigneArcher ReenigneArcher added the help wanted Extra attention is needed label Feb 9, 2022
@TheElixZammuto
Copy link
Contributor

If you just need to change the options for ffmpeg ./autoconfig (like --enable-d3dv11a or --enable-amf or other similar options), you just need to edit the ffmpeg_options.txt inside the Sunshine-Windows-Prebuilt folder. These options are applied automatically by media-autobuild_suite

@PapyKahan
Copy link
Contributor Author

I know, but CBS is not available from command line as an --enable-* or --disable-*, it's specified into ffmpeg autoconf. This option is into CONFIG_EXTRA variable.

CBS obj are clearly compiled and linked into ffmpeg static library, but headers aren't copied into local64/include directory.

Another solution is to copy needed cbs*.h into local64/include, but it's an ugly solution.

@PapyKahan
Copy link
Contributor Author

Ok, CBS is not intended to be exposed outside libavcodec lib. That's why there's no reference into include directory. I've managed to build a version with an up to date ffmpeg builded with SunshineStream/Sunshine-Windows-Prebuilt default parameters. @ReenigneArcher is it possible to create a new release of SunshineStream/Sunshine-Windows-Prebuilt binary ? I will create a pull request.

I currently use my version to play some games from my streaming server, but I only have an AMD graphic card. So I could only test AMD and Software encoding.

For the moment everything seems to be fine.

@PapyKahan PapyKahan mentioned this issue Feb 10, 2022
7 tasks
@ReenigneArcher
Copy link
Member

Let's move development discussion on this to #50

@ReenigneArcher ReenigneArcher pinned this issue Mar 7, 2022
@github-actions
Copy link

This issue is stale because it has been open for 30 days with no activity. Remove the stale label or comment, otherwise this will be closed in 5 days.

@ReenigneArcher
Copy link
Member

We should probably use vcpkg to handle the ffmpeg dependency. It will make it more consistent between the different OSes.

Currently they are on 4.4.1, but have an open PR to update to 5.0. microsoft/vcpkg#23312

Unfortunately it breaks a lot of other packages so they are currently blocking the PR from being merged.

@github-actions
Copy link

This issue is stale because it has been open for 30 days with no activity. Remove the stale label or comment, otherwise this will be closed in 5 days.

@github-actions github-actions bot added the stale label Apr 18, 2022
@github-actions
Copy link

This issue was closed because it has been stalled for 5 days with no activity.

@ReenigneArcher ReenigneArcher unpinned this issue May 1, 2022
This was referenced Nov 18, 2022
@ReenigneArcher ReenigneArcher mentioned this issue Dec 27, 2022
7 tasks
@ReenigneArcher ReenigneArcher added fixed This issue has been fixed and will be available in the next release. and removed help wanted Extra attention is needed labels Dec 27, 2022
@LizardByte-bot
Copy link
Member

This issue has been fixed and will be available in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixed This issue has been fixed and will be available in the next release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants