@@ -384,19 +384,18 @@ AVFilterContext* createBuffersinkFilter(
384
384
const char * name,
385
385
enum AVPixelFormat outputFormat) {
386
386
const AVFilter* buffersink = avfilter_get_by_name (" buffersink" );
387
- if (!buffersink) {
388
- return nullptr ;
389
- }
387
+ TORCH_CHECK (buffersink != nullptr , " Failed to get buffersink filter." );
388
+
390
389
AVFilterContext* sinkContext = nullptr ;
391
390
int status;
392
391
393
392
// av_opt_set_int_list was replaced by av_opt_set() in FFmpeg 8.
394
393
#if LIBAVUTIL_VERSION_MAJOR >= 60 // FFmpeg >= 8
395
394
// Output options like pixel_formats must be set before filter init
396
395
sinkContext = avfilter_graph_alloc_filter (filterGraph, buffersink, name);
397
- if (!sinkContext) {
398
- return nullptr ;
399
- }
396
+ TORCH_CHECK (
397
+ sinkContext != nullptr , " Failed to allocate buffersink filter context. " ) ;
398
+
400
399
status = av_opt_set_array (
401
400
sinkContext,
402
401
" pixel_formats" ,
@@ -405,20 +404,24 @@ AVFilterContext* createBuffersinkFilter(
405
404
1 , // nb_elems
406
405
AV_OPT_TYPE_PIXEL_FMT,
407
406
&outputFormat);
408
- if (status < 0 ) {
409
- return nullptr ;
410
- }
407
+ TORCH_CHECK (
408
+ status >= 0 ,
409
+ " Failed to set pixel format for buffersink filter: " ,
410
+ getFFMPEGErrorStringFromErrorCode (status));
411
+
411
412
status = avfilter_init_str (sinkContext, nullptr );
412
- if (status < 0 ) {
413
- return nullptr ;
414
- }
413
+ TORCH_CHECK (
414
+ status >= 0 ,
415
+ " Failed to initialize buffersink filter: " ,
416
+ getFFMPEGErrorStringFromErrorCode (status));
415
417
#else // FFmpeg <= 7
416
418
// For older FFmpeg versions, create filter and then set options
417
419
status = avfilter_graph_create_filter (
418
420
&sinkContext, buffersink, name, nullptr , nullptr , filterGraph);
419
- if (status < 0 ) {
420
- return nullptr ;
421
- }
421
+ TORCH_CHECK (
422
+ status >= 0 ,
423
+ " Failed to create buffersink filter: " ,
424
+ getFFMPEGErrorStringFromErrorCode (status));
422
425
423
426
enum AVPixelFormat pix_fmts[] = {outputFormat, AV_PIX_FMT_NONE};
424
427
@@ -428,9 +431,10 @@ AVFilterContext* createBuffersinkFilter(
428
431
pix_fmts,
429
432
AV_PIX_FMT_NONE,
430
433
AV_OPT_SEARCH_CHILDREN);
431
- if (status < 0 ) {
432
- return nullptr ;
433
- }
434
+ TORCH_CHECK (
435
+ status >= 0 ,
436
+ " Failed to set pixel formats for buffersink filter: " ,
437
+ getFFMPEGErrorStringFromErrorCode (status));
434
438
#endif
435
439
436
440
return sinkContext;
0 commit comments