mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-12-24 20:01:53 +00:00
Added checks for MP4/Quicktime. mkvmerge will abort if it encounters one of those in order to prohibit mkvmerge from falsely recogzining them as AAC files.
This commit is contained in:
parent
e182f0191d
commit
2c7dfa512e
@ -1,5 +1,7 @@
|
|||||||
2003-05-22 Moritz Bunkus <moritz@bunkus.org>
|
2003-05-22 Moritz Bunkus <moritz@bunkus.org>
|
||||||
|
|
||||||
|
* Added checks for MP4/Quicktime files which will abort mkvmerge.
|
||||||
|
|
||||||
* Support for reading AAC tracks from Matroska files.
|
* Support for reading AAC tracks from Matroska files.
|
||||||
|
|
||||||
* Released v0.4.0.
|
* Released v0.4.0.
|
||||||
|
@ -29,6 +29,7 @@ mkvmerge_SOURCES = mkvmerge.cpp mkvmerge.h \
|
|||||||
r_dts.cpp r_dts.h \
|
r_dts.cpp r_dts.h \
|
||||||
r_matroska.cpp r_matroska.h \
|
r_matroska.cpp r_matroska.h \
|
||||||
r_mp3.cpp r_mp3.h \
|
r_mp3.cpp r_mp3.h \
|
||||||
|
r_mp4.cpp r_mp4.h \
|
||||||
r_srt.cpp r_srt.h \
|
r_srt.cpp r_srt.h \
|
||||||
r_ogm.cpp r_ogm.h \
|
r_ogm.cpp r_ogm.h \
|
||||||
r_wav.cpp r_wav.h \
|
r_wav.cpp r_wav.h \
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\file
|
\file
|
||||||
\version \$Id: mkvmerge.cpp,v 1.74 2003/05/22 11:10:40 mosu Exp $
|
\version \$Id: mkvmerge.cpp,v 1.75 2003/05/22 15:37:53 mosu Exp $
|
||||||
\brief command line parameter parsing, looping, output handling
|
\brief command line parameter parsing, looping, output handling
|
||||||
\author Moritz Bunkus <moritz@bunkus.org>
|
\author Moritz Bunkus <moritz@bunkus.org>
|
||||||
*/
|
*/
|
||||||
@ -75,6 +75,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#include "r_srt.h"
|
#include "r_srt.h"
|
||||||
#include "r_matroska.h"
|
#include "r_matroska.h"
|
||||||
|
#include "r_mp4.h"
|
||||||
|
|
||||||
using namespace LIBMATROSKA_NAMESPACE;
|
using namespace LIBMATROSKA_NAMESPACE;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
@ -331,6 +332,11 @@ static int get_type(char *filename) {
|
|||||||
type = TYPEMATROSKA;
|
type = TYPEMATROSKA;
|
||||||
else if (wav_reader_c::probe_file(f, size))
|
else if (wav_reader_c::probe_file(f, size))
|
||||||
type = TYPEWAV;
|
type = TYPEWAV;
|
||||||
|
else if (mp4_reader_c::probe_file(f, size)) {
|
||||||
|
fprintf(stderr, "Error: MP4/Quicktime files are not supported (%s).\n",
|
||||||
|
filename);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
#ifdef HAVE_OGGVORBIS
|
#ifdef HAVE_OGGVORBIS
|
||||||
else if (ogm_reader_c::probe_file(f, size))
|
else if (ogm_reader_c::probe_file(f, size))
|
||||||
type = TYPEOGM;
|
type = TYPEOGM;
|
||||||
|
43
r_mp4.cpp
Normal file
43
r_mp4.cpp
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
mkvmerge -- utility for splicing together matroska files
|
||||||
|
from component media subtypes
|
||||||
|
|
||||||
|
r_mp4.cpp
|
||||||
|
|
||||||
|
Written by Moritz Bunkus <moritz@bunkus.org>
|
||||||
|
|
||||||
|
Distributed under the GPL
|
||||||
|
see the file COPYING for details
|
||||||
|
or visit http://www.gnu.org/copyleft/gpl.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\file
|
||||||
|
\version \$Id: r_mp4.cpp,v 1.1 2003/05/22 15:37:53 mosu Exp $
|
||||||
|
\brief MP4 identification class
|
||||||
|
\author Moritz Bunkus <moritz@bunkus.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "r_mp4.h"
|
||||||
|
|
||||||
|
int mp4_reader_c::probe_file(FILE *file, int64_t size) {
|
||||||
|
unsigned char data[20];
|
||||||
|
|
||||||
|
if (size < 20)
|
||||||
|
return 0;
|
||||||
|
if (fseek(file, 0, SEEK_SET) != 0)
|
||||||
|
return 0;
|
||||||
|
if (fread(data, 1, 20, file) != 20) {
|
||||||
|
fseek(file, 0, SEEK_SET);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
fseek(file, 0, SEEK_SET);
|
||||||
|
if ((data[4] != 'f') || (data[5] != 't') ||
|
||||||
|
(data[6] != 'y') || (data[7] != 'p'))
|
||||||
|
return 0;
|
||||||
|
return 1;
|
||||||
|
}
|
31
r_mp4.h
Normal file
31
r_mp4.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
mkvmerge -- utility for splicing together matroska files
|
||||||
|
from component media subtypes
|
||||||
|
|
||||||
|
r_mp4.h
|
||||||
|
|
||||||
|
Written by Moritz Bunkus <moritz@bunkus.org>
|
||||||
|
|
||||||
|
Distributed under the GPL
|
||||||
|
see the file COPYING for details
|
||||||
|
or visit http://www.gnu.org/copyleft/gpl.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\file
|
||||||
|
\version \$Id: r_mp4.h,v 1.1 2003/05/22 15:37:53 mosu Exp $
|
||||||
|
\brief class definitions for the dummy MP4 reader
|
||||||
|
\author Moritz Bunkus <moritz@bunkus.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __R_MP4_H
|
||||||
|
#define __R_MP4_H
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
class mp4_reader_c {
|
||||||
|
public:
|
||||||
|
static int probe_file(FILE *file, int64_t size);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // __R_MP4_H
|
Loading…
Reference in New Issue
Block a user