void set_rotation(AVFormatContext *ic, AVStream *audio_st, AVStream *video_st) {
	if (!extract_metadata_internal(ic, audio_st, video_st, ROTATE) && video_st && video_st->metadata) {
		AVDictionaryEntry *entry = av_dict_get(video_st->metadata, ROTATE, NULL, AV_DICT_MATCH_CASE);
        
        if (entry && entry->value) {
            av_dict_set(&ic->metadata, ROTATE, entry->value, 0);
        } else {
            av_dict_set(&ic->metadata, ROTATE, "0", 0);
        }
    }
}
const char* extract_metadata(State **ps, const char* key) {
    printf("extract_metadata\n");
    char* value = NULL;
    
    State *state = *ps;
    
    if (!state || !state->pFormatCtx) {
        return value;
    }
    
    return extract_metadata_internal(state->pFormatCtx, state->audio_st, state->video_st, key);
}