* GXF demuxer.
* Copyright (c) 2006 Reimar Doeffinger.
*
- * This library is free software; you can redistribute it and/or
+ * 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 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
- * This library is distributed in the hope that it will be useful,
+ * 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 this library; if not, write to the Free Software
+ * License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "avformat.h"
case 4:
st->codec->codec_type = CODEC_TYPE_VIDEO;
st->codec->codec_id = CODEC_ID_MJPEG;
- st->codec->codec_tag = MKTAG('M', 'J', 'P', 'G');
break;
case 13:
case 15:
st->codec->codec_type = CODEC_TYPE_VIDEO;
st->codec->codec_id = CODEC_ID_DVVIDEO;
- st->codec->codec_tag = MKTAG('d', 'v', 'c', ' ');
break;
case 14:
case 16:
st->codec->codec_type = CODEC_TYPE_VIDEO;
st->codec->codec_id = CODEC_ID_DVVIDEO;
- st->codec->codec_tag = MKTAG('d', 'v', 'c', 'p');
break;
case 11:
case 12:
case 20:
st->codec->codec_type = CODEC_TYPE_VIDEO;
st->codec->codec_id = CODEC_ID_MPEG2VIDEO;
- st->codec->codec_tag = MKTAG('M', 'P', 'G', '2');
+ st->need_parsing = 2; // get keyframe flag etc.
break;
case 22:
case 23:
st->codec->codec_type = CODEC_TYPE_VIDEO;
st->codec->codec_id = CODEC_ID_MPEG1VIDEO;
- st->codec->codec_tag = MKTAG('M', 'P', 'G', '1');
+ st->need_parsing = 2; // get keyframe flag etc.
break;
case 9:
st->codec->codec_type = CODEC_TYPE_AUDIO;
st->codec->codec_id = CODEC_ID_PCM_S24LE;
- st->codec->codec_tag = 0x1;
st->codec->channels = 1;
st->codec->sample_rate = 48000;
st->codec->bit_rate = 3 * 1 * 48000 * 8;
case 10:
st->codec->codec_type = CODEC_TYPE_AUDIO;
st->codec->codec_id = CODEC_ID_PCM_S16LE;
- st->codec->codec_tag = 0x1;
st->codec->channels = 1;
st->codec->sample_rate = 48000;
st->codec->bit_rate = 2 * 1 * 48000 * 8;
case 17:
st->codec->codec_type = CODEC_TYPE_AUDIO;
st->codec->codec_id = CODEC_ID_AC3;
- st->codec->codec_tag = 0x2000;
st->codec->channels = 2;
st->codec->sample_rate = 48000;
break;
+ // timecode tracks:
+ case 7:
+ case 8:
+ case 24:
+ st->codec->codec_type = CODEC_TYPE_DATA;
+ st->codec->codec_id = CODEC_ID_NONE;
+ break;
default:
st->codec->codec_type = CODEC_TYPE_UNKNOWN;
st->codec->codec_id = CODEC_ID_NONE;
int len;
ByteIOContext *pb = &s->pb;
pkt_type_t type;
- tmp = 0xff;
+ tmp = get_be32(pb);
start:
while (tmp)
READ_ONE();
// as well.
ret = av_get_packet(pb, pkt, pkt_len);
pkt->stream_index = get_sindex(s, track_id, track_type);
- pkt->pts = field_nr;
+ pkt->dts = field_nr;
return ret;
}
return AVERROR_IO;
maxlen = FFMAX(maxlen, 200 * 1024);
url_fseek(&s->pb, pos, SEEK_SET);
found = gxf_resync_media(s, maxlen, -1, timestamp);
- if (ABS(found - timestamp) > 4)
+ if (FFABS(found - timestamp) > 4)
return -1;
return 0;
}