Ticket #12436: BMediaTrack-weirdness.cpp

File BMediaTrack-weirdness.cpp, 1.4 KB (added by ttcoder, 4 years ago)

Tweak, compile, run and observe buffer contents

Line 
1
2// gcc -g BMediaTrack-weirdness.cpp -lbe -lmedia -lroot_debug
3// LD_PRELOAD=libroot_debug.so ./BMediaTrack-weirdness
4
5#include <stdio.h>
6#include <string.h>
7#include <media/MediaFile.h>
8#include <media/MediaTrack.h>
9#include <storage/Entry.h>
10//#include <malloc_debug.h>
11
12
13
14int main()
15{
16 entry_ref ref;
17#error replace this with a path of your own before compiling
18 get_ref_for_path( "/boot/home/Desktop/Savatage-Hall_of_the_Mountain_King-Remastered-2011-GRAVEWISH/04-savatage-strange_wings.mp3", &ref );
19
20 BMediaFile file( &ref );
21 BMediaTrack * track = file.TrackAt( 0 );
22 media_format format;
23 memset( &format, 0, sizeof(format) );
24 track->DecodedFormat( &format );
25
26//adapt this to your file's heading silence's duration
27 int count = 22;
28
29 for( int j = 0; j < count*2; j++ )
30 {
31 if( j == count )
32 {
33 bigtime_t time = 0;
34 status_t s = track->SeekToTime( &time );
35 printf("\n\n=============================== calling SeekToTime(0) (status 0x%x) =============\n\n", s);
36 }
37
38 printf( "\nFrames for CurrentTime %Ld:\n", track->CurrentTime() );
39
40 char buffer[ format.u.raw_audio.buffer_size ];
41 memset( buffer, '\0', sizeof(buffer) );
42 int64 frames = 0;
43 track->ReadFrames( buffer, &frames );
44
45 for( int i = 0; i < 128; i++ )
46 {
47 if(i%8==0) printf(" ");
48 if(i%32==0) printf("\n");
49
50 printf("%2.2x", (unsigned char)buffer[i]);
51 }
52 printf("\n(...)\n");
53 }
54}
55