Browse Source

fix the id CIN demuxer by using the pts API correctly

Originally committed as revision 12281 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Mike Melanson 17 years ago
parent
commit
40e8e49700
1 changed files with 4 additions and 4 deletions
  1. +4
    -4
      libavformat/idcin.c

+ 4
- 4
libavformat/idcin.c View File

@@ -71,7 +71,7 @@
#include "avformat.h" #include "avformat.h"


#define HUFFMAN_TABLE_SIZE (64 * 1024) #define HUFFMAN_TABLE_SIZE (64 * 1024)
#define FRAME_PTS_INC (90000 / 14)
#define IDCIN_FPS 14


typedef struct IdcinDemuxContext { typedef struct IdcinDemuxContext {
int video_stream_index; int video_stream_index;
@@ -152,7 +152,7 @@ static int idcin_read_header(AVFormatContext *s,
st = av_new_stream(s, 0); st = av_new_stream(s, 0);
if (!st) if (!st)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
av_set_pts_info(st, 33, 1, 90000);
av_set_pts_info(st, 33, 1, IDCIN_FPS);
idcin->video_stream_index = st->index; idcin->video_stream_index = st->index;
st->codec->codec_type = CODEC_TYPE_VIDEO; st->codec->codec_type = CODEC_TYPE_VIDEO;
st->codec->codec_id = CODEC_ID_IDCIN; st->codec->codec_id = CODEC_ID_IDCIN;
@@ -175,7 +175,7 @@ static int idcin_read_header(AVFormatContext *s,
st = av_new_stream(s, 0); st = av_new_stream(s, 0);
if (!st) if (!st)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
av_set_pts_info(st, 33, 1, 90000);
av_set_pts_info(st, 33, 1, IDCIN_FPS);
idcin->audio_stream_index = st->index; idcin->audio_stream_index = st->index;
st->codec->codec_type = CODEC_TYPE_AUDIO; st->codec->codec_type = CODEC_TYPE_AUDIO;
st->codec->codec_tag = 1; st->codec->codec_tag = 1;
@@ -271,7 +271,7 @@ static int idcin_read_packet(AVFormatContext *s,
pkt->pts = idcin->pts; pkt->pts = idcin->pts;


idcin->current_audio_chunk ^= 1; idcin->current_audio_chunk ^= 1;
idcin->pts += FRAME_PTS_INC;
idcin->pts++;
} }


if (idcin->audio_present) if (idcin->audio_present)


Loading…
Cancel
Save