[vlc-commits] demux: mp4: add support for VP8/VP9/VP10

Francois Cartegnie git at videolan.org
Mon Sep 5 15:31:30 CEST 2016


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Mon Sep  5 11:13:55 2016 +0200| [914c8ddecf4d0b0c83809ec3537e43f6b8a45e5b] | committer: Francois Cartegnie

demux: mp4: add support for VP8/VP9/VP10

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

 NEWS                        |  1 +
 modules/demux/mp4/essetup.c | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/NEWS b/NEWS
index 8a6d0be..a19a556 100644
--- a/NEWS
+++ b/NEWS
@@ -97,6 +97,7 @@ Demuxers:
  * Support SCTE-18 / EAS inside TS
  * Support for RTP Reception Hint Track In MP4 with H.264, GSM and Speex payloads.
  * Support for XiphQt(MP4) vorbis and Flac
+ * Support for VP8/VP9/VP10 in MP4
 
 Stream filter:
  * Added ARIB STD-B25 TS streams decoder
diff --git a/modules/demux/mp4/essetup.c b/modules/demux/mp4/essetup.c
index a54ea1f..3faa11f 100644
--- a/modules/demux/mp4/essetup.c
+++ b/modules/demux/mp4/essetup.c
@@ -562,6 +562,27 @@ int SetupVideoES( demux_t *p_demux, mp4_track_t *p_track, MP4_Box_t *p_sample )
             break;
         }
 
+        case ATOM_vp08:
+        case ATOM_vp09:
+        case ATOM_vp10:
+        {
+            const MP4_Box_t *p_vpcC = MP4_BoxGet(  p_sample, "vpcC" );
+            if( p_vpcC && BOXDATA(p_vpcC) )
+            {
+                const MP4_Box_data_vpcC_t *p_data = BOXDATA(p_vpcC);
+                if( p_sample->i_type == ATOM_vp10 )
+                    p_track->fmt.i_codec = VLC_CODEC_VP10;
+                else if( p_sample->i_type == ATOM_vp09 )
+                    p_track->fmt.i_codec = VLC_CODEC_VP9;
+                else
+                    p_track->fmt.i_codec = VLC_CODEC_VP8;
+                p_track->fmt.i_profile = p_data->i_profile;
+                p_track->fmt.i_level = p_data->i_level;
+                p_track->fmt.i_extra = p_data->i_codec_init_datasize;
+                memcpy( p_track->fmt.p_extra, p_data->p_codec_init_data, p_data->i_codec_init_datasize );
+            }
+        }
+
         case ATOM_WMV3:
         {
             MP4_Box_t *p_strf = MP4_BoxGet(  p_sample, "strf", 0 );



More information about the vlc-commits mailing list