Menu

#359 Qt: srcPlaystate=pause not implemented

developer_version
closed-out-of-date
nobody
None
5
2015-02-25
2007-01-04
Kees Blom
No

AmbulantPlayer_qt gets a Segmentation fault when playing
Flashlight-CE.smil in USA-martket mode when clicking repeatedly betweeb "Info" and "Introduction"
(ambulantPlayer_gtk does't react to clicks for this .smil
file because of bug #1627927) -- need to check that too

Discussion

  • Kees Blom

    Kees Blom - 2007-01-11

    Logged In: YES
    user_id=886581
    Originator: YES

    m_new_focussed_nodes == NULL when smil_player::pointed is called.

    Caused by the fact that clicking on "Introduction" causes a 2nd smil_player
    to be instantiated. In the call to smil_player::before_mousemove is done
    by the 1st instance, the call smil_player::pointed is done by the 2nd.

    But the 2nd instance shouldn't have been instantiated in the first place:
    when smil_player::show_link is called for "Introduction" the fact that
    this is an internal hyperjump was not detected because srcstate==src_pause!
    Futhermore, this also causes m_system->open() to be called with to_replace==NULL, which causes qt_mainloop->open() not to delete the 1st
    instance and replace it by the 2nd.

     
  • Kees Blom

    Kees Blom - 2007-01-12

    Logged In: YES
    user_id=886581
    Originator: YES

    Fixed in smil_player.cpp 1.92 by adding a test m_new_focussed_nodes!=NULL
    in smil_player::pointed().
    This can happen when before_mousemove() was not called for this smil_player. However, this is not really the solution.

    The real problem is, that when moving back to the first item of the smil show, a new player is instanciated (this is funny by itself!) but the old player is returned by qt_ambulant_widget::get_gui_player() in qt_ambulant_widget::mouseMoveEvent() whereas m_qt_window->user_event() when called in that function acts on the new player.

    But it fixes the crash, doesn't raise new problems like hanging or irresponsivenes, therefore leaving the bug and lowering its priority.

     
  • Kees Blom

    Kees Blom - 2007-01-12
    • priority: 8 --> 6
    • status: open --> open-remind
     
  • Kees Blom

    Kees Blom - 2007-01-12

    Logged In: YES
    user_id=886581
    Originator: YES

    Reverted the temp.fix in smil_player.cpp into an assertion (1.83).

     
  • Kees Blom

    Kees Blom - 2007-01-12
    • priority: 6 --> 8
    • assigned_to: keesblom --> jackjansen
     
  • Jack Jansen

    Jack Jansen - 2007-01-12

    Logged In: YES
    user_id=45365
    Originator: NO

    The original recipy no longer works since Flashlight-CE.smil r1.7.

    However, the bug still exists. Even though the original trigger was nonsensical there are scenarios that are valid and would probably trigger the same bug, for example using srcPlaystate="pause" while jumping to another document. Conceivably the same sequence of events as Kees elaborates in the 2007-01-12 11:51 comment could occur.

    Mac does not have this problem (it doesn't reuse windows, which is the real cause of this) but gtk and maybe windows could have it too.

     
  • Jack Jansen

    Jack Jansen - 2007-01-12
    • summary: AmbulantPlayer crashes (segfault, Qt) --> Qt: srcPlaystate=pause not implemented
    • priority: 8 --> 5
    • assigned_to: jackjansen --> nobody
    • status: open-remind --> open
     
  • Kees Blom

    Kees Blom - 2015-02-25

    qt is not supported anymore.

     
  • Kees Blom

    Kees Blom - 2015-02-25
    • status: open --> closed-out-of-date
    • Group: --> developer_version
     

Log in to post a comment.