Skip to content

Commit 2b619dc

Browse files
committed
capi: Go back to lowercase enum type names.
Having cheddar prefix the type name before enum values as a C-style namespace lets us use shorter value names on the rust side, but creates a style issue. We want to keep descriptive, lowercase typedef names in the output, but have capitalized values. We could extend cheddar to mangle the case in different ways, but it really doesn't matter than much. Instead just go back to lower-case enum names and live with the variable casing of the values in the generated C header. Also use the more meaninful `mp4parse_status` as the result type, which generalizes over MP4PARSE_OK and MP4PARSE_ERROR_*.
1 parent d2120f9 commit 2b619dc

File tree

6 files changed

+214
-214
lines changed

6 files changed

+214
-214
lines changed

mp4parse_capi/examples/afl-capi.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,27 @@ fn doit() {
2626
unsafe {
2727
let context = mp4parse_new(&io);
2828
let rv = mp4parse_read(context);
29-
if rv == MP4PARSE::OK {
29+
if rv == mp4parse_status::OK {
3030
let count = {
3131
let mut count = 0;
3232
let rv = mp4parse_get_track_count(context, &mut count);
33-
assert_eq!(rv, MP4PARSE::OK);
33+
assert_eq!(rv, mp4parse_status::OK);
3434
count
3535
};
3636
for track in 0..count {
3737
let mut info = mp4parse_track_info {
38-
track_type: MP4PARSE_TRACK_TYPE::VIDEO,
39-
codec: MP4PARSE_CODEC::UNKNOWN,
38+
track_type: mp4parse_track_type::VIDEO,
39+
codec: mp4parse_codec::UNKNOWN,
4040
track_id: 0,
4141
duration: 0,
4242
media_time: 0,
4343
};
4444
let rv = mp4parse_get_track_info(context, track, &mut info);
45-
if rv == MP4PARSE::OK {
45+
if rv == mp4parse_status::OK {
4646
println!("track {}: id={} duration={} media_time={}",
4747
track, info.track_id, info.duration, info.media_time);
4848
match info.track_type {
49-
MP4PARSE_TRACK_TYPE::VIDEO => {
49+
mp4parse_track_type::VIDEO => {
5050
let mut video = mp4parse_track_video_info {
5151
display_width: 0,
5252
display_height: 0,
@@ -57,16 +57,16 @@ fn doit() {
5757
protected_data: Default::default(),
5858
};
5959
let rv = mp4parse_get_track_video_info(context, track, &mut video);
60-
if rv == MP4PARSE::OK {
60+
if rv == mp4parse_status::OK {
6161
println!(" video: display={}x{} image={}x{}",
6262
video.display_width, video.display_height,
6363
video.image_width, video.image_height);
6464
}
6565
}
66-
MP4PARSE_TRACK_TYPE::AUDIO => {
66+
mp4parse_track_type::AUDIO => {
6767
let mut audio = Default::default();
6868
let rv = mp4parse_get_track_audio_info(context, track, &mut audio);
69-
if rv == MP4PARSE::OK {
69+
if rv == mp4parse_status::OK {
7070
println!(" audio: channels={} bit_depth={} sample_rate={}",
7171
audio.channels, audio.bit_depth, audio.sample_rate);
7272
}

mp4parse_capi/examples/test.cc

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,19 @@ void test_arg_validation()
6767
assert(parser == nullptr);
6868

6969
int32_t rv = mp4parse_read(nullptr);
70-
assert(rv == MP4PARSE_ERROR_BADARG);
70+
assert(rv == mp4parse_status_BAD_ARG);
7171

7272
mp4parse_track_info info;
7373
rv = mp4parse_get_track_info(nullptr, 0, &info);
74-
assert(rv == MP4PARSE_ERROR_BADARG);
74+
assert(rv == mp4parse_status_BAD_ARG);
7575

7676
mp4parse_track_video_info video;
7777
rv = mp4parse_get_track_video_info(nullptr, 0, &video);
78-
assert(rv == MP4PARSE_ERROR_BADARG);
78+
assert(rv == mp4parse_status_BAD_ARG);
7979

8080
mp4parse_track_audio_info audio;
8181
rv = mp4parse_get_track_audio_info(nullptr, 0, &audio);
82-
assert(rv == MP4PARSE_ERROR_BADARG);
82+
assert(rv == mp4parse_status_BAD_ARG);
8383

8484
assert(dummy_value == 42);
8585
}
@@ -92,16 +92,16 @@ void test_arg_validation_with_parser()
9292
assert(parser != nullptr);
9393

9494
int32_t rv = mp4parse_read(parser);
95-
assert(rv == MP4PARSE_ERROR_IO);
95+
assert(rv == mp4parse_status_IO);
9696

9797
rv = mp4parse_get_track_info(parser, 0, nullptr);
98-
assert(rv == MP4PARSE_ERROR_BADARG);
98+
assert(rv == mp4parse_status_BAD_ARG);
9999

100100
rv = mp4parse_get_track_video_info(parser, 0, nullptr);
101-
assert(rv == MP4PARSE_ERROR_BADARG);
101+
assert(rv == mp4parse_status_BAD_ARG);
102102

103103
rv = mp4parse_get_track_audio_info(parser, 0, nullptr);
104-
assert(rv == MP4PARSE_ERROR_BADARG);
104+
assert(rv == mp4parse_status_BAD_ARG);
105105

106106
mp4parse_free(parser);
107107
assert(dummy_value == 42);
@@ -115,75 +115,75 @@ void test_arg_validation_with_data(const std::string& filename)
115115
mp4parse_parser *parser = mp4parse_new(&io);
116116
assert(parser != nullptr);
117117

118-
MP4PARSE rv = mp4parse_read(parser);
119-
assert(rv == MP4PARSE_OK);
118+
mp4parse_status rv = mp4parse_read(parser);
119+
assert(rv == mp4parse_status_OK);
120120

121121
uint32_t tracks;
122122
rv = mp4parse_get_track_count(parser, &tracks);
123-
assert(rv == MP4PARSE_OK);
123+
assert(rv == mp4parse_status_OK);
124124
assert(tracks == 2);
125125

126126
mp4parse_track_info info;
127127
rv = mp4parse_get_track_info(parser, 0, &info);
128-
assert(rv == MP4PARSE_OK);
129-
assert(info.track_type == MP4PARSE_TRACK_TYPE_VIDEO);
128+
assert(rv == mp4parse_status_OK);
129+
assert(info.track_type == mp4parse_track_type_VIDEO);
130130
assert(info.track_id == 1);
131131
assert(info.duration == 40000);
132132
assert(info.media_time == 0);
133133

134134
rv = mp4parse_get_track_info(parser, 1, &info);
135-
assert(rv == MP4PARSE_OK);
136-
assert(info.track_type == MP4PARSE_TRACK_TYPE_AUDIO);
135+
assert(rv == mp4parse_status_OK);
136+
assert(info.track_type == mp4parse_track_type_AUDIO);
137137
assert(info.track_id == 2);
138138
assert(info.duration == 61333);
139139
assert(info.media_time == 21333);
140140

141141
mp4parse_track_video_info video;
142142
rv = mp4parse_get_track_video_info(parser, 0, &video);
143-
assert(rv == MP4PARSE_OK);
143+
assert(rv == mp4parse_status_OK);
144144
assert(video.display_width == 320);
145145
assert(video.display_height == 240);
146146
assert(video.image_width == 320);
147147
assert(video.image_height == 240);
148148

149149
mp4parse_track_audio_info audio;
150150
rv = mp4parse_get_track_audio_info(parser, 1, &audio);
151-
assert(rv == MP4PARSE_OK);
151+
assert(rv == mp4parse_status_OK);
152152
assert(audio.channels == 1);
153153
assert(audio.bit_depth == 16);
154154
assert(audio.sample_rate == 48000);
155155

156156
// Test with an invalid track number.
157157

158158
rv = mp4parse_get_track_info(parser, 3, &info);
159-
assert(rv == MP4PARSE_ERROR_BADARG);
159+
assert(rv == mp4parse_status_BAD_ARG);
160160
rv = mp4parse_get_track_video_info(parser, 3, &video);
161-
assert(rv == MP4PARSE_ERROR_BADARG);
161+
assert(rv == mp4parse_status_BAD_ARG);
162162
rv = mp4parse_get_track_audio_info(parser, 3, &audio);
163-
assert(rv == MP4PARSE_ERROR_BADARG);
163+
assert(rv == mp4parse_status_BAD_ARG);
164164

165165
mp4parse_free(parser);
166166
fclose(f);
167167
}
168168

169-
const char * tracktype2str(MP4PARSE_TRACK_TYPE type)
169+
const char * tracktype2str(mp4parse_track_type type)
170170
{
171171
switch (type) {
172-
case MP4PARSE_TRACK_TYPE_VIDEO: return "video";
173-
case MP4PARSE_TRACK_TYPE_AUDIO: return "audio";
172+
case mp4parse_track_type_VIDEO: return "video";
173+
case mp4parse_track_type_AUDIO: return "audio";
174174
}
175175
return "unknown";
176176
}
177177

178-
const char * errorstring(MP4PARSE error)
178+
const char * errorstring(mp4parse_status error)
179179
{
180180
switch (error) {
181-
case MP4PARSE_OK: return "Ok";
182-
case MP4PARSE_ERROR_BADARG: return "Invalid argument";
183-
case MP4PARSE_ERROR_INVALID: return "Invalid data";
184-
case MP4PARSE_ERROR_UNSUPPORTED: return "Feature unsupported";
185-
case MP4PARSE_ERROR_EOF: return "Unexpected end-of-file";
186-
case MP4PARSE_ERROR_IO: return "I/O error";
181+
case mp4parse_status_OK: return "Ok";
182+
case mp4parse_status_BAD_ARG: return "Invalid argument";
183+
case mp4parse_status_INVALID: return "Invalid data";
184+
case mp4parse_status_UNSUPPORTED: return "Feature unsupported";
185+
case mp4parse_status_EOF: return "Unexpected end-of-file";
186+
case mp4parse_status_IO: return "I/O error";
187187
}
188188
return "Unknown error";
189189
}
@@ -198,30 +198,30 @@ int32_t read_file(const char* filename)
198198
assert(parser != nullptr);
199199

200200
fprintf(stderr, "Parsing file '%s'.\n", filename);
201-
MP4PARSE rv = mp4parse_read(parser);
202-
if (rv != MP4PARSE_OK) {
201+
mp4parse_status rv = mp4parse_read(parser);
202+
if (rv != mp4parse_status_OK) {
203203
mp4parse_free(parser);
204204
fclose(f);
205205
fprintf(stderr, "Parsing failed: %s\n", errorstring(rv));
206206
return rv;
207207
}
208208
uint32_t tracks;
209209
rv = mp4parse_get_track_count(parser, &tracks);
210-
assert(rv == MP4PARSE_OK);
210+
assert(rv == mp4parse_status_OK);
211211
fprintf(stderr, "%u tracks returned to C code.\n", tracks);
212212

213213
for (uint32_t i = 0; i < tracks; ++i) {
214214
mp4parse_track_info track_info;
215215
int32_t rv2 = mp4parse_get_track_info(parser, i, &track_info);
216-
assert(rv2 == MP4PARSE_OK);
216+
assert(rv2 == mp4parse_status_OK);
217217
fprintf(stderr, "Track %d: type=%s duration=%" PRId64 " media_time=%" PRId64 " track_id=%d\n",
218218
i, tracktype2str(track_info.track_type), track_info.duration, track_info.media_time, track_info.track_id);
219219
}
220220

221221
mp4parse_free(parser);
222222
fclose(f);
223223

224-
return MP4PARSE_OK;
224+
return mp4parse_status_OK;
225225
}
226226

227227
int main(int argc, char* argv[])

0 commit comments

Comments
 (0)