mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-12-24 20:01:53 +00:00
UTFstring / C string conversion. Proper version numbers are written to the KaxInfos.
This commit is contained in:
parent
1a4f103fa1
commit
fbc60f9089
@ -1,3 +1,8 @@
|
|||||||
|
2003-05-21 Moritz Bunkus <moritz@bunkus.org>
|
||||||
|
|
||||||
|
* Some internal changes and enhancements. Code requires libebml
|
||||||
|
and libmatroska 0.4.3 now.
|
||||||
|
|
||||||
2003-05-19 Moritz Bunkus <moritz@bunkus.org>
|
2003-05-19 Moritz Bunkus <moritz@bunkus.org>
|
||||||
|
|
||||||
* ADTS headers are stripped from the AAC streams. This is what I'd
|
* ADTS headers are stripped from the AAC streams. This is what I'd
|
||||||
|
46
common.cpp
46
common.cpp
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\file
|
\file
|
||||||
\version \$Id: common.cpp,v 1.23 2003/05/19 18:24:52 mosu Exp $
|
\version \$Id: common.cpp,v 1.24 2003/05/21 21:05:47 mosu Exp $
|
||||||
\brief helper functions, common variables
|
\brief helper functions, common variables
|
||||||
\author Moritz Bunkus <moritz@bunkus.org>
|
\author Moritz Bunkus <moritz@bunkus.org>
|
||||||
*/
|
*/
|
||||||
@ -343,3 +343,47 @@ void *_saferealloc(void *mem, size_t size, const char *file, int line) {
|
|||||||
|
|
||||||
return mem;
|
return mem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* UTFstring <-> C string conversion
|
||||||
|
*/
|
||||||
|
|
||||||
|
UTFstring cstr_to_UTFstring(const char *c) {
|
||||||
|
#ifdef NO_WSTRING
|
||||||
|
return UTFstring(c);
|
||||||
|
#else
|
||||||
|
wchar_t *new_string;
|
||||||
|
const char *sptr;
|
||||||
|
UTFstring u;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
len = strlen(c);
|
||||||
|
new_string = (wchar_t *)safemalloc((len + 1) * sizeof(wchar_t));
|
||||||
|
memset(new_string, 0, (len + 1) * sizeof(wchar_t));
|
||||||
|
new_string[len] = L'\0';
|
||||||
|
sptr = c;
|
||||||
|
mbsrtowcs(new_string, &sptr, len, NULL);
|
||||||
|
u = UTFstring(new_string);
|
||||||
|
safefree(new_string);
|
||||||
|
|
||||||
|
return u;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
char *UTFstring_to_cstr(const UTFstring &u) {
|
||||||
|
#ifdef NO_WSTRING
|
||||||
|
return safestrdup(u.c_str());
|
||||||
|
#else
|
||||||
|
const wchar_t *sptr;
|
||||||
|
char *new_string;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
len = u.size();
|
||||||
|
new_string = (char *)safemalloc(len * 4 + 1);
|
||||||
|
memset(new_string, 0, len * 4 + 1);
|
||||||
|
sptr = u.c_str();
|
||||||
|
wcsrtombs(new_string, &sptr, len, NULL);
|
||||||
|
|
||||||
|
return new_string;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
7
common.h
7
common.h
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\file
|
\file
|
||||||
\version \$Id: common.h,v 1.27 2003/05/20 06:30:24 mosu Exp $
|
\version \$Id: common.h,v 1.28 2003/05/21 21:05:47 mosu Exp $
|
||||||
\brief definitions used in all programs, helper functions
|
\brief definitions used in all programs, helper functions
|
||||||
\author Moritz Bunkus <moritz@bunkus.org>
|
\author Moritz Bunkus <moritz@bunkus.org>
|
||||||
*/
|
*/
|
||||||
@ -36,6 +36,8 @@
|
|||||||
#define nice(a)
|
#define nice(a)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "EbmlUnicodeString.h"
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#define VERSIONINFO "mkvmerge v" VERSION
|
#define VERSIONINFO "mkvmerge v" VERSION
|
||||||
@ -105,6 +107,9 @@ void *_safememdup(const void *src, size_t size, const char *file, int line);
|
|||||||
#define saferealloc(mem, size) _saferealloc(mem, size, __FILE__, __LINE__)
|
#define saferealloc(mem, size) _saferealloc(mem, size, __FILE__, __LINE__)
|
||||||
void *_saferealloc(void *mem, size_t size, const char *file, int line);
|
void *_saferealloc(void *mem, size_t size, const char *file, int line);
|
||||||
|
|
||||||
|
UTFstring cstr_to_UTFstring(const char *c);
|
||||||
|
char *UTFstring_to_cstr(const UTFstring &u);
|
||||||
|
|
||||||
extern int verbose;
|
extern int verbose;
|
||||||
|
|
||||||
class bit_cursor_c {
|
class bit_cursor_c {
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\file
|
\file
|
||||||
\version \$Id: mkvmerge.cpp,v 1.70 2003/05/21 19:55:49 mosu Exp $
|
\version \$Id: mkvmerge.cpp,v 1.71 2003/05/21 21:05:47 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>
|
||||||
*/
|
*/
|
||||||
@ -583,10 +583,11 @@ static void render_headers(mm_io_callback *out) {
|
|||||||
kax_duration = &GetChild<KaxDuration>(*kax_infos);
|
kax_duration = &GetChild<KaxDuration>(*kax_infos);
|
||||||
*(static_cast<EbmlFloat *>(kax_duration)) = 0.0;
|
*(static_cast<EbmlFloat *>(kax_duration)) = 0.0;
|
||||||
|
|
||||||
|
string version = string("libmatroska ") + KaxCodeVersion;
|
||||||
*((EbmlUnicodeString *)&GetChild<KaxMuxingApp>(*kax_infos)) =
|
*((EbmlUnicodeString *)&GetChild<KaxMuxingApp>(*kax_infos)) =
|
||||||
L"libmatroska 0.4.3";
|
cstr_to_UTFstring(version.c_str());
|
||||||
*((EbmlUnicodeString *)&GetChild<KaxWritingApp>(*kax_infos)) =
|
*((EbmlUnicodeString *)&GetChild<KaxWritingApp>(*kax_infos)) =
|
||||||
L"mkvmerge 0.3.4";
|
cstr_to_UTFstring(VERSIONINFO);
|
||||||
|
|
||||||
#if LIBEBML_VERSION >= 000403
|
#if LIBEBML_VERSION >= 000403
|
||||||
kax_segment->WriteHead(*out, 5);
|
kax_segment->WriteHead(*out, 5);
|
||||||
|
Loading…
Reference in New Issue
Block a user