コード例 #1
0
ファイル: plugin.c プロジェクト: Cuchulain/cinelerra
int quicktime_find_acodec(quicktime_audio_map_t *atrack)
{
	int i;
	char *compressor = atrack->track->mdia.minf.stbl.stsd.table[0].format;
	int compression_id = atrack->track->mdia.minf.stbl.stsd.table[0].compression_id;
	quicktime_codec_t *codec_base = (quicktime_codec_t*)atrack->codec;
	int32_t compressor_int = *(int32_t*)compressor;
	if(!total_acodecs) register_acodecs();

	for(i = 0; i < total_acodecs; i++)
	{
		quicktime_codectable_t *table = &acodecs[i];
		table->init_acodec(atrack);

// For writing and reading Quicktime
		if(quicktime_match_32(compressor, codec_base->fourcc))
			return 0;
		else
// For reading AVI, sometimes the fourcc is 0 and the compression_id is used instead.
// Sometimes the compression_id is the fourcc.
		if((compressor[0] == 0 || compressor_int == codec_base->wav_id) &&
			codec_base->wav_id == compression_id)
		{
			quicktime_copy_char32(compressor, codec_base->fourcc);
			return 0;
		}
		else
		{
			codec_base->delete_acodec(atrack);
			codec_base->priv = 0;
		}
	}

	return -1;
}
コード例 #2
0
ファイル: stsd.c プロジェクト: yangsheng1107/mp4
int quicktime_stsd_init_hint(quicktime_t *file, 
                             quicktime_stsd_t *stsd, 
                             int maxPktSize,
                             int timeScale)
{
    quicktime_stsd_table_t *table;
    quicktime_stsd_init_table(stsd);
    table = &(stsd->table[0]);

    quicktime_copy_char32(table->format, "rtp ");
    table->version = 1;
    table->revision = 1;
    table->maxPktSize = maxPktSize;
    table->tims.timeScale = timeScale;

    return 0;
}
コード例 #3
0
ファイル: stsd.c プロジェクト: yangsheng1107/mp4
int quicktime_stsd_init_audio(quicktime_t *file, 
                              quicktime_stsd_t *stsd, 
                              int channels,
                              int sample_rate, 
                              int bits, 
                              char *compressor)
{
    quicktime_stsd_table_t *table;
    quicktime_stsd_init_table(stsd);
    table = &(stsd->table[0]);

    quicktime_copy_char32(table->format, compressor);
    table->channels = channels;
    table->sample_size = bits;
    table->sample_rate = sample_rate;

    return 0;
}
コード例 #4
0
ファイル: stsd.c プロジェクト: yangsheng1107/mp4
int quicktime_stsd_init_video(quicktime_t *file, 
                              quicktime_stsd_t *stsd, 
                              int frame_w,
                              int frame_h, 
                              float frame_rate,
                              char *compression)
{
    quicktime_stsd_table_t *table;
    quicktime_stsd_init_table(stsd);
    table = &(stsd->table[0]);

    quicktime_copy_char32(table->format, compression);
    table->width = frame_w;
    table->height = frame_h;
    table->frames_per_sample = 1;
    table->depth = 24;
    table->ctab_id = 65535;

    return 0;
}