vlc | branch: master | Francois Cartegnie <[email protected]> | Thu Dec 3 16:28:19 2015 +0100| [289691ced2843104223d96d24f892a3f888c6edb] | committer: Francois Cartegnie
demux: mp4: handle pps/sps less AVC Intra (fix #15762) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=289691ced2843104223d96d24f892a3f888c6edb --- modules/demux/Makefile.am | 1 + modules/demux/mp4/essetup.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/modules/demux/Makefile.am b/modules/demux/Makefile.am index 18db3e1..b0e327c 100644 --- a/modules/demux/Makefile.am +++ b/modules/demux/Makefile.am @@ -197,6 +197,7 @@ libmp4_plugin_la_SOURCES = demux/mp4/mp4.c demux/mp4/mp4.h \ demux/mp4/libmp4.c demux/mp4/libmp4.h \ demux/mp4/id3genres.h demux/mp4/languages.h \ demux/asf/asfpacket.c demux/asf/asfpacket.h \ + demux/mp4/avci.h \ demux/mp4/essetup.c demux/mp4/meta.c libmp4_plugin_la_LIBADD = $(LIBM) libmp4_plugin_la_LDFLAGS = $(AM_LDFLAGS) diff --git a/modules/demux/mp4/essetup.c b/modules/demux/mp4/essetup.c index 0ae48a8..c8be5a3 100644 --- a/modules/demux/mp4/essetup.c +++ b/modules/demux/mp4/essetup.c @@ -25,6 +25,7 @@ #endif #include "mp4.h" +#include "avci.h" #include <vlc_demux.h> #include <vlc_aout.h> @@ -395,6 +396,32 @@ int SetupVideoES( demux_t *p_demux, mp4_track_t *p_track, MP4_Box_t *p_sample ) break; } + case VLC_FOURCC( 'a', 'i', '5', 'p' ): + case VLC_FOURCC( 'a', 'i', '5', 'q' ): + case VLC_FOURCC( 'a', 'i', '5', '2' ): + case VLC_FOURCC( 'a', 'i', '5', '3' ): + case VLC_FOURCC( 'a', 'i', '5', '5' ): + case VLC_FOURCC( 'a', 'i', '5', '6' ): + case VLC_FOURCC( 'a', 'i', '1', 'p' ): + case VLC_FOURCC( 'a', 'i', '1', 'q' ): + case VLC_FOURCC( 'a', 'i', '1', '2' ): + case VLC_FOURCC( 'a', 'i', '1', '3' ): + case VLC_FOURCC( 'a', 'i', '1', '5' ): + case VLC_FOURCC( 'a', 'i', '1', '6' ): + { + if( !p_track->fmt.i_extra && p_track->fmt.video.i_width < UINT16_MAX ) + { + const MP4_Box_t *p_fiel = MP4_BoxGet( p_sample, "fiel" ); + if( p_fiel && BOXDATA(p_fiel) ) + { + p_track->fmt.p_extra = + AVCi_create_AnnexB( p_track->fmt.video.i_width, + !!BOXDATA(p_fiel)->i_flags, &p_track->fmt.i_extra ); + } + } + break; + } + default: msg_Dbg( p_demux, "Unrecognized FourCC %4.4s", (char *)&p_sample->i_type ); break; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
