Skip to content
Snippets Groups Projects

mfreadwrite: Fix an address of operator typo.

Merged Ziqing Hui requested to merge zhui/wine:mfwriter into master
2 unresolved threads

Merge request reports

Merge request pipeline #9872 skipped

Merge request pipeline skipped for d1c31772

Approval is optional

Merged by Alexandre JulliardAlexandre Julliard 1 year ago (Apr 21, 2023 8:35pm UTC)

Merge details

  • Changes merged into master with d1c31772.
  • Deleted the source branch.

Pipeline #9873 passed

Pipeline passed for d1c31772 on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Ziqing Hui requested review from @nsivov

    requested review from @nsivov

  • Looks good. Maybe we could have some inlined function for type checking, under __WINESRC__. That's unrelated to this fix.

    Please add a test when url is not used, to test that mapping of MFTranscodeContainerType_WAVE works.

    Edited by Nikolay Sivov
  • Ziqing Hui added 29 commits

    added 29 commits

    • 555b87d1...cd9f3e5d - 26 commits from branch wine:master
    • f6e952c7 - mfreadwrite/tests: Add more tests for MFCreateSinkWriterFromURL.
    • c134400e - mfreadwrite: Fix an address of operator typo.
    • 48a3507c - mfreadwrite: Introduce create_sink_writer_from_factory.

    Compare with previous version

  • Ziqing Hui marked this merge request as draft

    marked this merge request as draft

    • Contributor

      Marvin replied on the mailing list:

      Hi,
      
      It looks like your patch introduced the new failures shown below.
      Please investigate and fix them before resubmitting your patch.
      If they are not new, fixing them anyway would help a lot. Otherwise
      please ask for the known failures list to be updated.
      
      The tests also ran into some preexisting test failures. If you know how
      to fix them that would be helpful. See the TestBot job for the details:
      
      The full results can be found at:
      https://testbot.winehq.org/JobDetails.pl?Key=132095
      
      Your paranoid android.
      
      
      === w7u_2qxl (32 bit report) ===
      
      mfreadwrite:
      mfplat.c:1499: Test failed: wav: Test 4: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 4: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 5: Unexpected hr 0xc00d36d5, expected 0.
      mfplat.c:1501: Test failed: wav: Test 5: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 6: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 6: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 7: Unexpected hr 0xc00d36d5, expected 0.
      mfplat.c:1501: Test failed: wav: Test 7: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 8: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 8: Unexpected writer pointer 00000000.
      
      === w7u_adm (32 bit report) ===
      
      mfreadwrite:
      mfplat.c:1499: Test failed: wav: Test 4: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 4: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 5: Unexpected hr 0xc00d36d5, expected 0.
      mfplat.c:1501: Test failed: wav: Test 5: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 6: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 6: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 7: Unexpected hr 0xc00d36d5, expected 0.
      mfplat.c:1501: Test failed: wav: Test 7: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 8: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 8: Unexpected writer pointer 00000000.
      
      === w7u_el (32 bit report) ===
      
      mfreadwrite:
      mfplat.c:1499: Test failed: wav: Test 4: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 4: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 5: Unexpected hr 0xc00d36d5, expected 0.
      mfplat.c:1501: Test failed: wav: Test 5: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 6: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 6: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 7: Unexpected hr 0xc00d36d5, expected 0.
      mfplat.c:1501: Test failed: wav: Test 7: Unexpected writer pointer 00000000.
      mfplat.c:1499: Test failed: wav: Test 8: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 8: Unexpected writer pointer 00000000.
      
      === w7pro64 (64 bit report) ===
      
      mfreadwrite:
      mfplat.c:1499: Test failed: wav: Test 4: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 4: Unexpected writer pointer 0000000000000000.
      mfplat.c:1499: Test failed: wav: Test 5: Unexpected hr 0xc00d36d5, expected 0.
      mfplat.c:1501: Test failed: wav: Test 5: Unexpected writer pointer 0000000000000000.
      mfplat.c:1499: Test failed: wav: Test 6: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 6: Unexpected writer pointer 0000000000000000.
      mfplat.c:1499: Test failed: wav: Test 7: Unexpected hr 0xc00d36d5, expected 0.
      mfplat.c:1501: Test failed: wav: Test 7: Unexpected writer pointer 0000000000000000.
      mfplat.c:1499: Test failed: wav: Test 8: Unexpected hr 0xc00d36fa, expected 0.
      mfplat.c:1501: Test failed: wav: Test 8: Unexpected writer pointer 0000000000000000.
      
      === debian11 (32 bit report) ===
      
      user32:
      win.c:10983: Test failed: GetForegroundWindow() = 00210148
    • This is going to another direction, unrelated to initial fix. I'm aware that for selected sinks classes are not created right away and logic seems to be hardcoded. But we don't really need to replicate that right now. For the test, I meant to have a call with ".wav" url to validate that CLSID is picked up.

    • Author Developer

      I'll remove patch 3 from this MR for now.

      Do we keep the test patch(patch 1) in this MR which is much more complicated than you expected? I think we'll need these tests sooner or later.

    • Yes, it's too complicated in my opinion. We only need to implement this delayed object creation behavior if we want our mfreadwrite to be a closer drop-in replacement on Windows, for whatever reason.

    • Author Developer

      There is a problem: if we don't delay create sink object, I don't know how to create it during writer initialization.

      Take WAVE as example: we use IMFSinkClassFactory_CreateMediaSink() to create sink object, and IMFSinkClassFactory_CreateMediaSink() calls MFCreateWAVEMediaSink().

      However, we must pass a valid media type argument to MFCreateWAVEMediaSink(), or this function fails. See tests here: https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/mfsrcsnk/tests/mfsrcsnk.c#L84

      What I mean is, after patch 2, we are still not able to successfully create WAV writter sink. Because for now, we pass a NULL media type to MFCreateWAVEMediaSink().

      Edited by Ziqing Hui
    • I see. Let's drop the tests entirely then, and have the fix as is. Delayed creation logic we can have later as a separate MR.

    • Author Developer

      OK, I make this MR as its initial state.

    • Please register or sign in to reply
  • Ziqing Hui added 1 commit

    added 1 commit

    • d5f44c53 - mfreadwrite: Fix an address of operator typo.

    Compare with previous version

  • Nikolay Sivov approved this merge request

    approved this merge request

  • Nikolay Sivov marked this merge request as ready

    marked this merge request as ready

  • Alexandre Julliard added 18 commits

    added 18 commits

    Compare with previous version

  • Alexandre Julliard approved this merge request

    approved this merge request

Please register or sign in to reply
Loading