[vlc-commits] [Git][videolan/vlc][master] demux/mp4: fix display of slides included in m4b media

Steve Lhomme (@robUx4) gitlab at videolan.org
Fri Jun 19 05:02:45 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
a998d8b6 by Felix Paul Kühne at 2026-06-19T04:30:41+00:00
demux/mp4: fix display of slides included in m4b media

Apple m4b audiobooks reference both a text chapter track and a
video slide track from the audio track's tref/chap. Flagging both
as USEAS_CHAPTERS hid the slides, since MP4_isMetadata() then
prevented an ES from being created.

Skip USEAS_CHAPTERS for a chap-referenced video track, so the
slide track stays a regular video ES.

Fix #7791

- - - - -


1 changed file:

- modules/demux/mp4/mp4.c


Changes:

=====================================
modules/demux/mp4/mp4.c
=====================================
@@ -1304,7 +1304,18 @@ static int Open( vlc_object_t * p_this )
                 {
                     msg_Dbg( p_demux, "track 0x%x refs track 0x%x for %4.4s", i,
                              refdata->i_track_ID[j], (const char *) &p_refbox->i_type );
-                    reftk->i_use_flags |= MP4_reftypeToFlag( p_refbox->i_type );
+                    int i_flag = MP4_reftypeToFlag( p_refbox->i_type );
+                    /* chap may reference a video track holding slide artwork; such a track is not a chapter source */
+                    if( i_flag == USEAS_CHAPTERS )
+                    {
+                        const MP4_Box_t *p_hdlr = MP4_BoxGet( reftk->p_track, "mdia/hdlr" );
+                        if( p_hdlr && BOXDATA(p_hdlr) &&
+                            BOXDATA(p_hdlr)->i_handler_type == ATOM_vide )
+                        {
+                            i_flag = USEAS_NONE;
+                        }
+                    }
+                    reftk->i_use_flags |= i_flag;
                 }
             }
         }



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/a998d8b6301572c08182f36ac33aa19fb75e84b6

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/a998d8b6301572c08182f36ac33aa19fb75e84b6
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list