Mercurial > mplayer.hg
comparison mencoder.c @ 4369:b768f17c6d36
audio copy fix
author | arpi |
---|---|
date | Sun, 27 Jan 2002 01:23:23 +0000 |
parents | fae96d93c662 |
children | 18f73fb0380e |
comparison
equal
deleted
inserted
replaced
4368:fae96d93c662 | 4369:b768f17c6d36 |
---|---|
552 exit(1); | 552 exit(1); |
553 } | 553 } |
554 | 554 |
555 } // if(out_video_codec) | 555 } // if(out_video_codec) |
556 | 556 |
557 if(sh_audio && out_audio_codec){ | 557 if(sh_audio && (out_audio_codec || !sh_audio->wf)){ |
558 // Go through the codec.conf and find the best codec... | 558 // Go through the codec.conf and find the best codec... |
559 sh_audio->codec=NULL; | 559 sh_audio->codec=NULL; |
560 if(audio_family!=-1) mp_msg(MSGT_MENCODER,MSGL_INFO,MSGTR_TryForceAudioFmt,audio_family); | 560 if(audio_family!=-1) mp_msg(MSGT_MENCODER,MSGL_INFO,MSGTR_TryForceAudioFmt,audio_family); |
561 while(1){ | 561 while(1){ |
562 sh_audio->codec=find_codec(sh_audio->format,NULL,sh_audio->codec,1); | 562 sh_audio->codec=find_codec(sh_audio->format,NULL,sh_audio->codec,1); |
577 mp_msg(MSGT_MENCODER,MSGL_INFO,"%s audio codec: [%s] drv:%d (%s)\n",audio_codec?"Forcing":"Detected",sh_audio->codec->name,sh_audio->codec->driver,sh_audio->codec->info); | 577 mp_msg(MSGT_MENCODER,MSGL_INFO,"%s audio codec: [%s] drv:%d (%s)\n",audio_codec?"Forcing":"Detected",sh_audio->codec->name,sh_audio->codec->driver,sh_audio->codec->info); |
578 break; | 578 break; |
579 } | 579 } |
580 } | 580 } |
581 | 581 |
582 if(sh_audio && out_audio_codec){ | 582 if(sh_audio && (out_audio_codec || !sh_audio->wf)){ |
583 mp_msg(MSGT_MENCODER,MSGL_V,"Initializing audio codec...\n"); | 583 mp_msg(MSGT_MENCODER,MSGL_V,"Initializing audio codec...\n"); |
584 if(!init_audio(sh_audio)){ | 584 if(!init_audio(sh_audio)){ |
585 mp_msg(MSGT_MENCODER,MSGL_ERR,MSGTR_CouldntInitAudioCodec); | 585 mp_msg(MSGT_MENCODER,MSGL_ERR,MSGTR_CouldntInitAudioCodec); |
586 sh_audio=d_audio->sh=NULL; | 586 sh_audio=d_audio->sh=NULL; |
587 } else { | 587 } else { |
778 | 778 |
779 mux_a->codec=out_audio_codec; | 779 mux_a->codec=out_audio_codec; |
780 | 780 |
781 switch(mux_a->codec){ | 781 switch(mux_a->codec){ |
782 case ACODEC_COPY: | 782 case ACODEC_COPY: |
783 mux_a->h.dwSampleSize=sh_audio->audio.dwSampleSize; | 783 if(sh_audio->audio.dwScale){ |
784 mux_a->h.dwScale=sh_audio->audio.dwScale; | 784 mux_a->h.dwSampleSize=sh_audio->audio.dwSampleSize; |
785 mux_a->h.dwRate=sh_audio->audio.dwRate; | 785 mux_a->h.dwScale=sh_audio->audio.dwScale; |
786 if (sh_audio->wf) | 786 mux_a->h.dwRate=sh_audio->audio.dwRate; |
787 } else { | |
788 mux_a->h.dwSampleSize=1; | |
789 mux_a->h.dwScale=1; | |
790 mux_a->h.dwRate=sh_audio->i_bps; | |
791 } | |
792 if (sh_audio->wf){ | |
787 mux_a->wf=sh_audio->wf; | 793 mux_a->wf=sh_audio->wf; |
788 else | 794 } else { |
789 { | |
790 mux_a->wf = malloc(sizeof(WAVEFORMATEX)); | 795 mux_a->wf = malloc(sizeof(WAVEFORMATEX)); |
791 mux_a->wf->nBlockAlign = mux_a->h.dwSampleSize; | 796 mux_a->wf->nBlockAlign = mux_a->h.dwSampleSize; |
792 mux_a->wf->wFormatTag = sh_audio->sample_format; | 797 mux_a->wf->wFormatTag = sh_audio->format; |
793 mux_a->wf->nChannels = sh_audio->channels; | 798 mux_a->wf->nChannels = sh_audio->channels; |
794 mux_a->wf->nSamplesPerSec = sh_audio->samplerate; | 799 mux_a->wf->nSamplesPerSec = sh_audio->samplerate; |
795 mux_a->wf->nAvgBytesPerSec=mux_a->h.dwSampleSize*mux_a->wf->nSamplesPerSec; | 800 mux_a->wf->nAvgBytesPerSec=sh_audio->i_bps; //mux_a->h.dwSampleSize*mux_a->wf->nSamplesPerSec; |
796 mux_a->wf->wBitsPerSample = 16; // FIXME | 801 mux_a->wf->wBitsPerSample = 16; // FIXME |
797 mux_a->wf->cbSize=0; // FIXME for l3codeca.acm | 802 mux_a->wf->cbSize=0; // FIXME for l3codeca.acm |
798 } | 803 } |
799 printf("audiocodec: framecopy (format=%x chans=%d rate=%d bits=%d)\n", | 804 printf("audiocodec: framecopy (format=%x chans=%d rate=%d bits=%d)\n", |
800 mux_a->wf->wFormatTag, mux_a->wf->nChannels, mux_a->wf->nSamplesPerSec, | 805 mux_a->wf->wFormatTag, mux_a->wf->nChannels, mux_a->wf->nSamplesPerSec, |