LCOV - code coverage report
Current view: top level - src/libavformat - a64.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 21 0.0 %
Date: 2017-08-17 10:06:07 Functions: 0 1 0.0 %

          Line data    Source code
       1             : /*
       2             :  * a64 muxer
       3             :  * Copyright (c) 2009 Tobias Bindhammer
       4             :  *
       5             :  * This file is part of FFmpeg.
       6             :  *
       7             :  * FFmpeg is free software; you can redistribute it and/or
       8             :  * modify it under the terms of the GNU Lesser General Public
       9             :  * License as published by the Free Software Foundation; either
      10             :  * version 2.1 of the License, or (at your option) any later version.
      11             :  *
      12             :  * FFmpeg is distributed in the hope that it will be useful,
      13             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      14             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      15             :  * Lesser General Public License for more details.
      16             :  *
      17             :  * You should have received a copy of the GNU Lesser General Public
      18             :  * License along with FFmpeg; if not, write to the Free Software
      19             :  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
      20             :  */
      21             : 
      22             : #include "libavcodec/avcodec.h"
      23             : #include "libavcodec/bytestream.h"
      24             : #include "avformat.h"
      25             : #include "rawenc.h"
      26             : 
      27           0 : static int a64_write_header(AVFormatContext *s)
      28             : {
      29           0 :     AVCodecParameters *par = s->streams[0]->codecpar;
      30           0 :     uint8_t header[5] = {
      31             :         0x00, //load
      32             :         0x40, //address
      33             :         0x00, //mode
      34             :         0x00, //charset_lifetime (multi only)
      35             :         0x00  //fps in 50/fps;
      36             :     };
      37             : 
      38           0 :     if (par->extradata_size < 4) {
      39           0 :         av_log(s, AV_LOG_ERROR, "Missing extradata\n");
      40           0 :         return AVERROR_INVALIDDATA;
      41             :     }
      42             : 
      43           0 :     switch (par->codec_id) {
      44           0 :     case AV_CODEC_ID_A64_MULTI:
      45           0 :         header[2] = 0x00;
      46           0 :         header[3] = AV_RB32(par->extradata+0);
      47           0 :         header[4] = 2;
      48           0 :         break;
      49           0 :     case AV_CODEC_ID_A64_MULTI5:
      50           0 :         header[2] = 0x01;
      51           0 :         header[3] = AV_RB32(par->extradata+0);
      52           0 :         header[4] = 3;
      53           0 :         break;
      54           0 :     default:
      55           0 :         return AVERROR_INVALIDDATA;
      56             :     }
      57           0 :     avio_write(s->pb, header, 2);
      58           0 :     return 0;
      59             : }
      60             : 
      61             : AVOutputFormat ff_a64_muxer = {
      62             :     .name           = "a64",
      63             :     .long_name      = NULL_IF_CONFIG_SMALL("a64 - video for Commodore 64"),
      64             :     .extensions     = "a64, A64",
      65             :     .video_codec    = AV_CODEC_ID_A64_MULTI,
      66             :     .write_header   = a64_write_header,
      67             :     .write_packet   = ff_raw_write_packet,
      68             : };

Generated by: LCOV version 1.13