コード例 #1
0
ファイル: lab2.c プロジェクト: ramatronics/ece224
//Setups up required aspects for the program to run.
void Setup(){
	SD_card_init();
	init_mbr();
	init_bs();
	init_audio_codec();

	IOWR(BUTTON_PIO_BASE, 2, 0xf);
	IOWR(BUTTON_PIO_BASE, 3, 0x0);
	alt_irq_register(BUTTON_PIO_IRQ, (void*)0, button_ISR);
}
コード例 #2
0
ファイル: dec_audio.c プロジェクト: ihling/mpv
int audio_init_best_codec(struct dec_audio *d_audio, char *audio_decoders)
{
    assert(!d_audio->ad_driver);
    audio_reset_decoding(d_audio);

    struct mp_decoder_entry *decoder = NULL;
    struct mp_decoder_list *list =
        audio_select_decoders(d_audio->header->codec, audio_decoders);

    mp_print_decoders(MSGT_DECAUDIO, MSGL_V, "Codec list:", list);

    for (int n = 0; n < list->num_entries; n++) {
        struct mp_decoder_entry *sel = &list->entries[n];
        const struct ad_functions *driver = find_driver(sel->family);
        if (!driver)
            continue;
        mp_msg(MSGT_DECAUDIO, MSGL_V, "Opening audio decoder %s:%s\n",
                sel->family, sel->decoder);
        d_audio->ad_driver = driver;
        if (init_audio_codec(d_audio, sel->decoder)) {
            decoder = sel;
            break;
        }
        mp_msg(MSGT_DECAUDIO, MSGL_WARN, "Audio decoder init failed for "
                "%s:%s\n", sel->family, sel->decoder);
    }

    if (d_audio->ad_driver) {
        d_audio->decoder_desc =
            talloc_asprintf(d_audio, "%s [%s:%s]", decoder->desc, decoder->family,
                            decoder->decoder);
        mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Selected audio codec: %s\n",
               d_audio->decoder_desc);
        mp_msg(MSGT_DECAUDIO, MSGL_V,
               "AUDIO: %d Hz, %d ch, %s\n",
               d_audio->decoded.rate, d_audio->decoded.channels.num,
               af_fmt_to_str(d_audio->decoded.format));
        mp_msg(MSGT_IDENTIFY, MSGL_INFO,
               "ID_AUDIO_BITRATE=%d\nID_AUDIO_RATE=%d\n" "ID_AUDIO_NCH=%d\n",
               d_audio->i_bps * 8, d_audio->decoded.rate,
               d_audio->decoded.channels.num);
    } else {
        mp_msg(MSGT_DECAUDIO, MSGL_ERR,
               "Failed to initialize an audio decoder for codec '%s'.\n",
               d_audio->header->codec ? d_audio->header->codec : "<unknown>");
    }

    talloc_free(list);
    return !!d_audio->ad_driver;
}
コード例 #3
0
ファイル: dec_audio.c プロジェクト: ArcherSeven/mpv
int init_best_audio_codec(sh_audio_t *sh_audio, char *audio_decoders)
{
    assert(!sh_audio->initialized);

    struct mp_decoder_entry *decoder = NULL;
    struct mp_decoder_list *list =
        mp_select_audio_decoders(sh_audio->gsh->codec, audio_decoders);

    mp_print_decoders(MSGT_DECAUDIO, MSGL_V, "Codec list:", list);

    for (int n = 0; n < list->num_entries; n++) {
        struct mp_decoder_entry *sel = &list->entries[n];
        const struct ad_functions *driver = find_driver(sel->family);
        if (!driver)
            continue;
        mp_tmsg(MSGT_DECAUDIO, MSGL_V, "Opening audio decoder %s:%s\n",
                sel->family, sel->decoder);
        sh_audio->ad_driver = driver;
        if (init_audio_codec(sh_audio, sel->decoder)) {
            decoder = sel;
            break;
        }
        sh_audio->ad_driver = NULL;
        mp_tmsg(MSGT_DECAUDIO, MSGL_WARN, "Audio decoder init failed for "
                "%s:%s\n", sel->family, sel->decoder);
    }

    if (sh_audio->initialized) {
        sh_audio->gsh->decoder_desc =
            talloc_asprintf(NULL, "%s [%s:%s]", decoder->desc, decoder->family,
                            decoder->decoder);
        mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Selected audio codec: %s\n",
               sh_audio->gsh->decoder_desc);
        mp_msg(MSGT_DECAUDIO, MSGL_V,
               "AUDIO: %d Hz, %d ch, %s\n",
               sh_audio->samplerate, sh_audio->channels.num,
               af_fmt2str_short(sh_audio->sample_format));
        mp_msg(MSGT_IDENTIFY, MSGL_INFO,
               "ID_AUDIO_BITRATE=%d\nID_AUDIO_RATE=%d\n" "ID_AUDIO_NCH=%d\n",
               sh_audio->i_bps * 8, sh_audio->samplerate, sh_audio->channels.num);
    } else {
        mp_msg(MSGT_DECAUDIO, MSGL_ERR,
               "Failed to initialize an audio decoder for codec '%s'.\n",
               sh_audio->gsh->codec ? sh_audio->gsh->codec : "<unknown>");
    }

    talloc_free(list);
    return sh_audio->initialized;
}
コード例 #4
0
ファイル: player.c プロジェクト: evgorchakov/MTE-325
int init_system(void){
	if (SD_card_init() != 0) {
		perror("SD card initialization failed.");
		return(-1);
	}
	
	if (init_mbr() != 0) {
		perror("MBR initialization failed.");
		return(-1);
	}
	
	if (init_bs() != 0) {
		perror("Boot sector initialization failed.");
		return(-1);
	}
	
	init_audio_codec();
	LCD_Init();
	
	return(0);
}
コード例 #5
0
ファイル: dec_audio.c プロジェクト: cfxks1989/mpv
int audio_init_best_codec(struct dec_audio *d_audio, char *audio_decoders)
{
    assert(!d_audio->ad_driver);
    audio_reset_decoding(d_audio);

    struct mp_decoder_entry *decoder = NULL;
    struct mp_decoder_list *list =
        audio_select_decoders(d_audio->header->codec, audio_decoders);

    mp_print_decoders(d_audio->log, MSGL_V, "Codec list:", list);

    for (int n = 0; n < list->num_entries; n++) {
        struct mp_decoder_entry *sel = &list->entries[n];
        const struct ad_functions *driver = find_driver(sel->family);
        if (!driver)
            continue;
        MP_VERBOSE(d_audio, "Opening audio decoder %s:%s\n",
                   sel->family, sel->decoder);
        d_audio->ad_driver = driver;
        if (init_audio_codec(d_audio, sel->decoder)) {
            decoder = sel;
            break;
        }
        MP_WARN(d_audio, "Audio decoder init failed for "
                "%s:%s\n", sel->family, sel->decoder);
    }

    if (d_audio->ad_driver) {
        d_audio->decoder_desc =
            talloc_asprintf(d_audio, "%s [%s:%s]", decoder->desc, decoder->family,
                            decoder->decoder);
        MP_VERBOSE(d_audio, "Selected audio codec: %s\n", d_audio->decoder_desc);
    } else {
        MP_ERR(d_audio, "Failed to initialize an audio decoder for codec '%s'.\n",
               d_audio->header->codec ? d_audio->header->codec : "<unknown>");
    }

    talloc_free(list);
    return !!d_audio->ad_driver;
}
コード例 #6
0
	void  ffmpeg_native_reader::open(char* c, int w, int h)
	{
		codec =c;
		width=w;
		height=h;

		audio_counter=new session_counter;

		audio_counter->curr_timestamp=0;
		audio_counter->last_timestamp=0;
		audio_counter->recieved_frame_count=0;
		audio_counter->time_interval=0;

		video_counter=new session_counter;

		video_counter->curr_timestamp=0;
		video_counter->last_timestamp=0;
		video_counter->recieved_frame_count=0;
		video_counter->time_interval=0;

		init_video_codec();
		init_audio_codec();
	}
コード例 #7
0
OMX_S32 AudioDecoder::FindAudioCodec(sh_audio_t *sh_audio){
    unsigned int orig_fourcc = sh_audio->wf ? sh_audio->wf->wFormatTag : 0;
    int force = 0;
    unsigned int i;
    sh_audio->codec = NULL;
    sh_audio->ad_driver = 0;

    // restore original fourcc:
    if (sh_audio->wf)
	sh_audio->wf->wFormatTag = i = orig_fourcc;

    while(1)
      {
	sh_audio->codec = find_audio_codec(sh_audio->format,
					   sh_audio->wf ? (&i) : NULL,
					   sh_audio->codec, force);
	if(!sh_audio->codec){
	  ALOGE("not find codec!");
	  return 0;
	}
	
	sh_audio->ad_driver = (ad_functions *)decFactor.CreateAudioDecoder(sh_audio->codec->drv);

	if(!sh_audio->ad_driver)
	  continue;
	ALOGE("sh_audio->codec->drv=%s dll=%s",sh_audio->codec->drv,sh_audio->codec->dll);	
	if (init_audio_codec(sh_audio)) {
	  break;
	}else
	  decFactor.~DecFactor();	
      }

    if (sh_audio->wf)
	sh_audio->wf->wFormatTag = i;

    return 1;
}
コード例 #8
0
ファイル: dec_audio.c プロジェクト: HermiG/mplayer2
static int init_audio(sh_audio_t *sh_audio, char *codecname, char *afm,
		      int status, stringset_t *selected)
{
    unsigned int orig_fourcc = sh_audio->wf ? sh_audio->wf->wFormatTag : 0;
    int force = 0;
    if (codecname && codecname[0] == '+') {
	codecname = &codecname[1];
	force = 1;
    }
    sh_audio->codec = NULL;
    while (1) {
	const ad_functions_t *mpadec;
	int i;
	sh_audio->ad_driver = 0;
	// restore original fourcc:
	if (sh_audio->wf)
	    sh_audio->wf->wFormatTag = i = orig_fourcc;
	if (!(sh_audio->codec = find_audio_codec(sh_audio->format,
						 sh_audio->wf ? (&i) : NULL,
						 sh_audio->codec, force)))
	    break;
	if (sh_audio->wf)
	    sh_audio->wf->wFormatTag = i;
	// ok we found one codec
	if (stringset_test(selected, sh_audio->codec->name))
	    continue;	// already tried & failed
	if (codecname && strcmp(sh_audio->codec->name, codecname))
	    continue;	// -ac
	if (afm && strcmp(sh_audio->codec->drv, afm))
	    continue;	// afm doesn't match
	if (!force && sh_audio->codec->status < status)
	    continue;	// too unstable
	stringset_add(selected, sh_audio->codec->name);	// tagging it
	// ok, it matches all rules, let's find the driver!
	for (i = 0; mpcodecs_ad_drivers[i] != NULL; i++)
	    if (!strcmp(mpcodecs_ad_drivers[i]->info->short_name,
		 sh_audio->codec->drv))
		break;
	mpadec = mpcodecs_ad_drivers[i];
#ifdef CONFIG_DYNAMIC_PLUGINS
	if (!mpadec) {
	    /* try to open shared decoder plugin */
	    int buf_len;
	    char *buf;
	    ad_functions_t *funcs_sym;
	    ad_info_t *info_sym;

	    buf_len =
		strlen(MPLAYER_LIBDIR) + strlen(sh_audio->codec->drv) + 16;
	    buf = malloc(buf_len);
	    if (!buf)
		break;
	    snprintf(buf, buf_len, "%s/mplayer/ad_%s.so", MPLAYER_LIBDIR,
		     sh_audio->codec->drv);
	    mp_msg(MSGT_DECAUDIO, MSGL_DBG2,
		   "Trying to open external plugin: %s\n", buf);
	    sh_audio->dec_handle = dlopen(buf, RTLD_LAZY);
	    if (!sh_audio->dec_handle)
		break;
	    snprintf(buf, buf_len, "mpcodecs_ad_%s", sh_audio->codec->drv);
	    funcs_sym = dlsym(sh_audio->dec_handle, buf);
	    if (!funcs_sym || !funcs_sym->info || !funcs_sym->preinit
		|| !funcs_sym->init || !funcs_sym->uninit
		|| !funcs_sym->control || !funcs_sym->decode_audio)
		break;
	    info_sym = funcs_sym->info;
	    if (strcmp(info_sym->short_name, sh_audio->codec->drv))
		break;
	    free(buf);
	    mpadec = funcs_sym;
	    mp_msg(MSGT_DECAUDIO, MSGL_V,
		   "Using external decoder plugin (%s/mplayer/ad_%s.so)!\n",
		   MPLAYER_LIBDIR, sh_audio->codec->drv);
	}
#endif
	if (!mpadec) {		// driver not available (==compiled in)
	    mp_tmsg(MSGT_DECAUDIO, MSGL_ERR,
		   "Requested audio codec family [%s] (afm=%s) not available.\nEnable it at compilation.\n",
		   sh_audio->codec->name, sh_audio->codec->drv);
	    continue;
	}
	// it's available, let's try to init!
	// init()
	mp_tmsg(MSGT_DECAUDIO, MSGL_INFO, "Opening audio decoder: [%s] %s\n",
	       mpadec->info->short_name, mpadec->info->name);
	sh_audio->ad_driver = mpadec;
	if (!init_audio_codec(sh_audio)) {
	    mp_tmsg(MSGT_DECAUDIO, MSGL_WARN,
                    "Could not open audio decoder %s.\n",
                    mpadec->info->short_name);
	    continue;		// try next...
	}
	// Yeah! We got it!
	return 1;
    }
    return 0;
}
コード例 #9
0
int main()
{
  //Initialize Functions
  SD_card_init();
  init_mbr();
  init_bs();
  init_audio_codec();

  //Setup Push Buttons
  init_button_pio();


  // Initialize Variables
  bytePerCluster = BPB_BytsPerSec * BPB_SecPerClus;

  //play_music(0 , 1);
  //play_music(0 , 2);
  //play_music(0 , 3);
  //play_music(5 , 4);

  stop_flag = 1;
  file_number = 0;
  init_music();
  delay_cnt = 0;
  delay_flag = 0;

  while(1){
	  if(stop_flag == 0){

		  if(edge_capture == 0x01){
			  //stop music
			  stop_flag = 1;
		  }

		  else if(edge_capture == 0x02){
			  // play music
			  delay_cnt = 0;
			  delay_flag = 0;
			  play_type = IORD(SWITCH_PIO_BASE, 0) & 0x07;
			  LCD_Display(returnData.Name, play_type);
			  play_music(play_type);
		  }

		  else if(edge_capture == 0x04){
			  printf("File Number is %d\n",file_number);
			  init_music();
			  usleep(250000);
		  }

		  else if(edge_capture == 0x08){
			  if(file_number < 2 )
				  file_number = 0;
			  else
				  file_number -= 2;

			  init_music();
		  }
	  }
  }

  return 0;
}