[FFmpeg-devel] Fwd: [PATCH] Psygnosis YOP demuxer

Michael Niedermayer michaelni
Thu Dec 17 17:45:47 CET 2009


On Mon, Dec 14, 2009 at 10:15:26PM +0530, Yadu Nand wrote:
> ?Hi,
> 
> Attached patch is a cleaned up variant of the one submitted by Thomas
> Higdon [1] and includes the demuxer only. The decoder patch will
> follow once (hopefully) this is in.
> Comments appreciated.
> 
> [1] http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/95133/focus=95474
> 
> --
> Regards,
> Yadu Nand B

>  Changelog                |    2 
>  doc/general.texi         |    1 
>  libavformat/Makefile     |    1 
>  libavformat/allformats.c |    1 
>  libavformat/avformat.h   |    2 
>  libavformat/yopdec.c     |  170 +++++++++++++++++++++++++++++++++++++++++++++++
>  6 files changed, 175 insertions(+), 2 deletions(-)
> 4252696146e0252db08ba75036d1c3bad50ceb23  yop-demux.patch
> Index: Changelog
> ===================================================================
> --- Changelog	(revision 20110)
> +++ Changelog	(working copy)
> @@ -40,9 +40,9 @@
>  - Core Audio Format demuxer
>  - Atrac1 decoder
>  - MD STUDIO audio demuxer
> +- Psygnosis YOP demuxer
>  
>  
> -
>  version 0.5:
>  
>  - DV50 AKA DVCPRO50 encoder, decoder, muxer and demuxer
> Index: doc/general.texi
> ===================================================================
> --- doc/general.texi	(revision 20110)
> +++ doc/general.texi	(working copy)
> @@ -231,6 +231,7 @@
>      @tab Multimedia format used in Westwood Studios games.
>  @item Westwood Studios VQA      @tab   @tab X
>      @tab Multimedia format used in Westwood Studios games.
> + at item Psygnosis YOP      @tab   @tab X
>  @item YUV4MPEG pipe             @tab X @tab X
>  @end multitable
>  
> Index: libavformat/avformat.h
> ===================================================================
> --- libavformat/avformat.h	(revision 20110)
> +++ libavformat/avformat.h	(working copy)
> @@ -22,7 +22,7 @@
>  #define AVFORMAT_AVFORMAT_H
>  
>  #define LIBAVFORMAT_VERSION_MAJOR 52
> -#define LIBAVFORMAT_VERSION_MINOR 39
> +#define LIBAVFORMAT_VERSION_MINOR 40
>  #define LIBAVFORMAT_VERSION_MICRO  0
>  
>  #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
> Index: libavformat/yopdec.c
> ===================================================================
> --- libavformat/yopdec.c	(revision 0)
> +++ libavformat/yopdec.c	(revision 0)
> @@ -0,0 +1,170 @@
> +/**
> + * @file libavformat/yopdec.c
> + * Psygnosis YOP demuxer
> + *
> + * Copyright (C) 2009 Thomas P. Higdon <thomas.p.higdon at gmail.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
> + */
> +
> +#include "libavutil/intreadwrite.h"
> +#include "avformat.h"
> +
> +typedef struct yop_dec_context {

> +    AVPacket sound_packet;
> +    AVPacket video_packet;

Is there some code that frees these if one is left at eof?


> +
> +    int frame_size;

> +    int sound_data_length;

constant thus redundant


> +    int sound_chunk_length;
> +    int stream;
> +    int num_pal_colors;
> +} YopDecContext;
> +

> +static int yop_probe(AVProbeData *probe_packet)
> +{
> +   	if ((AV_RB16(probe_packet->buf) == AV_RB16("YO"))
> +	 	 && !(AV_RL16(probe_packet->buf + 8) & 1) && !(AV_RL16(probe_packet->buf + 10) & 1))
> +        return AVPROBE_SCORE_MAX/2 + 1;
> +	
> +    return 0;
> +}

tabs


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No snowflake in an avalanche ever feels responsible. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20091217/5b2279da/attachment.pgp>



More information about the ffmpeg-devel mailing list