Merge pull request #326 from ferdnyc/hwaccel-testing

Some minor fixes made while testing hwaccel
This commit is contained in:
Jonathan Thomas
2019-10-22 18:31:03 -05:00
committed by GitHub
4 changed files with 24 additions and 13 deletions

View File

@@ -322,6 +322,14 @@ target_link_libraries(openshot PUBLIC OpenMP::OpenMP_CXX)
# Create test executable
add_executable(openshot-example examples/Example.cpp)
# Define path to test input files
SET(TEST_MEDIA_PATH "${PROJECT_SOURCE_DIR}/src/examples/")
IF (WIN32)
STRING(REPLACE "/" "\\\\" TEST_MEDIA_PATH TEST_MEDIA_PATH)
ENDIF(WIN32)
target_compile_definitions(openshot-example PRIVATE
-DTEST_MEDIA_PATH="${TEST_MEDIA_PATH}" )
# Link test executable to the new library
target_link_libraries(openshot-example openshot)

View File

@@ -309,7 +309,7 @@ void FFmpegReader::Open() {
char *adapter_ptr = NULL;
int adapter_num;
adapter_num = openshot::Settings::Instance()->HW_DE_DEVICE_SET;
fprintf(stderr, "\n\nDecodiing Device Nr: %d\n", adapter_num);
fprintf(stderr, "Hardware decoding device number: %d\n", adapter_num);
// Set hardware pix format (callback)
pCodecCtx->get_format = get_hw_dec_format;

View File

@@ -172,7 +172,7 @@ void FFmpegWriter::SetVideoOptions(bool has_video, string codec, Fraction fps, i
AVCodec *new_codec;
// Check if the codec selected is a hardware accelerated codec
#if IS_FFMPEG_3_2
#if defined(__linux__)
#if defined(__linux__)
if ( (strcmp(codec.c_str(),"h264_vaapi") == 0)) {
new_codec = avcodec_find_encoder_by_name(codec.c_str());
hw_en_on = 1;
@@ -194,7 +194,7 @@ void FFmpegWriter::SetVideoOptions(bool has_video, string codec, Fraction fps, i
hw_en_supported = 0;
}
}
#elif defined(_WIN32)
#elif defined(_WIN32)
if ( (strcmp(codec.c_str(),"h264_dxva2") == 0)) {
new_codec = avcodec_find_encoder_by_name(codec.c_str());
hw_en_on = 1;
@@ -216,7 +216,7 @@ void FFmpegWriter::SetVideoOptions(bool has_video, string codec, Fraction fps, i
hw_en_supported = 0;
}
}
#elif defined(__APPLE__)
#elif defined(__APPLE__)
if ( (strcmp(codec.c_str(),"h264_videotoolbox") == 0)) {
new_codec = avcodec_find_encoder_by_name(codec.c_str());
hw_en_on = 1;
@@ -229,9 +229,9 @@ void FFmpegWriter::SetVideoOptions(bool has_video, string codec, Fraction fps, i
hw_en_on = 0;
hw_en_supported = 0;
}
#else // is FFmpeg 3 but not linux
#else // is FFmpeg 3 but not linux
new_codec = avcodec_find_encoder_by_name(codec.c_str());
#endif //__linux__
#endif //__linux__
#else // not ffmpeg 3
new_codec = avcodec_find_encoder_by_name(codec.c_str());
#endif //IS_FFMPEG_3_2

View File

@@ -39,16 +39,19 @@ using namespace openshot;
int main(int argc, char* argv[]) {
Settings *s = Settings::Instance();
s->HARDWARE_DECODER = 2; // 1 VA-API, 2 NVDEC
s->HW_DE_DEVICE_SET = 0;
Settings *s = Settings::Instance();
s->HARDWARE_DECODER = 2; // 1 VA-API, 2 NVDEC, 6 VDPAU
s->HW_DE_DEVICE_SET = 0;
FFmpegReader r9("/home/jonathan/Videos/sintel_trailer-720p.mp4");
std::string input_filepath = TEST_MEDIA_PATH;
input_filepath += "sintel_trailer-720p.mp4";
FFmpegReader r9(input_filepath);
r9.Open();
r9.DisplayInfo();
/* WRITER ---------------- */
FFmpegWriter w9("/home/jonathan/metadata.mp4");
FFmpegWriter w9("metadata.mp4");
// Set options
w9.SetAudioOptions(true, "libmp3lame", r9.info.sample_rate, r9.info.channels, r9.info.channel_layout, 128000);
@@ -80,7 +83,7 @@ int main(int argc, char* argv[]) {
// Close timeline
r9.Close();
cout << "Completed successfully!" << endl;
cout << "Completed successfully!" << endl;
return 0;
}
}