kenz-gelsoft / gecko-dev

Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
https://firefox-source-docs.mozilla.org/setup/index.html
Other
16 stars 2 forks source link

Make video working #58

Closed kenz-gelsoft closed 1 month ago

kenz-gelsoft commented 1 month ago

I intentionally disabled that to pass the build first. was not in the case now. just not working.

X512 pointed out in https://github.com/kenz-gelsoft/gecko-dev/issues/10#issuecomment-2282816258

and tester wants to try YouTube.

kenz-gelsoft commented 1 month ago

https://github.com/kenz-gelsoft/Inari/issues/27

it seems easy link error.

kenz-gelsoft commented 1 month ago

If we use H.264, it is needed to integrate openh264 or other codecs

kenz-gelsoft commented 1 month ago

We should use vpx

ac_add_options --with-system-libvpx

If YouTube send us VP9 or so, it should work.

kenz-gelsoft commented 1 month ago

Or disabling audio backend also disable video?

kenz-gelsoft commented 1 month ago

Will see about:support how it shows about supported codecs.

kenz-gelsoft commented 1 month ago

about:support doesn't show any media capabilities. IPC fails here too, it may be a part of the reason.

child_couldnt_get_media_caps

kenz-gelsoft commented 1 month ago

I doubt it lacks runtime packages, but libvpx is already active.

vpxpkgs_active

kenz-gelsoft commented 1 month ago

No Audio Backend, No Codec Support Info.

NoAudioNoCodecSupportInfo

kenz-gelsoft commented 1 month ago

No Audio Backend

This is because --disable-audio-backends

kenz-gelsoft commented 1 month ago
    // Create codec support matrix if possible
    let supportInfo = null;
    if (data.codecSupportInfo.length) {
// snip
    } else {
      // Don't have access to codec support information
      supportInfo = await document.l10n.formatValue(
        "media-codec-support-error"
      );
    }
kenz-gelsoft commented 1 month ago

Failed to get GfxInfo

FailedToGetGfxInfo

kenz-gelsoft commented 1 month ago

It seems gfxInfo itself initialized correctly. Just we didn't get codecinfo here?

https://searchfox.org/mozilla-esr128/source/dom/ipc/ContentParent.cpp#1697

kenz-gelsoft commented 1 month ago

Failing glxtest will result this?

Fontconfig warning: ignoring en_US_POSIX.UTF-8: not a valid region tag
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libEGL initialize failed (t=285.351) [GFX1-]: glxtest: libEGL initialize failed
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libEGL initialize failed (t=285.351) |[1][GFX1-]: glxtest: EGL test failed (t=285.351) [GFX1-]: glxtest: EGL test failed
[Parent 133372, Main Thread] WARNING: Failed to parse GL version!: file /boot/home/src/gecko-dev/widget/gtk/GfxInfo.cpp:350
[Parent 133372, Main Thread] WARNING: Failed to detect GL vendor!: file /boot/home/src/gecko-dev/widget/gtk/GfxInfo.cpp:424
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libEGL initialize failed (t=285.351) |[1][GFX1-]: glxtest: EGL test failed (t=285.351) |[2][GFX1-]: No GPUs detected via PCI
 (t=285.351) [GFX1-]: No GPUs detected via PCI

[Parent 133372, Main Thread] WARNING: Failed to connect to client: Could not connect: No such file or directory
: file /boot/home/src/gecko-dev/widget/gtk/nsAppShell.cpp:262
[Parent 133372, Main Thread] WARNING: Failed to connect to client: Could not connect: No such file or directory
: file /boot/home/src/gecko-dev/widget/gtk/nsAppShell.cpp:262
index cache: could not make cache directory: Read-only file system
kenz-gelsoft commented 1 month ago

GetGMPContentDecryptionModuleInformation() called in this stack

1   mozilla::dom::ChromeUtils::GetGMPContentDecryptionModuleInformation         ChromeUtils.cpp        2162 0x9f284ce 
2   mozilla::dom::ChromeUtils_Binding::getGMPContentDecryptionModuleInformation ChromeUtilsBinding.cpp 4495 0xad7a8ef 
3   mozilla::dom::StaticMethodPromiseWrapper                                    BindingUtils.cpp       3307 0xb127222 
4   CallJSNative                                                                Interpreter.cpp        481  0xdbc7dde 
5   js::InternalCallOrConstruct                                                 Interpreter.cpp        575  0xdbc74f0 
6   InternalCall                                                                Interpreter.cpp        642  0xdbc88b8 
7   js::CallFromStack                                                           Interpreter.cpp        647  0xdbd6042 
8   js::Interpret                                                               Interpreter.cpp        3190 0xdbd6042 
9   MaybeEnterInterpreterTrampoline                                             Interpreter.cpp        395  0xdbc6f36 
10  js::RunScript                                                               Interpreter.cpp        453  0xdbc6f36 
11  js::InternalCallOrConstruct                                                 Interpreter.cpp        607  0xdbc750d 
12  InternalCall                                                                Interpreter.cpp        642  0xdbc88b8 
13  js::Call                                                                    Interpreter.cpp        674  0xdbc8ac9 
14  js::CallSelfHostedFunction                                                  SelfHosting.cpp        1592 0xdf1d40d 
15  AsyncFunctionResume                                                         AsyncFunction.cpp      151  0xdca335a 
16  js::AsyncFunctionAwaitedFulfilled                                           AsyncFunction.cpp      192  0xdca302f 
17  AsyncFunctionPromiseReactionJob                                             Promise.cpp            2116 0xde7f1c7 
18  PromiseReactionJob                                                          Promise.cpp            2179 0xde7f1c7 
19  CallJSNative                                                                Interpreter.cpp        481  0xdbc7dde 
20  js::InternalCallOrConstruct                                                 Interpreter.cpp        575  0xdbc74f0 
... <More>                                                                                                            

It seems gfxInfo itself initialized correctly. Just we didn't get codecinfo here?

https://searchfox.org/mozilla-esr128/source/dom/ipc/ContentParent.cpp#1697

but we didn't get here.

kenz-gelsoft commented 1 month ago

Some of there should be called


Should SendUpdateMediaCodecsSupported() from these

kenz-gelsoft commented 1 month ago
1   mozilla::widget::GfxInfo::GetData                   GfxInfo.cpp         477  0xcc0de9a 
2   mozilla::widget::GfxInfo::GetFeatureStatusImpl      GfxInfo.cpp         1217 0xcc11cdd 
3   mozilla::widget::GfxInfoBase::GetFeatureStatus      GfxInfoBase.cpp     879  0xcb622b0 
4   IsFeatureSupported                                  gfxPlatform.cpp     1138 0x998b674 
5   gfxPlatform::IsDXInterop2Blocked                    gfxPlatform.cpp     1146 0x99877be 
6   gfxPlatform::Init                                   gfxPlatform.cpp     900  0x99877be 
7   gfxPlatform::GetPlatform                            gfxPlatform.cpp     462  0x998a2c1 
8   gfxPlatform::InitializeCMS                          gfxPlatform.cpp     2131 0x998a2c1 
9   gfxPlatform::EnsureCMSInitialized                   gfxPlatform.h       952  0xcbc27ec 
10  gfxPlatform::GetCMSMode                             gfxPlatform.h       499  0xcbc27ec 
11  nsXPLookAndFeel::GetUncachedColor                   nsXPLookAndFeel.cpp 1025 0xcbc27ec 
12  nsXPLookAndFeel::GetColorValue                      nsXPLookAndFeel.cpp 1005 0xcbc2562 
13  mozilla::LookAndFeel::GetColor                      nsXPLookAndFeel.cpp 1398 0xcbc411d 
14  mozilla::LookAndFeel::Color                         LookAndFeel.h       421  0xcb80183 
15  mozilla::widget::GetAccentColor                     ThemeColors.cpp     91   0xcb80183 
16  mozilla::widget::ThemeColors::RecomputeAccentColors ThemeColors.cpp     203  0xcb80183 
17  mozilla::widget::Theme::LookAndFeelChanged          Theme.cpp           183  0xcb7ffde 
18  nsXPLookAndFeel::GetInstance                        nsXPLookAndFeel.cpp 401  0xcbc1bb1 
19  mozilla::LookAndFeel::GetThemeInfo                  nsXPLookAndFeel.cpp 1516 0xcbc455e 
20  nsSystemInfo::Init                                  nsSystemInfo.cpp    1493 0x86ff858 
... <More>                                                                                 
kenz-gelsoft commented 1 month ago

ContentParent::InitInternal()

this broadcast sCodecsSupported to children.

bool ContentParent::InitInternal(ProcessPriority aInitialPriority) {
// snip
  for (auto const& [location, supported] : sCodecsSupported) {
    Unused << SendUpdateMediaCodecsSupported(location, supported);
  }

before that it needs set codecs in (but not called as far as I know)

void ContentParent::BroadcastMediaCodecsSupportedUpdate(
    RemoteDecodeIn aLocation, const media::MediaCodecsSupported& aSupported) {
  // Update processes and print the support info from the given location.
  sCodecsSupported[aLocation] = aSupported;

callstack

1   mozilla::dom::ContentParent::InitInternal               ContentParent.cpp      2967  0xc4b617d 
2   mozilla::dom::ContentParent::LaunchSubprocessResolve    ContentParent.cpp      2766  0xc4b0284 
3   mozilla::dom::ContentParent::WaitForLaunchSync          ContentParent.cpp      1194  0xc4afec0 
4   mozilla::dom::ContentParent::GetNewOrUsedBrowserProcess ContentParent.cpp      1136  0xc4b1165 
5   mozilla::dom::ContentParent::CreateBrowser              ContentParent.cpp      1481  0xc4b1165 
6   nsFrameLoader::TryRemoteBrowserInternal                 nsFrameLoader.cpp      2696  0xa170b39 
7   nsFrameLoader::TryRemoteBrowser                         nsFrameLoader.cpp      2761  0xa166e31 
8   nsFrameLoader::EnsureRemoteBrowser                      nsFrameLoader.cpp      2497  0xa166e31 
9   nsFrameLoader::ShowRemoteFrame                          nsFrameLoader.cpp      1095  0xa166f79 
10  nsFrameLoader::Show                                     nsFrameLoader.cpp      959   0xa1686d3 
11  nsSubDocumentFrame::ShowViewer                          nsSubDocumentFrame.cpp 198   0xd1c5e3b 
12  AsyncFrameInit::Run                                     nsSubDocumentFrame.cpp 110   0xd1fe622 
13  nsContentUtils::RemoveScriptBlocker                     nsContentUtils.cpp     6239  0x9e4e696 
14  nsAutoScriptBlocker::~nsAutoScriptBlocker               nsContentUtils.h       3790  0xcf86144 
15  mozilla::PresShell::DoFlushPendingNotifications         PresShell.cpp          4358  0xcf86144 
16  mozilla::PresShell::FlushPendingNotifications           PresShell.h            1455  0x9fdcc80 
17  mozilla::dom::Document::FlushPendingNotifications       Document.cpp           10925 0x9fdcc80 
18  nsFrameLoader::TryRemoteBrowserInternal                 nsFrameLoader.cpp      2528  0xa170544 
19  nsFrameLoader::TryRemoteBrowser                         nsFrameLoader.cpp      2761  0xa166e31 
20  nsFrameLoader::EnsureRemoteBrowser                      nsFrameLoader.cpp      2497  0xa166e31 
... <More>                                                                                         
kenz-gelsoft commented 1 month ago
    Locals      
        aInitialPriority    mozilla::hal::PROCESS_PRIORITY_FOREGROUND (4)   mozilla::dom::PContentParent::ProcessPriority
        actorSvc    <optimized out> 
        clipboard   @0x7f000107e128 nsCOMPtr<nsIClipboard>
        compositor  @0x7f000107e360 mozilla::dom::PContentParent::Endpoint<PCompositorManagerChild>
        cps @0x7f000107e130 nsCOMPtr<nsICaptivePortalService>
        dns @0x7f000107e0e8 nsCOMPtr<nsIDNSService>
        fontList    @0x7f000107e110 mozilla::dom::PContentParent::SystemFontList
        gfxInfo @0x7f000107e100 nsCOMPtr<nsIGfxInfo>
        imageBridge @0x7f000107e320 mozilla::dom::PContentParent::Endpoint<PImageBridgeChild>
        initialData @0x7f000107e3b0 mozilla::dom::PContentParent::StructuredCloneData
        io  @0x7f000107e138 nsCOMPtr<nsIIOService>
        isReadyForBackgroundProcessing  false   bool
        mode    4097 (4097) nsIDNSService::ResolverMode
        moz_real_module 0xaaaaaaaaaaaaaaaa  mozilla::LogModule*
        namespaces  @0x7f000107e280 AutoTArray<unsigned int, 3ul>
        registrySvc @0x7f000107e0d8 nsCOMPtr<nsIChromeRegistry> 
        rv  <optimized out> 
        sharedFontListBlocks    @0x7f000107e108 nsTArray<mozilla::UniquePtr<int, mozilla::detail::FileHandleDeleter> >
        sharedUASheetAddress    142208591   mozilla::dom::PContentParent::uintptr_t
        sharedUASheetHandle @0x7f000107e198 mozilla::Maybe<mozilla::UniquePtr<int, mozilla::detail::FileHandleDeleter> >
        spellChecker    <optimized out> 
        stringBundleService @0x7f000107e0d0 nsCOMPtr<nsIStringBundleService>
        this    @0x1001034357f0 mozilla::dom::ContentParent
            [mozilla::dom::PContentParent]  @0x1001034357f0 mozilla::dom::PContentParent
            [nsIDOMProcessParent]   @0x100103435ac0 nsIDOMProcessParent
            [nsIObserver]   @0x100103435ac8 nsIObserver
            [nsIDOMGeoPositionCallback] @0x100103435ad0 nsIDOMGeoPositionCallback
            [nsIDOMGeoPositionErrorCallback]    @0x100103435ad8 nsIDOMGeoPositionErrorCallback
            [nsIAsyncShutdownBlocker]   @0x100103435ae0 nsIAsyncShutdownBlocker
            [nsIInterfaceRequestor] @0x100103435ae8 nsIInterfaceRequestor
            [mozilla::gfx::gfxVarReceiver]  @0x100103435af0 mozilla::gfx::gfxVarReceiver
            [mozilla::LinkedListElement<mozilla::dom::ContentParent>]   @0x100103435af8 mozilla::LinkedListElement<mozilla::dom::ContentParent>
            [mozilla::gfx::GPUProcessListener]  @0x100103435b10 mozilla::gfx::GPUProcessListener
            [mozilla::MemoryReportingProcess]   @0x100103435b18 mozilla::MemoryReportingProcess
            [mozilla::dom::ipc::MessageManagerCallback] @0x100103435b20 mozilla::dom::ipc::MessageManagerCallback
            [mozilla::ipc::IShmemAllocator] @0x100103435b28 mozilla::ipc::IShmemAllocator
            [mozilla::dom::ProcessActor]    @0x100103435b30 mozilla::dom::ProcessActor
            _cycleCollectorGlobal   @0x101d3a80 mozilla::dom::ContentParent::cycleCollection
            _mOwningThread  @0x100103435b68 nsAutoOwningThread
            mActivateTS @0x100103435b88 mozilla::dom::PContentParent::TimeStamp
            mActivePermissionKeys   @0x100103435c50 nsTHashSet<nsCString>
            mActiveSecondaryPermissionKeys  @0x100103435c78 nsTHashSet<nsCString>
            mBlobURLs   @0x100103435ca0 nsTArray<nsTString<char> >
            mBlockShutdownCalled    false   bool
            mBrowsingContextFieldEpoch  0   mozilla::dom::PContentParent::uint64_t
            mCalledClose    0   mozilla::dom::PContentParent::uint8_t : 1
            mCalledKillHard 0   mozilla::dom::PContentParent::uint8_t : 1
            mChildID    @0x100103435bc0 mozilla::dom::PContentParent::ContentParentId
            mCrashReporter  @0x100103435cb0 mozilla::dom::PContentParent::UniquePtr<mozilla::ipc::CrashReporterHost>
            mCreatedPairedMinidumps 0   mozilla::dom::PContentParent::uint8_t : 1
            mDriverCrashGuard   @0x100103435c18 mozilla::dom::PContentParent::UniquePtr<gfx::DriverCrashGuard>
            mForceKillTimer @0x100103435be0 nsCOMPtr<nsITimer>
            mGMPCreated 0   mozilla::dom::PContentParent::uint8_t : 1
            mGeolocationWatchID -1  mozilla::dom::PContentParent::int32_t
            mGetFilesPendingRequests    @0x100103435c28 nsRefPtrHashtable<nsIDHashKey, GetFilesHelper>
            mGroups @0x100103435cc8 nsTHashSet<RefPtr<BrowsingContextGroup> >
            mHangMonitorActor   @0x100103435c10 RefPtr<mozilla::PProcessHangMonitorParent>
            mIdleListeners  @0x100103435c08 nsTArray<nsCOMPtr<nsIObserver> >
            mIsAPreallocBlocker true    bool
            mIsForBrowser   1   mozilla::dom::PContentParent::uint8_t : 1
            mIsInPool   1   mozilla::dom::PContentParent::uint8_t : 1
            mIsInputPriorityEventEnabled    0   mozilla::dom::PContentParent::uint8_t : 1
            mIsNotifiedShutdownSuccess  false   bool
            mIsRemoteInputEventQueueEnabled 0   mozilla::dom::PContentParent::uint8_t : 1
            mIsSignaledImpendingShutdown    false   bool
            mLaunchResolved 1   mozilla::dom::PContentParent::uint8_t : 1
            mLaunchResolvedOk   0   mozilla::dom::PContentParent::uint8_t : 1
            mLaunchTS   @0x100103435b78 mozilla::dom::PContentParent::TimeStamp
            mLaunchYieldTS  @0x100103435b80 mozilla::dom::PContentParent::TimeStamp
            mLifecycleState mozilla::dom::ContentParent::LifecycleState::ALIVE (1)  mozilla::dom::ContentParent::LifecycleState
            mLoadedOriginHashes @0x100103435ca8 nsTArray<unsigned long>
            mMemoryReportRequest    @0x100103435c20 mozilla::dom::PContentParent::UniquePtr<MemoryReportRequestHost>
            mMessageManager @0x100103435cc0 RefPtr<mozilla::dom::ProcessMessageManager>
            mNotifiedImpendingShutdownOnTabWillDestroy  false   bool
            mNumDestroyingTabs  0   mozilla::dom::PContentParent::int32_t
            mNumKeepaliveCalls  0   mozilla::dom::PContentParent::uint32_t
            mPendingLoadStates  @0x100103435cf0 nsTHashMap<uint64_t, RefPtr<nsDocShellLoadState> >
            mPrefSerializer @0x100103435d20 mozilla::dom::PContentParent::UniquePtr<mozilla::ipc::SharedPreferenceSerializer>
            mProfile    @0x100103435ba8 mozilla::dom::PContentParent::nsCString
            mQueuedPrefs    @0x100103435cb8 nsTArray<mozilla::dom::Pref>
            mRefCnt @0x100103435b60 nsCycleCollectingAutoRefCnt
            mRemoteType @0x100103435b98 mozilla::dom::PContentParent::nsCString
            mRemoteTypeIsolationPrincipal   @0x100103435bb8 nsCOMPtr<nsIPrincipal>
            mScriptableHelper   @0x100103435c00 nsCOMPtr<nsIContentProcessInfo>
            mSendShutdownTimer  @0x100103435bd0 nsCOMPtr<nsITimer>
            mSentShutdownMessage    false   bool
            mShutdownPending    0   mozilla::dom::PContentParent::uint8_t : 1
            mSubprocess @0x1001034b2300 mozilla::ipc::GeckoChildProcessHost
            mThreadsafeHandle   @0x100103435be8 RefPtr<mozilla::dom::ThreadsafeContentParentHandle>
            sBrowserContentParents  @0x100103413b20 nsClassHashtable<nsCStringHashKey, nsTArray<mozilla::dom::ContentParent*> >
            sContentParents @0x1028ef80 mozilla::StaticAutoPtr<mozilla::LinkedList<mozilla::dom::ContentParent> >
            sMaxContentProcesses    1179403647  uint32_t
            sPageLoadEventCounter   0   uint32_t
            sRecycledE10SProcess    @0x1028ef88 mozilla::StaticRefPtr<mozilla::dom::ContentParent>
        videoManager    @0x7f000107e2a0 mozilla::dom::PContentParent::Endpoint<PRemoteDecoderManagerChild>
        vrBridge    @0x7f000107e2e0 mozilla::dom::PContentParent::Endpoint<PVRManagerChild>
        xpcomInit   @0x7f000107e1a0 mozilla::dom::PContentParent::XPCOMInitData
    Inspector       
    Expressions     
        sCodecsSupported    <0 items>   std::map<mozilla::RemoteDecodeIn, mozilla::EnumSet<mozilla::media::MediaCodecsSupport, unsigned long>, std::less<mozilla::RemoteDecodeIn>, std::allocator<std::pair<mozilla::RemoteDecodeIn const, mozilla::EnumSet<mozilla::media::MediaCodecsSupport, unsigned long> > > >
    Return Value        
    Tooltip     
        nsPrintfCString <no such value>  
        sharedUASheetAddress    142208591   mozilla::dom::PContentParent::uintptr_t
kenz-gelsoft commented 1 month ago

RDD is remote data decoder. This should be only media pipeline we can use.

kenz-gelsoft commented 1 month ago

Not enabled in StaticPrefs for Haiku

kenz-gelsoft commented 1 month ago

About RDD