MCPcopy Create free account
hub / github.com/HandBrake/HandBrake / find_ffmpeg_fallback_audio

Function find_ffmpeg_fallback_audio

libhb/stream.c:5432–5478  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5430}
5431
5432static void find_ffmpeg_fallback_audio(hb_title_t *title)
5433{
5434 int count = hb_list_count(title->list_audio);
5435 int ii, jj, kk;
5436
5437 for (ii = 0; ii < count; ii++)
5438 {
5439 hb_audio_t *audio_ii = hb_list_item(title->list_audio, ii);
5440
5441 if (audio_ii->config.list_linked_index != NULL)
5442 {
5443 hb_list_t * list_linked_index = audio_ii->config.list_linked_index;
5444 hb_list_t * new_list_linked_index = hb_list_init();
5445 int linked_count = hb_list_count(list_linked_index);
5446
5447 for (jj = 0; jj < linked_count; jj++)
5448 {
5449 int linked_index = *(int*)hb_list_item(list_linked_index, jj);
5450 for (kk = 0; kk < count; kk++)
5451 {
5452 hb_audio_t *audio_kk = hb_list_item(title->list_audio, kk);
5453 if (linked_index == audio_kk->id && kk != ii)
5454 {
5455 hb_list_add_dup(new_list_linked_index, &kk, sizeof(kk));
5456 add_ffmpeg_linked_audio(audio_kk, ii, list_linked_index);
5457 break;
5458 }
5459 }
5460 }
5461 int * item;
5462 while ((item = hb_list_item(list_linked_index, 0)))
5463 {
5464 hb_list_rem(list_linked_index, item);
5465 free(item);
5466 }
5467 hb_list_close(&audio_ii->config.list_linked_index);
5468 if (hb_list_count(new_list_linked_index) > 0)
5469 {
5470 audio_ii->config.list_linked_index = new_list_linked_index;
5471 }
5472 else
5473 {
5474 hb_list_close(&new_list_linked_index);
5475 }
5476 }
5477 }
5478}
5479
5480static void add_ffmpeg_audio(hb_title_t *title, hb_stream_t *stream, int id)
5481{

Callers 1

ffmpeg_title_scanFunction · 0.85

Calls 7

hb_list_countFunction · 0.85
hb_list_itemFunction · 0.85
hb_list_initFunction · 0.85
hb_list_add_dupFunction · 0.85
add_ffmpeg_linked_audioFunction · 0.85
hb_list_remFunction · 0.85
hb_list_closeFunction · 0.85

Tested by

no test coverage detected