[FFmpeg-devel] [patch]add mmsh protocol and extract common code for mmst.c

Stefano Sabatini stefano.sabatini-lala
Fri Aug 20 17:33:23 CEST 2010


On date Friday 2010-08-20 23:10:56 +0800, zhentan feng encoded:
[...]
> Index: libavformat/mmsh.c
> ===================================================================
> --- libavformat/mmsh.c	(revision 0)
> +++ libavformat/mmsh.c	(revision 0)
> @@ -0,0 +1,367 @@
> +/*
> + * MMS protocol over HTTP
> + * Copyright (c) 2010 Zhentan Feng <spyfeng at gmail dot com>
> + *
> + * This file is part of FFmpeg.
> + *
> + * FFmpeg is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * FFmpeg is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with FFmpeg; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +

> +/*
> + * Reference
> + * Windows Media HTTP Streaming Protocol.
> + * http://msdn.microsoft.com/en-us/library/cc251059(PROT.10).aspx
> + */
> +#include <string.h>

Add an empty line between comments and first #include line for
enhanced readability.

[...]
> +static int read_data_packet(MMSHContext *mmsh, const int len)
> +{
> +    MMSContext *mms   = &mmsh->mms;
> +    int res;
> +    if (len > sizeof(mms->in_buffer)) {

> +        av_log(NULL, AV_LOG_ERROR,
> +              "Data packet length %d exceeds the in_buffer size %d\n",
> +               len, sizeof(mms->in_buffer));

Indent one char more the "foo" lines, here and below, I mean:

        av_log(NULL, AV_LOG_ERROR,
               "Data packet length %d exceeds the in_buffer size %d\n",
               len, sizeof(mms->in_buffer));

[...]

> +static int handle_chunk_type(MMSHContext *mmsh)
> +{
> +    MMSContext *mms = &mmsh->mms;
> +    int res, len = 0;
> +    ChunkType chunk_type;
> +    chunk_type = get_chunk_header(mmsh, &len);
> +
> +    switch (chunk_type) {
> +    case CHUNK_TYPE_END:
> +        mmsh->chunk_seq = 0;
> +        av_log(NULL, AV_LOG_ERROR, "Stream ended!\n");
> +        return AVERROR(EIO);
> +    case CHUNK_TYPE_STREAM_CHANGE:
> +        mms->header_parsed = 0;

> +        if ((res = get_http_header_data(mmsh)) != 0) {

This can also be:
           if ((res = get_http_header_data(mmsh))) {

or maybe it's better check for < 0, more future-proof.

> +            av_log(NULL, AV_LOG_ERROR,"Stream changed! get new header failed!\n");

Maybe better:
av_log(NULL, AV_LOG_ERROR, "Stream changed! Failed to get new header!\n");

[...]

Regards.
-- 
FFmpeg = Furious and Faithless Most Patchable Esoteric Glue



More information about the ffmpeg-devel mailing list