1/* 2 * Copyright (c) 2008 BBC, Anuradha Suraparaju <asuraparaju at gmail dot com > 3 * 4 * This file is part of FFmpeg. 5 * 6 * FFmpeg is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * FFmpeg is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with FFmpeg; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 21/** 22* @file 23* data structures common to libschroedingerdec.c and libschroedingerenc.c 24*/ 25 26#ifndef AVCODEC_LIBSCHROEDINGER_H 27#define AVCODEC_LIBSCHROEDINGER_H 28 29#include <schroedinger/schrobitstream.h> 30#include <schroedinger/schroframe.h> 31#include "avcodec.h" 32 33static const struct { 34 enum PixelFormat ff_pix_fmt; 35 SchroChromaFormat schro_pix_fmt; 36 SchroFrameFormat schro_frame_fmt; 37} ffmpeg_schro_pixel_format_map[] = { 38 { PIX_FMT_YUV420P, SCHRO_CHROMA_420, SCHRO_FRAME_FORMAT_U8_420 }, 39 { PIX_FMT_YUV422P, SCHRO_CHROMA_422, SCHRO_FRAME_FORMAT_U8_422 }, 40 { PIX_FMT_YUV444P, SCHRO_CHROMA_444, SCHRO_FRAME_FORMAT_U8_444 }, 41}; 42 43/** 44* Returns the video format preset matching the input video dimensions and 45* time base. 46*/ 47SchroVideoFormatEnum ff_get_schro_video_format_preset (AVCodecContext *avccontext); 48 49/** 50* Sets the Schroedinger frame format corresponding to the Schro chroma format 51* passed. Returns 0 on success, -1 on failure. 52*/ 53int ff_get_schro_frame_format(SchroChromaFormat schro_chroma_fmt, 54 SchroFrameFormat *schro_frame_fmt); 55 56/** 57* Create a Schro frame based on the dimensions and frame format 58* passed. Returns a pointer to a frame on success, NULL on failure. 59*/ 60SchroFrame *ff_create_schro_frame(AVCodecContext *avccontext, 61 SchroFrameFormat schro_frame_fmt); 62 63#endif /* AVCODEC_LIBSCHROEDINGER_H */ 64