[FFmpeg-devel] [PATCH] Added an Adobe HTTP Dynamic Streaming (HDS) demuxer

Nicolas George george at nsup.org
Wed Apr 16 15:34:19 CEST 2014


Le nonidi 29 pluviôse, an CCXXII, CORY MCCARTHY a écrit :
> Complete patch with recent improvements
> 
> Fixed a crash that occurred when the manifest file contained more than 1024 fragment run table entries
> Return EOF instead of looping back to the beginning for non live streams
> Cannot assume the first fragment number will be zero
> 
> Ed, I was able to reproduce the crash with the information you sent.  Thank you.
> I fixed it and sent an updated patch.
> 
> If you're able to test it with your setup, please let me know how it goes.

Hi.

I find myself suddenly interested in this adobe HDS thing. Are you still
there? Are you still interested in getting this applied?

If so, I think I will have a few technical comments to write. If not, I may
try to take over. So please let me know quickly if possible which one it
should be.

At the very least, sorry for the long silence since you last sent this.

A few easy comments for now:

> commit f21b5eb9db4504dfcd690385b4403e99f2f7b1b2
> Author: Cory McCarthy <cory.mccarthy at shaw.ca>
> Date:   Mon Feb 17 17:30:22 2014 -0500
> 
>     Added an Adobe HTTP Dynamic Streaming (HDS) demuxer

It looks like you produced your patch using "git log -p -1 > file.patch". It
does the trick, but it is not the preferred way. You should rather use
"git format-patch", because it produces a self-contained patch with author
and date information. You can also use "git send-email", it will prepare the
patches with format-patch and directly send them.

> diff --git a/libavformat/amfmetadata.c b/libavformat/amfmetadata.c
> new file mode 100644

> diff --git a/libavformat/amfmetadata.h b/libavformat/amfmetadata.h
> new file mode 100644

> diff --git a/libavformat/f4fbox.c b/libavformat/f4fbox.c
> new file mode 100644

> diff --git a/libavformat/f4fbox.h b/libavformat/f4fbox.h
> new file mode 100644

> diff --git a/libavformat/f4mmanifest.c b/libavformat/f4mmanifest.c
> new file mode 100644

> diff --git a/libavformat/f4mmanifest.h b/libavformat/f4mmanifest.h
> new file mode 100644

> diff --git a/libavformat/flvtag.c b/libavformat/flvtag.c
> new file mode 100644

> diff --git a/libavformat/flvtag.h b/libavformat/flvtag.h
> new file mode 100644

I have yet to look into it, but I suspect some of these file could be added
as separate commits. Probably not very important though.

> diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
> index b11e335..78e5024 100644
> --- a/libavformat/flvdec.c
> +++ b/libavformat/flvdec.c
> @@ -284,6 +284,11 @@ static int amf_get_string(AVIOContext *ioc, char *buffer, int buffsize)
>      return length;
>  }
>  
> +int ff_amf_get_string(AVIOContext *ioc, char *buffer, int buffsize)
> +{
> +    return amf_get_string(ioc, buffer, buffsize);
> +}

I think it would be better to just rename amf_get_string() into
ff_amf_get_string() in a separate patch.

> diff --git a/libavformat/version.h b/libavformat/version.h
> index 9f0695c..f9fc9d8 100644
> --- a/libavformat/version.h
> +++ b/libavformat/version.h
> @@ -30,7 +30,7 @@
>  #include "libavutil/version.h"
>  
>  #define LIBAVFORMAT_VERSION_MAJOR 55
> -#define LIBAVFORMAT_VERSION_MINOR 33
> +#define LIBAVFORMAT_VERSION_MINOR 34
>  #define LIBAVFORMAT_VERSION_MICRO 100

It will take some time to get such a big patch into shape, so I suggest you
leave out this version bump and the Changelog entry, and just add "TODO
version bump and Changelog" in the commit message: that way, you will avoid
conflicts when rebasing your work tree on top of current git head. The
version bump and Changelog entry can be added back once the patch is in its
final shape.

Regards,

-- 
  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140416/5e46b11d/attachment.asc>


More information about the ffmpeg-devel mailing list