[FFmpeg-devel] [PATCH] lavf/mpegtsenc: write metadata descriptor for timed ID3 packets

Michael Niedermayer michael at niedermayer.cc
Sat Aug 20 19:57:52 EEST 2016


On Sat, Aug 20, 2016 at 03:48:35PM +0200, Stefano Sabatini wrote:
> On date Thursday 2016-05-19 18:45:35 +0200, Stefano Sabatini encoded:
> > This is required since some softwares are not able to correctly recognize
> > the metadata.
> > ---
> >  libavformat/mpegtsenc.c | 24 ++++++++++++++----------
> >  1 file changed, 14 insertions(+), 10 deletions(-)
> 
> Updated, with some more documentation and references to the MPEGTS
> standard.
> 
> Note: this patch was created comparing the output of FFmpeg with those
> from encoding.com and elemental. With the change the output metadata
> can be read by third-party players.
> 
> If the maintainers prefer, I can enable this output mode through a
> flag.
> -- 
> FFmpeg = Fiendish & Fiendish Mastering Purposeless Egregious Goblin

>  mpegtsenc.c |   24 ++++++++++++++----------
>  1 file changed, 14 insertions(+), 10 deletions(-)
> 3a6655bca70653c64bfb5f2073d01feee73e64c2  0003-lavf-mpegtsenc-write-metadata-descriptor-for-timed-I.patch
> From 20f22c426a9f5c59d28f66a17b59d62301503d67 Mon Sep 17 00:00:00 2001
> From: Stefano Sabatini <stefasab at gmail.com>
> Date: Tue, 12 Apr 2016 18:16:21 +0200
> Subject: [PATCH] lavf/mpegtsenc: write metadata descriptor for timed ID3
>  packets
> 
> This is required since some programs are not able to correctly recognize
> the metadata. See H.222, 2.6.58 Metadata pointer descriptor.
> 
> putstr8() is modified in order to allow to skip writing the string
> length.
> ---
>  libavformat/mpegtsenc.c | 24 ++++++++++++++----------
>  1 file changed, 14 insertions(+), 10 deletions(-)
> 
> diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
> index b437100..6f40615 100644
> --- a/libavformat/mpegtsenc.c
> +++ b/libavformat/mpegtsenc.c
> @@ -256,7 +256,7 @@ static void mpegts_write_pat(AVFormatContext *s)
>  }
>  
>  /* NOTE: !str is accepted for an empty string */
> -static void putstr8(uint8_t **q_ptr, const char *str)
> +static void putstr8(uint8_t **q_ptr, const char *str, int write_len)

breaks build, putstr8() seems after the place where a use is added
in git master, or i did somehing silly

libavformat/mpegtsenc.c: In function ‘mpegts_write_pmt’:
libavformat/mpegtsenc.c:618:17: error: implicit declaration of function ‘putstr8’ [-Werror=implicit-function-declaration]
libavformat/mpegtsenc.c: At top level:
libavformat/mpegtsenc.c:644:13: warning: conflicting types for ‘putstr8’ [enabled by default]
libavformat/mpegtsenc.c:644:13: error: static declaration of ‘putstr8’ follows non-static declaration
libavformat/mpegtsenc.c:618:17: note: previous implicit declaration of ‘putstr8’ was here
cc1: some warnings being treated as errors
make: *** [libavformat/mpegtsenc.o] Error 1

[...]


-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Dictatorship: All citizens are under surveillance, all their steps and
actions recorded, for the politicians to enforce control.
Democracy: All politicians are under surveillance, all their steps and
actions recorded, for the citizens to enforce control.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160820/34dbf943/attachment.sig>


More information about the ffmpeg-devel mailing list