[vlc-commits] demux: mp4: fix moof based absolute trun data offsets

Francois Cartegnie git at videolan.org
Wed Feb 7 14:36:30 CET 2018


vlc/vlc-3.0 | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Feb  7 13:50:12 2018 +0100| [d3b590326eab1daa989035d86d313c9297302795] | committer: Francois Cartegnie

demux: mp4: fix moof based absolute trun data offsets

(cherry picked from commit d432ea9f8995418239fa926b7ffc0cee1c7f4ff5)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=d3b590326eab1daa989035d86d313c9297302795
---

 modules/demux/mp4/mp4.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index 7be3ffc481..36b408a2f7 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -4561,6 +4561,7 @@ static int FragCreateTrunIndex( demux_t *p_demux, MP4_Box_t *p_moof,
         {
             i_traf_base_data_offset = BOXDATA(p_tfhd)->i_base_data_offset;
         }
+        /* ignored if MP4_TFHD_BASE_DATA_OFFSET */
         else if ( BOXDATA(p_tfhd)->i_flags & MP4_TFHD_DEFAULT_BASE_IS_MOOF )
         {
             i_traf_base_data_offset = p_moof->i_pos /* + 8*/;
@@ -4599,6 +4600,11 @@ static int FragCreateTrunIndex( demux_t *p_demux, MP4_Box_t *p_moof,
                 {
                     i_trun_data_offset = BOXDATA(p_tfhd)->i_base_data_offset + p_trundata->i_data_offset;
                 }
+                /* ignored if MP4_TFHD_BASE_DATA_OFFSET */
+                else if ( BOXDATA(p_tfhd)->i_flags & MP4_TFHD_DEFAULT_BASE_IS_MOOF )
+                {
+                    i_trun_data_offset = p_moof->i_pos + p_trundata->i_data_offset;
+                }
                 else
                 {
                     i_trun_data_offset += p_trundata->i_data_offset;



More information about the vlc-commits mailing list