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] version bump to n1.2 (rev e820e3a) #2554
Conversation
could you please separate the changes to lib/ffmpeg and the rest to different commits? would make it easier to review the changes to the XBMC core. |
Done, commit splitted in two parts. |
pushed the close button by accident... |
The patches directory would be nice if it was named the same as before. Also i really want the ffmpeg part of the update a separate commit from the addition of the patches. |
This commit now contains the original patches sub directory: patches - Org dir that contains applied xbmc custom patches. patches/README-patches - New README file with info about xbmc patches. patches/obsolete-patches - New dir with obsolete xbmc patches.
lib/DllAvFormat.h lib/Makefile.in lib/ffmpeg/build_xbmc_win32.sh project/Win32BuildSetup/BuildSetup.bat project/Win32BuildSetup/buildmingwlibs.sh tools/depends/native/gas-preprocessor-native/gas-preprocessor.pl xbmc/DllPaths_win32.h xbmc/cores/dvdplayer/DVDAudio.h xbmc/cores/dvdplayer/DVDCodecs/DVDCodecs.h xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecLibMpeg2.cpp xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h xbmc/cores/dvdplayer/DVDPlayerAudio.h xbmc/cores/dvdplayer/DVDStreamInfo.h
|
nice work on the ffmpeg bump. I'm a little unsure about all the batch file changes. most will get lost when switching to jenkins since I already rewrite them but probably I can get some nicer ways to handle it from your scripts. |
Thanks! The intention was to make the build process work smoother but you are of cource welcome to disregard or/and restructure the any of the win32 build script whichever way you see fit best for the new Jenkins build environment. |
Very nice work. However, I fear ffmpeg 1.2 (as opposed to eg 1.0.6) could break some things by introducing planar audio formats. for example, ffmpeg aac encoder now seems to expect planar float which xbmc has no clue about |
@aballier, please provide some media samples we can verify with that also can work as a reference if we need to alter stuff. /Thanks in advance, Lars. |
well, those are encoders so basically any sample would work ;) |
@popcornmix, referenced this pull request in huceke/omxplayer: (github.com/huceke/omxplayer/issues/150) I'm sorry, but what has OMXplayer and "Built a recently checked out omxplayer against external ffmpeg-1.2" anything to do with this pull request?? Btw, as this is not a discussion forum please move further discussion to: http://forum.xbmc.org/showthread.php?tid=156303&action=lastpost . /Thanks in advance, Lars. |
@aballier commented:
Ok, thanks. Since there are no actual problems reported I'll consider this particular case closed for the moment. You are more then welcome to get back if you find anything specific issues that should be solved but in the mean time let's move more general discussions to: http://forum.xbmc.org/showthread.php?tid=156303&action=lastpost /Thanks, Lars. |
@FlyingRat: please bring back the copy of the pdb file as we need it that jenkins can fetch that too. Then I'm fine with it. |
@FlyingRat, "apologize" to popcornmix, all he did was open an issue on his repo. github is responsible for the noise.. |
cptspiff commented
Well, sorry about that but I had no idea about this "feature". I'll know github is good for many things but... anyhow, now I know. @popcornmix good 👍 github bad (well, surprises..) 👎 |
@FlyingRat How much testing does this require on Linux with vdpau and vaapi? @sraue You already run external ffmpeg 1.2 with OE, right? Are there any tweaks you have done which should be considered here? |
@FernetMenta commented:
I've done quite some testing on my own but only with vmware fusion. There are some other folks on the following thread that I'm quite sure have done some more extensive testing and can probably answer any of your questions:
Check this post: http://forum.xbmc.org/showthread.php?tid=156303&pid=1391318#pid1391318 |
@wsoltys commented:
Ok, will fix. Want a rebase or will a separate commit do? |
@FernetMenta no, we build with external 0.10.6 with all XBMC patches applied which is similar to the included in xbmc-frodo/master (0.10.2 or so) |
I did a couple of tests on Linux with vdpau. Looks good so far. |
This thread discusses the ffmpeg testing across the various platforms supported by OpenELEC http://www.openelec.tv/forum/130-video-decoders/62608-xbmc-ffmpeg-1-1-2 |
@FlyingRat The mkv embedded subtitle issue you've hit upon is something I've already fixed in my pull request (#2525) |
@Alphix, I have applied your fix and subtitles are working again! Thanks |
@cptspiff: is there a way to create a dependency to another PR (like this one: #2525) or how is this supposed to work? |
My findings regarding the common.mak issue:
I'll continue to dig deeper into this issue and see if i may find anything in the old 0.10.2 environment. Any type of feedback or ideas is of course welcome... |
I should rather ask you this question. You agreed that this hunk shouldn't be merged, but it has been merged and you deleted the branch and all the comments with it... FYI, again: the dllavformat changes merged with this PR makes xbmc use an internal ffmpeg symbol that may change its ABI (so that xbmc will crash) or even be removed (so that xbmc wont work) for absolutely no reason nor gain. Everything was safe before. |
Regarding buildsetup.bat I had the same oddity with buildsetup.bat that behaved very strangely in the same way as reported in the forums but I couldn't locate any defects when i debugged it. When a renamed it and checked out the file again, everything worked as normal(!) That made me suspect that buildsetup.bat somehow was checked in with the wrong line endings. I made a successful build of master (rev c01c97d) on win32 by first re-check out buildsetup.bat and then re-check lib/ffmpeg with git core.autocrlf=false (only used for ffmpeg) Uploaded: XBMCSetup-20130412-c01c97d-dx.exe to https://www.dropbox.com/sh/a7tsbe6o80rrv2a/S2NszQXp7H |
@aballier: it might be a misunderstanding but pls let me get back to you when we have solved win32 problems. /Thank you, Lars. |
Worth a try: #2604 |
here is a quick fix for AE transcoding: FernetMenta@ca16827 I leave it to @fritsch to make this nice :) |
@FernetMenta: So we have to die one cpy death. PR it if you please. |
@FlyingRat: short update. ffmpeg compiles with gnu make 3.82 (already committed to master). unfortunately libdvdnav and libdvdread won't compile anymore. |
2013/4/13 wsoltys notifications@github.com
Morning! I've probably built 12-14 win32 envs the last couple of days and k:\src\xbmc\project\BuildDependencies\msys\mingw\bin\make.exe -v
Btw, how is v3.81 involved in this case, i mean do you have your own local |
v3.81 was our current make until today when I update make to 3.82. and again I try to build ffmpeg with autoctrl=true as like I already explained we can't use false. |
Sorry, forgot to ask if you read my other mail. You'll hopefully reconsider 2013/4/13 wsoltys notifications@github.com
|
@elupus @FlyingRat
|
@FlyingRat : the autoctrl thing was a team decision that helps us working in a mixed environment (win/Linux). Switching would lead to huge problems which was the trigger to switch to autoctrl=true on windows systems. |
@FlyingRat @Voyager1 |
@MartijnKaijser - I just redownloaded & updated the mingw environment, using DownloadMingwBuildEnv.bat. After wsoltys' update it now includes gmake 3.82. This one works ok with the windows line endings. The patch 0028 story is unrelated to getting it compiled (it is related to DVD with menus) |
Ok, i hear and understand what you say. But here are the facts: Bottom line: regardless if it was the team decision to alter this flag for 2013/4/13 wsoltys notifications@github.com
|
this has nothing to do with Jenkings! |
@FlyingRat - I may be wrong but you seem to have built the ffmpeg libs 10-12x with gmake 3.82 and it worked fine. It works fine with 3.82 on my set up too, with windows CRLF line endings! so I think you're chasing the wrong problem here... |
Hey Martijn, did you actually read my mail reading the git config?? Well, 3.82 $ type .git\config fetch = +refs/heads/:refs/remotes/upstream/Please stop blaming ffmpeg or anything else since this obviously a pure 2013/4/13 Martijn Kaijser notifications@github.com
|
no i am ignoring that false statement Edit: |
Well, ignore or override, the end result just became the same. OO for now... 2013/4/13 Martijn Kaijser notifications@github.com
|
Since i'm not using a build server like Jenkins (where core.autocrlf=true) i don't have this problem. Like i said, i'm using the standard git setting that comes with the xbmc repo and it works perfectly well because the effective default setting of core.autocrlff is false which compiles everything without any problems (with default gmake 3.81). So I'm sorry, but you are on your own on this one. OO & AWFK - definitely this time since my wife is shouting now! :) |
@FlyingRat: You should read the "Git Usage" article on our wiki: http://wiki.xbmc.org/index.php?title=Git_Usage |
Yes i know, but that's not the recommended settings for ffmpeg and libav on http://stackoverflow.com/questions/2825428/why-should-i-use-core-autocrlf-true-in-git http://libav-users.943685.n4.nabble.com/Libav-user-makefile-problem-on-win32-MinGW-td4657083.htmlBut when/if you find an alternative solution you could do them a favour and 2013/4/13 Sascha Montellese notifications@github.com
|
Sadly you are missing the point, the auto setting has nada zilch to do with It may very well be that it's bad for ffmpeg to have it on, but that is We have gone through a whole lot of grief regarding this already. That said, it's obviously not your fault that we have issues now, nor your |
it isnt very hard to see the problem here. usually windows wants to be a type writer. this logic breaks down when windows wants to pretend it is unix. either the tools need to find some common ground, which was the problem that caused the autocrlf in the first place or you deal with this through some variant of (conditional) prebuild patchery. likely not as a patch but through a call to dos2unix. |
I think prebuild patchery à la dos2unix is a bad idea as this would cause modification of source files. I believe that where we landed now, using a gnu make that deals with it properly is much better. It seems that for now, this issue is solved, and we can refocus on getting ffmpeg 1.2 a good round of testing... |
it is no more changing the source than what git does in the first place.. that is after all what the setting discussed inbhere does... anyways i agree a make that handles it is better. what i didnt get was all the confusion that seemed to be around what was happening. |
Wouldn't this be easily fixed by adding text eol=lf for ffmpeg in the .gitattributes? Instead of depending on a make that hopefully handles crlf correctly on windows. |
I need to supply a video sample for a patch submitted upstreams as a rfc to
|
FFmpeg version bump to n1.2 (rev e820e3a).
This solves a bunch of more or less serious problems that we currently struggle with in version 0.10.2, for instance preventing users to watch certain content types, hangs or causes stuttering video playback. Also, n1.2 is the last ffmpeg version that supports the old api. Essentially, this upgrade contains the following files and directories:
FFmpeg n1.2 fork (rev e820e3a) including all necessary xbmc add on patches.
This directory contains all the XBMC add-on patches applied to ffmpeg n1.2.
Brief description of the xbmc add on patches.
Contains obsolete xbmc custom patches that were NOT applied to n1.2.
Win32 build script that generates the include file DllPaths_generated_win32_ffmpeg.h and is called from buildmingwlibs.sh.
Deals with the decrepated version av_read_frame_flush -> ff_read_frame_flush
When ffmpeg is configured for osx then remove duplicate log2_tab.o from libavcodec.a, libavformat.a and libswresample.a
Resolves dllAvFilter dependencies of LibPostProc that previously required LD_LIBRARY_PATH
file: xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecLibMpeg2.cpp
file: xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp
file: xbmc/cores/dvdplayer/DVDCodecs/DVDCodecs.h
file: xbmc/cores/dvdplayer/DVDAudio.h
file: xbmc/cores/dvdplayer/DVDDemux.h
file: xbmc/cores/dvdplayer/DVDPlayerAudio.h
file: xbmc/cores/dvdplayer/DVDStreamInfo.h
Updated version that manages libavcodec/arm assembler optimizations. Source: github.com/mansr/gas-preprocessor, rev 76a72f00e (Dec 03, 2012).
Win32 build script adjusted to ffmpeg n1.2
Win32 build script that generates the include file DllPaths_generated_win32_ffmpeg.h.
DllPaths_win32.h is now modified to include the auto-genrerated file "DllPaths_generated_win32_ffmpeg.h".